[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160601234723.098ef2af@jkicinski-Precision-T1700>
Date: Wed, 1 Jun 2016 23:47:23 +0100
From: Jakub Kicinski <jakub.kicinski@...ronome.com>
To: Alexei Starovoitov <alexei.starovoitov@...il.com>
Cc: netdev@...r.kernel.org, ast@...nel.org, daniel@...earbox.net,
dinan.gunawardena@...ronome.com
Subject: Re: [RFC 12/12] nfp: bpf: add denser mode of execution
On Wed, 1 Jun 2016 15:01:16 -0700, Alexei Starovoitov wrote:
> On Wed, Jun 01, 2016 at 05:50:14PM +0100, Jakub Kicinski wrote:
> > If BPF uses less than 7 registers programmable engines
> > can process twice as many packets in parallel. Signal
> > this denser mode of operation to FW by setting the lowest
> > bit in DMA address of the machine code buffer.
> >
> > Signed-off-by: Jakub Kicinski <jakub.kicinski@...ronome.com>
> > Reviewed-by: Dinan Gunawardena <dgunawardena@...ronome.com>
> > Reviewed-by: Simon Horman <simon.horman@...ronome.com>
>
> wow. that sounds pretty cool.
> I was about to ask whether we can help HW to be more efficient
> by doing something on bpf side like annotating the registers or
> adding 'hw_only' registers...
> but looks like less registers is actually good, since NFP jit
> can parallelize it? Truly wow.
> if you can share the hw architecture details and explain more
> on how this 'dense_mode' works, would be awesome.
I think the best resource of information about the card and its
internals would be the open-nfp website [1]. Regarding optimizations
there are definitely things which could be done. The most obvious is
helping 32bit JITs in general. Annotations which registers are
32bit-only, which operations need zero-extending etc. There is some
state in the verifier that would be useful here as well. Knowing which
registers contain the skb pointer for instance would help to ignore any
operations on them (since as exemplified by simple optimization in
patch 10 the skb pointer has no meaning for the HW). I'm sure more
such things will come up with time.
[1] http://open-nfp.org/resources/
Powered by blists - more mailing lists