public inbox for bpf@vger.kernel.org
 help / color / mirror / Atom feed
From: "Jose E. Marchesi" <jose.marchesi@oracle.com>
To: Eduard Zingerman <eddyz87@gmail.com>
Cc: Alexei Starovoitov <alexei.starovoitov@gmail.com>,
	Yonghong Song <yhs@meta.com>, bpf <bpf@vger.kernel.org>,
	James Hilliard <james.hilliard1@gmail.com>,
	gmartinezq07@gmail.com
Subject: Re: Support for the pseudo-C BPF assembler syntax in GAS
Date: Thu, 27 Apr 2023 18:35:09 +0200	[thread overview]
Message-ID: <87354l7076.fsf@oracle.com> (raw)
In-Reply-To: <10266b33214afa1aedf90bb61208abf392cfa7ff.camel@gmail.com> (Eduard Zingerman's message of "Thu, 27 Apr 2023 18:22:08 +0300")


> On Thu, 2023-04-27 at 12:14 +0200, Jose E. Marchesi wrote:
>> Odd.  I replied to this yesterday, but somehow it wasn't sent.
>> 
>> > On Wed, Apr 26, 2023 at 12:35 PM Jose E. Marchesi
>> > <jose.marchesi@oracle.com> wrote:
>> > > 
>> > > 
>> > > > On 4/26/23 10:37 AM, Jose E. Marchesi wrote:
>> > > > > Just a heads up, we just committed support for the assembly syntax
>> > > > > used
>> > > > > by clang to the GNU assembler [1].
>> > > > 
>> > > > Thanks! Do you which gcc release is expected to contain these changes?
>> > > 
>> > > This is the assembler, i.e. binutils.
>> > > We don't need to update the compiler.
>> > > 
>> > > > > Salud!
>> > > > > [1] https://sourceware.org/pipermail/binutils/2023-April/127222.html
>> > 
>> > This is awesome!
>> > We recently converted tens of thousands of lines of bpf asm from macros
>> > to inline asm in C.
>> > See tools/testing/selftests/bpf/progs/verifier_*.c
>> > I wonder how gas-bpf can deal with that.
>> 
>> Inline assembly shall work.
>
> There is also an LLVM testcase [1] where most of the instructions are covered,
> but you probably have something similar.

Yes we have extensive instruction testing in the assembler.

> Just of the curiosity, is the state machine generated by some tool or
> is it "pen and paper" exercise?

It is the later :)

But I plan to turn that function into a recursive-descend, for
maintainability.

> [1] https://github.com/llvm/llvm-project/blob/main/llvm/test/CodeGen/BPF/assembler-disassembler.s
>
>> 
>> > We had to fix several inline asm issues in clang to get to this point
>> > and probably more to come.
>> 
>> We will give these tests a try and fix problems as we find them :)
>> 
>> We actually came with some ambiguities, undefined stuff, and other
>> issues with the syntax while doing the implementation.  We hope to
>> discuss some of that during the LSF/MM/BPF next week, so we can
>> consolidate the language in both toolchains.
>> 
>> Speaking of which, we are preparing the material for the "compiled BPF"
>> activity during LSF/MM/BPF.  I think the BPF track hasn't been scheduled
>> yet, but how much time will we have to discuss about the topic?

  reply	other threads:[~2023-04-27 16:35 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-26 17:37 Support for the pseudo-C BPF assembler syntax in GAS Jose E. Marchesi
2023-04-26 18:28 ` Yonghong Song
2023-04-26 19:26   ` Jose E. Marchesi
2023-04-26 20:05     ` Alexei Starovoitov
2023-04-27 10:14       ` Jose E. Marchesi
2023-04-27 15:22         ` Eduard Zingerman
2023-04-27 16:35           ` Jose E. Marchesi [this message]
2023-04-27 15:33         ` Alexei Starovoitov
2023-04-28  8:52     ` Jose E. Marchesi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87354l7076.fsf@oracle.com \
    --to=jose.marchesi@oracle.com \
    --cc=alexei.starovoitov@gmail.com \
    --cc=bpf@vger.kernel.org \
    --cc=eddyz87@gmail.com \
    --cc=gmartinezq07@gmail.com \
    --cc=james.hilliard1@gmail.com \
    --cc=yhs@meta.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox