Thread (21 messages) flat view 21 messages, 4 authors, 2014-02-19

Re: [PATCH net-next 12/14] r8152: replace netif_rx withnetif_receive_skb

From: Francois Romieu <romieu@fr.zoreil.com>
Date: 2014-02-19 07:46:42
Also in: lkml

hayeswang [off-list ref] :
 Francois Romieu [mailto:romieu@fr.zoreil.com] 
quoted
Hayes Wang [off-list ref] :
quoted
Replace netif_rx with netif_receive_skb to avoid disabling irq frequently
for increasing the efficiency.
read_bulk_callback is issued in irq context. It could thus use plain
spin_lock / spin_unlock instead of the irq disabling version.
The rx_bottom() is called in tasklet, so I just think I could use
netif_receive_skb directly. The netif_rx seems to queue the packet,
and local_irq_disable() would be called before dequeuing the skb.
The change in rx_bottom is fine. My point is about read_bulk_callback.

rx_bottom races with read_bulk_callback. rx_bottom is issued in
tasklet (softirq) context. read_bulk_callback is issued in irq
context, with irq disabled. read_bulk_callback does not need to
disable irq itself and could go with spin_lock in place of
spin_lock_irqsave (rx_bottom can't, of course).

-- 
Ueimor
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help