在 2024/6/20 17:06, Jiri Olsa 写道: > On Thu, Jun 20, 2024 at 10:36:02AM +0200, Oleg Nesterov wrote: >> On 06/20, Liao, Chang wrote: >>> >>> However, when i asm porting uretprobe trampoline to arm64 >>> to explore its benefits on that architecture, i discovered the problem that >>> single slot is not large enought for trampoline code. > > ah ok, makes sense now.. x86_64 has the slot big enough for the trampoline, > but arm64 does not > >> >> Ah, but then I'd suggest to make the changelog more clear. It looks as >> if the problem was introduced by the patch from Jiri. Note that we was >> confused as well ;) >> >> And, >> >> + /* Reserve enough slots for the uretprobe trampoline */ >> + for (slot_nr = 0; >> + slot_nr < max((insns_size / UPROBE_XOL_SLOT_BYTES), 1); >> + slot_nr++) >> >> this doesn't look right. Just suppose that insns_size = UPROBE_XOL_SLOT_BYTES + 1. >> I'd suggest DIV_ROUND_UP(insns_size, UPROBE_XOL_SLOT_BYTES). >> >> And perhaps it would be better to send this change along with >> uretprobe_trampoline_for_arm64 ? > > +1, also I'm curious what's the gain on arm64? I am currently finalizing the uretprobe trampoline and syscall implementation on arm64. While i have addressed most of issues, there are stiil a few bugs that reguire more effort. Once these are fixed, i will use Redis to evaluate the performance gains on arm64. In the next revision, i will submit a patchset that includes all relevant code changs, testcases and benchmark data, which will allows a comprehensive review and dicussion. > > thanks, > jirka -- BR Liao, Chang