[Click] Help with kernel OOPS

Eddie Kohler kohler at cs.ucla.edu
Wed Sep 27 14:32:46 EDT 2006


Another question: Can you make the oops happen in a configuration without 
FromHost?

FromHost installs a new networking device in the kernel.  When FromHost is 
cleaned up, this networking device is unregistered.  It looks like Linux wants 
to schedule() during the process of unregistering the network device.  Click 
does not want Linux to schedule().  This is the "scheduling while atomic" message.

The thing that's weird is that ToDevice should already have been removed from 
the scheduling list, even before the "scheudling while atomic" message.

Eddie


Vivek raghunathan wrote:
> All,
> 
> The bug I reported is not specific to my code, and is probably a
> ToDevice race condition that I was inadvertently triggering. Using the
> following configuration generates the same kernel oops with EIP at
> ToDevice::run_task() in interrupt context. (My Ethernet NIC is a Intel
> Pro/100 using the e100 driver.)
> 
>   AddressInfo(MyEther 00:11:25:2D:7D:33, RemoteEther 00:11:25:47:EA:7B,
>             MyIP 10.1.1.2/8, RemoteIP 10.1.1.1/8, BroadcastAddr 10.255.255.255);
> 
>   FromHost(fak0, MyIP, ETHER MyEther) -> q1::Queue
>   q1 -> [0]prio::PrioSched -> Print(test_tx, 100) -> ToDevice(eth0);
>   FromDevice(eth0) -> Print(test_rx, 100) -> SetPacketType(HOST) ->
> ToHost(fak0);
> 
>   splsrc::InfiniteSource(
>   DATA \<aa bb cc dd ee ff>, LIMIT -1, STOP true);
>   splsrc -> ipenc::IPEncap(222, MyIP, BroadcastAddr);
>   ipenc -> ethenc::EtherEncap(0x0800, ff:ff:ff:ff:ff:ff, MyEther);
>   ethenc -> q2::Queue;
>   q2 -> [1]prio;
> 
> -Vivek
> 
> 
> 
> On 9/19/06, Vivek raghunathan <vivek.raghunathan at gmail.com> wrote:
>> Hi all.
>>
>> I am currently implementing a Click-based opportunistic packet
>> combination engine for use on top of IEEE 802.11. I've unit tested my
>> implementation fairly extensively in user-space, and partly
>> unit-tested in kernelspace, and haven't had any issues so far. I
>> recently moved to doing integration testing, and the code seems to run
>> okay in-kernel without any problems, except that every so often (maybe
>> 6 out of 10 times), click-uninstall causes a kernel panic in interrupt
>> context on cleanup.
>>
>> The panic seems to be related to my code on the tx output path; since
>> it only appears for a few particular configurations, and only when
>> some of my elements are introducted. The configuration I am using that
>> triggers the panic is attached.  I've also manually copied the
>> oops-trace from the screen, and attached it with this email. A
>> register dump using sysrq does not produce any additional useful info,
>> so I have excluded it. It seems like the panic is triggered somewhere
>> in ToDevice::run_task. I realize that some brain-dead bug in my code
>> is probably at fault, and am currently double-checking everything I've
>> written. I am posting here mainly because I am not sure if this is a
>> ToDevice bug that I am inadvertently triggering.
>>
>> Additionally, I'm having trouble getting ksymoops to run with click.
>> Any ideas on how I go about it? (I've also tried using kexec/kdump,
>> but it seems like these are very twitchy about what kernel config is
>> used, and have issues with the one I am using).
>>
>> Vivek
>>
>>
>> --
>>
>> ---
>>
>> *************************************
>> Vivek Raghunathan,
>> PhD student,
>> University of Illinois, Urbana-Champaign
>>
>> Contact Details:
>> 1012 W. Clark St #31,
>> Urbana IL 61801
>>
>> ph: 217-766-1868 (cell)
>>     217-333-7541 (off)
>>
>>
>>
> 
> 


More information about the click mailing list