From: Manfred Spraul <manfred@colorfullife.com>
To: jamal <hadi@cyberus.ca>
Cc: Catalin BOIE <util@deuroconsult.ro>,
Tomas Szepe <szepe@pinerecords.com>,
linux-kernel@vger.kernel.org, netdev@oss.sgi.com,
kuznet@ms2.inr.ac.ru
Subject: Re: [PATCH] qdisc oops fix
Date: Wed, 16 Apr 2003 17:23:06 +0200 [thread overview]
Message-ID: <3E9D755A.8060601@colorfullife.com> (raw)
In-Reply-To: <20030416072952.E4013@shell.cyberus.ca>
jamal wrote:
>This is a different problem from previous one posted.
>
>Theres a small window (exposed given that you are provisioning a lot
>of qdiscs and running traffic at the same time) that an incoming packet
>interupt will cause the BUG().
>
>GFP_ATOMIC will fix it, but i wonder if it appropriate.
>
>
This is a 2.4 kernel, correct?
>>With many rules (~5000 classes and ~3500 qdiscs and ~50000 filters)
>>the kernel oopses in slab.c:1128.
>>
This check?
if (in_interrupt() && (flags & SLAB_LEVEL_MASK) != SLAB_ATOMIC)
BUG();
It's triggered, because someone does something like
spin_lock_bh(&my_lock);
p = kmalloc(,GFP_KERNEL);
I don't like the proposed fix: usually code that calls
kmalloc(,GFP_KERNEL) assumes that it runs at process space, e.g. uses
semaphores, or non-bh spinlocks, etc.
slab just happens to contain a test that complains about illegal calls.
>>Trace; c0127e0f <kmalloc+eb/110>
>>Trace; c01d3cac <qdisc_create_dflt+20/bc>
>>Trace; d081ecc7 <END_OF_CODE+1054ff0f/????>
>>Trace; c01d5265 <tc_ctl_tclass+1cd/214>
>>Trace; d0820600 <END_OF_CODE+10551848/????>
>>Trace; c01d27e4 <rtnetlink_rcv+298/3bc>
>>Trace; c01d0605 <__neigh_event_send+89/1b4>
>>Trace; c01d7cd4 <netlink_data_ready+1c/60>
>>Trace; c01d7730 <netlink_unicast+230/278>
>>Trace; c01d7b73 <netlink_sendmsg+1fb/20c>
>>Trace; c01c79d5 <sock_sendmsg+69/88>
>>Trace; c01c8b48 <sys_sendmsg+18c/1e8>
>>Trace; c0120010 <map_user_kiobuf+8/f8>
>>
>>
>>
>>
I don't understand the backtrace. Were any modules loaded? Perhaps
0xd081ecc7 is a module.
I'd add a
if(in_interrupt()) show_stack(NULL);
into qdisc_create_dflt(), and try to reproduce the bug without modules.
--
Manfred
next prev parent reply other threads:[~2003-04-16 15:23 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-04-15 13:09 [PATCH] qdisc oops fix jamal
2003-04-15 13:43 ` Tomas Szepe
2003-04-15 14:31 ` jamal
2003-04-15 21:10 ` Tomas Szepe
2003-04-16 5:41 ` Catalin BOIE
2003-04-16 11:49 ` jamal
2003-04-16 15:23 ` Manfred Spraul [this message]
2003-04-16 16:06 ` Tomas Szepe
2003-04-16 16:52 ` Manfred Spraul
2003-04-16 18:03 ` Marc-Christian Petersen
2003-04-16 18:18 ` jamal
2003-04-16 21:44 ` Tomas Szepe
2003-04-17 5:25 ` Catalin BOIE
2003-04-16 18:39 ` jamal
2003-04-16 19:43 ` Julian Anastasov
2003-04-17 6:06 ` Catalin BOIE
2003-04-17 10:55 ` jamal
2003-04-18 6:47 ` Catalin BOIE
2003-04-17 5:13 ` Catalin BOIE
-- strict thread matches above, loose matches on Subject: below --
2003-04-15 22:42 Julian Anastasov
2003-04-16 0:53 ` jamal
2003-04-16 6:30 ` devik
2003-04-16 7:24 ` Julian Anastasov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3E9D755A.8060601@colorfullife.com \
--to=manfred@colorfullife.com \
--cc=hadi@cyberus.ca \
--cc=kuznet@ms2.inr.ac.ru \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@oss.sgi.com \
--cc=szepe@pinerecords.com \
--cc=util@deuroconsult.ro \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).