Re: [regression] Latest git has WARN_ON storm with e1000e driver

From: Linus Torvalds
Date: Fri Oct 03 2008 - 11:38:49 EST




On Fri, 3 Oct 2008, Christian Borntraeger wrote:
>
> Very good point indeed. Seems my analysis was wrong. I made a short test and
> preempt_count() returns 1 when the WARN_ON triggers. So its either a spinlock
> or something else that increased my preempt_count.

Ok, I can repro it. I couldn't see it before because I usually don't have
PREEMPT even enabled. Enabling PREEMPT and PREEMPT_DEBUG gets me the
messages too. Jesse?

The call trace is much better with frame pointers enabled, loke so (with
the '?' entries removed as stale):

Call Trace:
warn_on_slowpath+0x53/0x7a
e1000_acquire_swflag_ich8lan+0x2d/0xe1
e1000_read_nvm_ich8lan+0x4f/0xee
e1000e_read_pba_num+0x4e/0x69
e1000_probe+0xa32/0xb71
pci_device_probe+0x4c/0x72
driver_probe_device+0xc0/0x16e
__driver_attach+0x4f/0x79
bus_for_each_dev+0x4f/0x89
driver_attach+0x1c/0x1e
bus_add_driver+0xb7/0x1f4
driver_register+0xa8/0x128
__pci_register_driver+0x66/0x9d
e1000_init_module+0x4f/0x6b
_stext+0x47/0x13f
kernel_init+0x127/0x17b
child_rip+0xa/0x11

and yes, there's quite a lot of them. I'm not seeing what disables
preemption, though. I'll look at it some more, but I decided I should
post that cleaned-up call chain so that others can do so too..

Linus

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/