lkml.org 
[lkml]   [2022]   [Nov]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] powerpc/bpf: Only update ldimm64 during extra pass when it is an address
Christophe Leroy wrote:
>
>
> Le 24/11/2022 à 11:13, Naveen N. Rao a écrit :
>> Christophe Leroy wrote:
>>> ldimm64 is not only used for loading function addresses, and
>>
>> That's probably true today, but I worry that that can change upstream
>> and we may not notice at all.
>
> Not sure what you mean.
>
> Today POWERPC considers that ldimm64 is _always_ loading a function
> address whereas upstream BPF considers that ldimm64 is a function only
> when it is flagged BPF_PSEUDO_FUNC.

Not sure why you think we consider ldimm64 to always be loading a
function address. Perhaps it is due to the poorly chosen variable name
func_addr in bpf_jit_fixup_addresses(), or due to the fact that we
always update the JIT code for ldimm64. In any case, we simply overwrite
imm64 load instructions to ensure we are using the updated address.

>
> In what direction could that change in the future ?
>
> For me if they change that it becomes an API change.

More of an extension, which is exactly what we had when BPF_PSEUDO_FUNC
was introduced. Took us nearly a year before we noticed.

Because we do not do a full JIT during the extra pass today like other
architectures, we are the exception - there is always the risk of bpf
core changes breaking our JIT. So, I still think it is better if we do a
full JIT during extra pass.


- Naveen

\
 
 \ /
  Last update: 2022-11-24 14:52    [W:0.085 / U:0.032 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site