Re: [PATCH bpf] nfp: bpf: fix latency bug when updating stack index register

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 8/26/19 6:18 PM, Alexei Starovoitov wrote:
On Mon, Aug 26, 2019 at 8:57 AM Jakub Kicinski
<jakub.kicinski@xxxxxxxxxxxxx> wrote:
On Sun, Aug 25, 2019 at 10:37 PM Song Liu <liu.song.a23@xxxxxxxxx> wrote:
On Fri, Aug 23, 2019 at 7:04 PM Jakub Kicinski wrote:
From: Jiong Wang <jiong.wang@xxxxxxxxxxxxx>

NFP is using Local Memory to model stack. LM_addr could be used as base of
a 16 32-bit word region of Local Memory. Then, if the stack offset is
beyond the current region, the local index needs to be updated. The update
needs at least three cycles to take effect, therefore the sequence normally
looks like:

   local_csr_wr[ActLMAddr3, gprB_5]
   nop
   nop
   nop

If the local index switch happens on a narrow loads, then the instruction
preparing value to zero high 32-bit of the destination register could be
counted as one cycle, the sequence then could be something like:

   local_csr_wr[ActLMAddr3, gprB_5]
   nop
   nop
   immed[gprB_5, 0]

However, we have zero extension optimization that zeroing high 32-bit could
be eliminated, therefore above IMMED insn won't be available for which case
the first sequence needs to be generated.

Fixes: 0b4de1ff19bf ("nfp: bpf: eliminate zero extension code-gen")
Signed-off-by: Jiong Wang <jiong.wang@xxxxxxxxxxxxx>
Reviewed-by: Jakub Kicinski <jakub.kicinski@xxxxxxxxxxxxx>
I haven't looked into the code yet. But ^^^ should be

Signed-off-by: Jakub Kicinski <jakub.kicinski@xxxxxxxxxxxxx>

right?

I prefer Review on code I review, ack on code I ack, and sign-off on
code I co-author.

I believe if you're sending somebody else patch you have to add your SOB
in addition to their 'Author:' and their SOB fields.

+1, for co-authoring there's a 'Co-authored-by:' tag which seems to be frequently
used these days.



[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux