Re: [PATCH V7 04/15] kprobes: Add perf ksymbol events for kprobe insn pages

From: Adrian Hunter
Date: Thu May 28 2020 - 03:59:22 EST


On 27/05/20 8:20 pm, Peter Zijlstra wrote:
> On Wed, May 27, 2020 at 06:17:32PM +0200, Peter Zijlstra wrote:
>> On Tue, May 12, 2020 at 03:19:11PM +0300, Adrian Hunter wrote:
>>> @@ -202,6 +207,13 @@ static int collect_one_slot(struct kprobe_insn_page *kip, int idx)
>>> * next time somebody inserts a probe.
>>> */
>>> if (!list_is_singular(&kip->list)) {
>>> + /*
>>> + * Record perf ksymbol unregister event before removing
>>> + * the page.
>>> + */
>>> + perf_event_ksymbol(PERF_RECORD_KSYMBOL_TYPE_OOL,
>>> + (u64)kip->insns, PAGE_SIZE, true,
>>> + kip->cache->sym);
>>> list_del_rcu(&kip->list);
>>> synchronize_rcu();
>>> kip->cache->free(kip->insns);
>>
>> My manual build script haz complaints:
>>
>> i386-defconfig ../kernel/kprobes.c: In function â__get_insn_slotâ:
>> ../kernel/kprobes.c:190:51: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
>> perf_event_ksymbol(PERF_RECORD_KSYMBOL_TYPE_OOL, (u64)kip->insns,
>> ^
>> ../kernel/kprobes.c: In function âcollect_one_slotâ:
>> ../kernel/kprobes.c:215:9: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
>> (u64)kip->insns, PAGE_SIZE, true,
>> ^
>> FAIL
>>
>>
>> Now, there's a ton of such warnings elsewhere in the tree, but still I
>> feel we should perhaps strive for a clean build.
>
> Fixed those for you. On to cross-builds... :/
>

Thank you!