[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <54AD0B98.5050103@huawei.com>
Date: Wed, 7 Jan 2015 18:34:00 +0800
From: Wang Nan <wangnan0@...wei.com>
To: Hillf Danton <hillf.zj@...baba-inc.com>
CC: <linux@....linux.org.uk>, "'Ingo Molnar'" <mingo@...hat.com>,
<masami.hiramatsu.pt@...achi.com>,
<anil.s.keshavamurthy@...el.com>, <davem@...emloft.net>,
<ananth@...ibm.com>, <dave.long@...aro.org>, <tixy@...aro.org>,
<lizefan@...wei.com>,
"'linux-kernel'" <linux-kernel@...r.kernel.org>
Subject: Re: [RFC PATCH 09/11] kprobes: core logic of eraly kprobes
On 2015/1/7 18:02, Hillf Danton wrote:
>>>>
>>>> +struct early_kprobe_slot {
>>>> + struct optimized_kprobe op;
>>>> +};
>>>> +
>>> [...]
>>>>
>>>> /* Free optimized instructions and optimized_kprobe */
>>>> +static int ek_free_early_kprobe(struct early_kprobe_slot *slot);
>>>
>>> [2] How is it implemented? In subsequent patches?
>>>
>>
>> It is implemented using macro. Please see patch 7/11 and
>>
>> DEFINE_EKPROBE_ALLOC_OPS(struct early_kprobe_slot, early_kprobe, static);
>>
> What is the reason that it is listed in C file, given that it is done in H already?
>
This macro defines an array and a bitmap, not only declare them. In addition,
the functions defined by it are used only in this specific .c file.
If there are not only one .c files use it, I think patch 7 can be improved:
#define DEFINE_EKPROBE_AREA(__t, __static) \
__static __t __ek_##__name##_slots[NR_EARLY_KPROBES_SLOTS]; \
__static unsigned long __ek_##__name##_bitmap[EARLY_KPROBES_BITMAP_SZ];
#define DEFINE_EKPROBE_ALLOC_OPS(__t, __name, __static) \
DEFINE_EKPROBE_AREA(__t, __static) \
__DEFINE_EKPROBE_ALLOC_OPS(__t, __name) \
static inline __t *ek_alloc_##__name(void) \
{ \
...
In .h file(s):
DEFINE_EKPROBE_ALLOC_OPS(struct early_kprobe_slot, early_kprobe, extern)
In .c file:
DEFINE_EKPROBE_AREA(__t, )
What do you think?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists