arch/powerpc/include/asm/code-patching.h | 2 ++ arch/powerpc/lib/code-patching.c | 37 +++++++++++++++--------- arch/powerpc/mm/mem.c | 2 ++ 3 files changed, 28 insertions(+), 13 deletions(-)
This series reduces by 70% the time required to activate
ftrace on an 8xx with CONFIG_STRICT_KERNEL_RWX.
Measure is performed in function ftrace_replace_code() using mftb()
around the loop.
With the series,
- Without CONFIG_STRICT_KERNEL_RWX, 416000 TB ticks are measured.
- With CONFIG_STRICT_KERNEL_RWX, 546000 TB ticks are measured.
Before this series,
- Without CONFIG_STRICT_KERNEL_RWX, 427000 TB ticks are measured.
- With CONFIG_STRICT_KERNEL_RWX, 1744000 TB ticks are measured.
Before the series, CONFIG_STRICT_KERNEL_RWX multiplies the time
required for ftrace activation by more than 4.
With the series, CONFIG_STRICT_KERNEL_RWX increases the time
required for ftrace activation by only 30%
Christophe Leroy (4):
powerpc/code-patching: Don't call is_vmalloc_or_module_addr() without
CONFIG_MODULES
powerpc/code-patching: Speed up page mapping/unmapping
powerpc/code-patching: Use jump_label for testing freed initmem
powerpc/code-patching: Use jump_label to check if poking_init() is
done
arch/powerpc/include/asm/code-patching.h | 2 ++
arch/powerpc/lib/code-patching.c | 37 +++++++++++++++---------
arch/powerpc/mm/mem.c | 2 ++
3 files changed, 28 insertions(+), 13 deletions(-)
--
2.35.1
On Tue, 22 Mar 2022 16:40:17 +0100, Christophe Leroy wrote:
> This series reduces by 70% the time required to activate
> ftrace on an 8xx with CONFIG_STRICT_KERNEL_RWX.
>
> Measure is performed in function ftrace_replace_code() using mftb()
> around the loop.
>
> With the series,
> - Without CONFIG_STRICT_KERNEL_RWX, 416000 TB ticks are measured.
> - With CONFIG_STRICT_KERNEL_RWX, 546000 TB ticks are measured.
>
> [...]
Patches 1, 3 and 4 applied to powerpc/next.
[1/4] powerpc/code-patching: Don't call is_vmalloc_or_module_addr() without CONFIG_MODULES
https://git.kernel.org/powerpc/c/cb3ac45214c03852430979a43180371a44b74596
[3/4] powerpc/code-patching: Use jump_label for testing freed initmem
https://git.kernel.org/powerpc/c/b033767848c4115e486b1a51946de3bee2ac0fa6
[4/4] powerpc/code-patching: Use jump_label to check if poking_init() is done
https://git.kernel.org/powerpc/c/1751289268ef959db68b0b6f798d904d6403309a
cheers
Le 15/05/2022 à 12:28, Michael Ellerman a écrit : > On Tue, 22 Mar 2022 16:40:17 +0100, Christophe Leroy wrote: >> This series reduces by 70% the time required to activate >> ftrace on an 8xx with CONFIG_STRICT_KERNEL_RWX. >> >> Measure is performed in function ftrace_replace_code() using mftb() >> around the loop. >> >> With the series, >> - Without CONFIG_STRICT_KERNEL_RWX, 416000 TB ticks are measured. >> - With CONFIG_STRICT_KERNEL_RWX, 546000 TB ticks are measured. >> >> [...] > > Patches 1, 3 and 4 applied to powerpc/next. > > [1/4] powerpc/code-patching: Don't call is_vmalloc_or_module_addr() without CONFIG_MODULES > https://git.kernel.org/powerpc/c/cb3ac45214c03852430979a43180371a44b74596 > [3/4] powerpc/code-patching: Use jump_label for testing freed initmem > https://git.kernel.org/powerpc/c/b033767848c4115e486b1a51946de3bee2ac0fa6 > [4/4] powerpc/code-patching: Use jump_label to check if poking_init() is done > https://git.kernel.org/powerpc/c/1751289268ef959db68b0b6f798d904d6403309a > Patch 2 was the keystone of this series. What happened to it ? Christophe
Christophe Leroy <christophe.leroy@csgroup.eu> writes: > Le 15/05/2022 à 12:28, Michael Ellerman a écrit : >> On Tue, 22 Mar 2022 16:40:17 +0100, Christophe Leroy wrote: >>> This series reduces by 70% the time required to activate >>> ftrace on an 8xx with CONFIG_STRICT_KERNEL_RWX. >>> >>> Measure is performed in function ftrace_replace_code() using mftb() >>> around the loop. >>> >>> With the series, >>> - Without CONFIG_STRICT_KERNEL_RWX, 416000 TB ticks are measured. >>> - With CONFIG_STRICT_KERNEL_RWX, 546000 TB ticks are measured. >>> >>> [...] >> >> Patches 1, 3 and 4 applied to powerpc/next. >> >> [1/4] powerpc/code-patching: Don't call is_vmalloc_or_module_addr() without CONFIG_MODULES >> https://git.kernel.org/powerpc/c/cb3ac45214c03852430979a43180371a44b74596 >> [3/4] powerpc/code-patching: Use jump_label for testing freed initmem >> https://git.kernel.org/powerpc/c/b033767848c4115e486b1a51946de3bee2ac0fa6 >> [4/4] powerpc/code-patching: Use jump_label to check if poking_init() is done >> https://git.kernel.org/powerpc/c/1751289268ef959db68b0b6f798d904d6403309a >> > > Patch 2 was the keystone of this series. What happened to it ? It broke on 64-bit. I think I know why but I haven't had time to test it. Will try and get it fixed in the next day or two. cheers
Le 17/05/2022 à 14:37, Michael Ellerman a écrit : > Christophe Leroy <christophe.leroy@csgroup.eu> writes: >> Le 15/05/2022 à 12:28, Michael Ellerman a écrit : >>> On Tue, 22 Mar 2022 16:40:17 +0100, Christophe Leroy wrote: >>>> This series reduces by 70% the time required to activate >>>> ftrace on an 8xx with CONFIG_STRICT_KERNEL_RWX. >>>> >>>> Measure is performed in function ftrace_replace_code() using mftb() >>>> around the loop. >>>> >>>> With the series, >>>> - Without CONFIG_STRICT_KERNEL_RWX, 416000 TB ticks are measured. >>>> - With CONFIG_STRICT_KERNEL_RWX, 546000 TB ticks are measured. >>>> >>>> [...] >>> >>> Patches 1, 3 and 4 applied to powerpc/next. >>> >>> [1/4] powerpc/code-patching: Don't call is_vmalloc_or_module_addr() without CONFIG_MODULES >>> https://git.kernel.org/powerpc/c/cb3ac45214c03852430979a43180371a44b74596 >>> [3/4] powerpc/code-patching: Use jump_label for testing freed initmem >>> https://git.kernel.org/powerpc/c/b033767848c4115e486b1a51946de3bee2ac0fa6 >>> [4/4] powerpc/code-patching: Use jump_label to check if poking_init() is done >>> https://git.kernel.org/powerpc/c/1751289268ef959db68b0b6f798d904d6403309a >>> >> >> Patch 2 was the keystone of this series. What happened to it ? > > It broke on 64-bit. I think I know why but I haven't had time to test > it. Will try and get it fixed in the next day or two. > You didn't find any solution at the end, or didn't have time ? What was the problem exactly ? I made a quick try on QEMU and it was working as expected. Christophe
Michael ? Le 31/05/2022 à 08:24, Christophe Leroy a écrit : > > > Le 17/05/2022 à 14:37, Michael Ellerman a écrit : >> Christophe Leroy <christophe.leroy@csgroup.eu> writes: >>> Le 15/05/2022 à 12:28, Michael Ellerman a écrit : >>>> On Tue, 22 Mar 2022 16:40:17 +0100, Christophe Leroy wrote: >>>>> This series reduces by 70% the time required to activate >>>>> ftrace on an 8xx with CONFIG_STRICT_KERNEL_RWX. >>>>> >>>>> Measure is performed in function ftrace_replace_code() using mftb() >>>>> around the loop. >>>>> >>>>> With the series, >>>>> - Without CONFIG_STRICT_KERNEL_RWX, 416000 TB ticks are measured. >>>>> - With CONFIG_STRICT_KERNEL_RWX, 546000 TB ticks are measured. >>>>> >>>>> [...] >>>> >>>> Patches 1, 3 and 4 applied to powerpc/next. >>>> >>>> [1/4] powerpc/code-patching: Don't call is_vmalloc_or_module_addr() >>>> without CONFIG_MODULES >>>> >>>> https://git.kernel.org/powerpc/c/cb3ac45214c03852430979a43180371a44b74596 >>>> >>>> [3/4] powerpc/code-patching: Use jump_label for testing freed initmem >>>> >>>> https://git.kernel.org/powerpc/c/b033767848c4115e486b1a51946de3bee2ac0fa6 >>>> >>>> [4/4] powerpc/code-patching: Use jump_label to check if >>>> poking_init() is done >>>> >>>> https://git.kernel.org/powerpc/c/1751289268ef959db68b0b6f798d904d6403309a >>>> >>>> >>> >>> Patch 2 was the keystone of this series. What happened to it ? >> >> It broke on 64-bit. I think I know why but I haven't had time to test >> it. Will try and get it fixed in the next day or two. >> > > You didn't find any solution at the end, or didn't have time ? > > What was the problem exactly ? I made a quick try on QEMU and it was > working as expected. > Should I make it a ppc32-only change ?
Argh !! Looks like I sent an old already applied series nested in the new one. Ignore those x/4 patches, only look at the x/6 ones. Le 27/09/2022 à 16:33, Christophe Leroy a écrit : > This series reduces by 70% the time required to activate > ftrace on an 8xx with CONFIG_STRICT_KERNEL_RWX. > > Measure is performed in function ftrace_replace_code() using mftb() > around the loop. > > With the series, > - Without CONFIG_STRICT_KERNEL_RWX, 416000 TB ticks are measured. > - With CONFIG_STRICT_KERNEL_RWX, 546000 TB ticks are measured. > > Before this series, > - Without CONFIG_STRICT_KERNEL_RWX, 427000 TB ticks are measured. > - With CONFIG_STRICT_KERNEL_RWX, 1744000 TB ticks are measured. > > Before the series, CONFIG_STRICT_KERNEL_RWX multiplies the time > required for ftrace activation by more than 4. > > With the series, CONFIG_STRICT_KERNEL_RWX increases the time > required for ftrace activation by only 30% > > Christophe Leroy (4): > powerpc/code-patching: Don't call is_vmalloc_or_module_addr() without > CONFIG_MODULES > powerpc/code-patching: Speed up page mapping/unmapping > powerpc/code-patching: Use jump_label for testing freed initmem > powerpc/code-patching: Use jump_label to check if poking_init() is > done > > arch/powerpc/include/asm/code-patching.h | 2 ++ > arch/powerpc/lib/code-patching.c | 37 +++++++++++++++--------- > arch/powerpc/mm/mem.c | 2 ++ > 3 files changed, 28 insertions(+), 13 deletions(-) >
© 2016 - 2026 Red Hat, Inc.