Re: call_rcu from trace_preempt

Alexei Starovoitov
2015-06-16T06:46:57Z

On 6/15/15 11:34 PM, Daniel Wagner wrote:
> On 06/16/2015 08:25 AM, Alexei Starovoitov wrote:
>> On 6/15/15 11:06 PM, Daniel Wagner wrote:
>>>> with the above 'fix' the trace.patch is now passing.
>>> It still crashes for me with the original test program
>>>
>>> [ 145.908013] [<ffffffff810d1da1>] ? __rcu_reclaim+0x101/0x3d0
>>> [ 145.908013] [<ffffffff810d1ca0>] ? rcu_barrier_func+0x250/0x250
>>> [ 145.908013] [<ffffffff810abc03>] ?
>>> trace_hardirqs_on_caller+0xf3/0x240
>>> [ 145.908013] [<ffffffff810d9afa>] rcu_do_batch+0x2ea/0x6b0
>>
>> yes. full bpf test still crashes.
>> That's why I said trace.patch is passing ;)
>> There is something else in there. One 'fix' at a time.
>
> Ah, sorry, I read it is working now :) Anyway, I'll keep looking
> as well.
>
> Yesterday I wrote a small torture program for the map
> implementation. Just to rule out memory corruption there.
> Are you interested in it? If yes I could clean it a bit.

of course!
We already have samples/bpf/test_maps.c that stresses map
access from user space and lib/test_bpf.c that stress JIT
and interpreter from the kernel.
Looking at your test, I think it doesn't buy as much doing it
from the kernel?
If so, I think would be great to add it to test_maps.c

Will read it more carefully tomorrow.