Thread (15 messages) flat view 15 messages, 5 authors, 2015-01-05

Re: e1000_netpoll(): disable_irq() triggers might_sleep() on linux-next

From: Peter Zijlstra <peterz@infradead.org>
Date: 2014-10-29 20:51:37
Also in: lkml

On Wed, Oct 29, 2014 at 09:23:42PM +0100, Thomas Gleixner wrote:
But at least it allows to mitigate the impact by making it conditional
at a central point.

static inline void netpoll_lock(struct net_device *nd)
{
	if (netpoll_active(nd))
		spin_lock(&nd->netpoll_lock);
}
branch fail vs lock might be a toss on most machines, but if we're
hitting cold cachelines we loose big.
and let the core code make sure that activation/deactivation of
netpoll on a particular interface is serialized against the interrupt
and netpoll calls.

Not sure if it's worth the trouble, but at least it allows to deal
with it in the core instead of dealing with it on a per driver base.
Does multi-queue have one netdev per queue or does that need moar
logicz?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help