[Click] Click-git: Kernel crash w/ Queue element overflow?

Eddie Kohler kohler at cs.ucla.edu
Wed Feb 10 15:36:58 EST 2010


Hi Nuutti,

There is a small chance this commit may fix your issue:

http://www.read.cs.ucla.edu/gitweb?p=click;a=commit;h=01c8f4e084036338e83a6bff7a8e74dc49caa014

If it does not, I think we need more input from you to narrow it down...

Thanks so much,
Eddie


Eddie Kohler wrote:
> Nuutti,
> 
> Thanks very much for these dumps and this config.  Pretty informative.
> 
> Here are some debugging suggestions.
> 
> (0) This distinctly looks like memory corruption, possibly within ToDevice.  I 
> will look at Queue itself, as well, but this seems like an unlikely source of 
> problems, since your Click is not installed with --enable-multithread.
> 
> (1) Perhaps the problem is with EtherSwitch, whose internal hash table may be 
> causing problems in SMP settings.  Can you try again, replacing the 
> EtherSwitch element with a Hub element?  This will do the same job, but 
> without a table.  My expectation is this will also fail.
> 
> (2) To narrow down the problem, we can try very simple ToDevice and Queue 
> configs.  This would involve:
> 
> - ia32
> - either patch or fixincludes
> - SMP kernel
> - The following configs:
> 
> InfiniteSource(DATA \<plausible-data-for-an-ethernet-packet>)
> -> ToDevice(eth0);
> 
> -*- OR
> 
> InfiniteSource(DATA \<plausible-data-for-an-ethernet-packet>)
> -> Queue
> -> ToDevice(eth0);
> 
> -*- OR
> 
> InfiniteSource(DATA \<plausible-data-for-an-ethernet-packet>)
> -> ToDevice(eth0);
> InfiniteSource(DATA \<plausible-data-for-an-ethernet-packet>)
> -> ToDevice(eth1);
> 
> -*- OR
> 
> InfiniteSource(DATA \<plausible-data-for-an-ethernet-packet>)
> -> Queue
> -> ToDevice(eth0);
> InfiniteSource(DATA \<plausible-data-for-an-ethernet-packet>)
> -> Queue
> -> ToDevice(eth1);
> 
> 
> ------
> 
> These configs test ToDevice with and without Queues, and with and without 
> accessing two devices.
> 
> We'll look in parallel, but I'm interested in what you see.
> 
> Eddie
> 
> 
> 
> 
> Nuutti Varis wrote:
>> Hey, 
>>
>> While trying to run throughput measurements with Click in a kernel, running a simple EtherSwitch configuration (attached as etherswitch.click) in a topology of:
>>
>> EndHostA::ethI0 <==> ethI0::EtherSwitch1::ethI1 <==> ethI1::EtherSwitch2::ethI0 <==> ethI0::EndHostB
>> 192.168.2.1 ---------------------------------------------------------------------------> 192.168.2.2
>> FastUDPSrc w/ 64B packet, 300kpp/s
>>
>> I stumbled upon a kernel crash, seemingly when the Queue elements started dropping packets due to overflow. I tried this with two different kernel versions (2.6.31.12 and 2.6.24.7) and with either 2.6.24.7 manual patch, or with --enable-fixincludes. Interestingly, the kernel crash does not happen when I disable SMP from the kernel. Additionally, normal linux bridging does not crash the kernel on overflows. Partial/full crash dumps as attachments from various days of testing.
>>
>> Configuration stuff of the EtherSwitch{1,2}:
>> - Dumps arch indicated in the filename, either amd64 or ia32
>> - MTU of ethI1 is 1540 (tried with 1500 as well, no difference)
>> - Click is configured with --enable-linuxmodule --enable-userlevel --enable-etherswitch [--enable-fixincludes]
>> - Kernel does not have any pre-empting enabled.
>> - Both e1000e poll-patched and vanilla cause the problem
>> - e1000e versions 0.4.1.7 and 1.0.2-k2 (comes with 2.6.31.12) cause the problem
>>
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>>
>>
>>
>> --
>> Nuutti Varis (nvaris at cc.hut.fi)
>> PhD Student, Aalto University School of Science and Technology
>> Department of Communications and Networking
>>
>>
>>
>>
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> click mailing list
>> click at amsterdam.lcs.mit.edu
>> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
> _______________________________________________
> click mailing list
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click


More information about the click mailing list