[PATCH] kprobes: Enable tracing for mololithic kernel images

Christophe Leroy christophe.leroy at csgroup.eu
Tue Jun 14 05:36:25 PDT 2022



Le 14/06/2022 à 14:26, Jarkko Sakkinen a écrit :
> On Thu, Jun 09, 2022 at 06:44:45AM -0700, Luis Chamberlain wrote:
>> On Thu, Jun 09, 2022 at 08:47:38AM +0100, Russell King (Oracle) wrote:
>>> On Wed, Jun 08, 2022 at 02:59:27AM +0300, Jarkko Sakkinen wrote:
>>>> diff --git a/arch/arm/kernel/Makefile b/arch/arm/kernel/Makefile
>>>> index 553866751e1a..d2bb954cd54f 100644
>>>> --- a/arch/arm/kernel/Makefile
>>>> +++ b/arch/arm/kernel/Makefile
>>>> @@ -44,6 +44,11 @@ obj-$(CONFIG_CPU_IDLE)		+= cpuidle.o
>>>>   obj-$(CONFIG_ISA_DMA_API)	+= dma.o
>>>>   obj-$(CONFIG_FIQ)		+= fiq.o fiqasm.o
>>>>   obj-$(CONFIG_MODULES)		+= armksyms.o module.o
>>>> +ifeq ($(CONFIG_MODULES),y)
>>>> +obj-y				+= module_alloc.o
>>>> +else
>>>> +obj-$(CONFIG_KPROBES)		+= module_alloc.o
>>>> +endif
>>>
>>> Doesn't:
>>>
>>> obj-$(CONFIG_MODULES)		+= module_alloc.o
>>> obj-$(CONFIG_KPROBES)		+= module_alloc.o
>>
>> That just begs for a new kconfig symbol for the object, and for
>> the object then to be built with it.
>>
>> The archs which override the default can use ARCH_HAS_VM_ALLOC_EXEC.
>> Please note that the respective free is important as well and its
>> not clear if we need an another define for the free. Someone has
>> to do that work. We want to ensure to noexec the code on free and
>> this can vary on each arch.
> 
> Let me check if I understand this (not 100% sure).
> 
> So if arch define ARCH_HAS_VMALLOC_EXEC, then this would set
> config flag CONFIG_VMALLOC_EXEC, which would be used to include
> the compilation unit?
> 

I guess you have two possible approaches.

Either architectures select CONFIG_ARCH_HAS_VMALLOC_EXEC at all time and 
then you add a CONFIG_VMALLOC_EXEC which depends on 
CONFIG_ARCH_HAS_VMALLOC_EXEC and CONFIG_MODULES or CONFIG_KPROBES,

Or architectures select CONFIG_ARCH_HAS_VMALLOC_EXEC only when either 
CONFIG_MODULES or CONFIG_KPROBES is selected, in that case there is no 
need for a CONFIG_VMALLOC_EXEC.

Christophe


More information about the linux-riscv mailing list