Re: [RFC PATCH 0/6] Convert all tasklets to workqueues

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Jeff Garzik
Date: Thursday, June 28, 2007 - 10:44 am

Ingo Molnar wrote:

The claim was:  slower than tasklets.



I already answered that in detail.  In sum, a driver cannot define its 
own softirq.  Softirqs are not modular.

Tasklets are the closest thing to softirqs for a driver.



I agree completely.  Wanna implement this?  I will kiss your feet, and 
multi-core CPU vendors will worship you as a demi-god.

Until such time, we must deal with the network stack as it exists today, 
and the network drivers as they exist and work today.



Good news:  this is becoming the norm for modern NICs, especially 10Gbps.

Plenty of NICs already exist that support multiple RX rings (persumably 
one per CPU), and newer NICs will raise individual MSI[-X] interrupts 
based on the RX ring into which a packet was received.

In this area, NIC vendors are way ahead of the Linux net stack.

The Linux net stack is unfortunately not threaded enough to sanely deal 
with dividing /flows/ up across multiple CPUs, even if the NIC does 
support multiple transmit and receive queues.   [side note: initial 
multi-queue TX is being worked on, on netdev]



You focused on the example rather than the key phrase:  tasklet is 
single thread by definition and purpose.

Wanting to change that without analysis of the impact illustrates the 
apples-to-oranges change being proposed.



I do not disagree with these theoretical musings :)

I care the most about the "who will do all this work?" question.  In 
network driver land, these changes impact hot paths.  I am lazy, and 
don't care to revisit each network driver hot path and carefully re-tune 
each based on this proposal.  Who is volunteering?

	Jeff


-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Thu Jun 21, 9:00 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Christoph Hellwig, (Fri Jun 22, 12:09 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Fri Jun 22, 12:51 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Christoph Hellwig, (Fri Jun 22, 12:53 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Fri Jun 22, 4:23 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Fri Jun 22, 5:32 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Fri Jun 22, 5:38 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Fri Jun 22, 5:58 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Fri Jun 22, 6:12 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Andrew Morton, (Fri Jun 22, 6:13 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Fri Jun 22, 6:26 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Fri Jun 22, 6:35 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Andrew Morton, (Fri Jun 22, 6:41 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Fri Jun 22, 7:00 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Arjan van de Ven, (Fri Jun 22, 7:25 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Fri Jun 22, 7:27 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Fri Jun 22, 7:42 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Arjan van de Ven, (Fri Jun 22, 7:43 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Linus Torvalds, (Fri Jun 22, 10:16 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Fri Jun 22, 10:31 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Christoph Hellwig, (Fri Jun 22, 11:32 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Fri Jun 22, 1:40 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Christoph Hellwig, (Fri Jun 22, 2:00 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Fri Jun 22, 2:10 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Thomas Gleixner, (Fri Jun 22, 2:13 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Linus Torvalds, (Fri Jun 22, 2:37 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Daniel Walker, (Fri Jun 22, 2:53 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Fri Jun 22, 2:59 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Fri Jun 22, 3:09 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Fri Jun 22, 3:15 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Daniel Walker, (Fri Jun 22, 3:15 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Roland Dreier, (Fri Jun 22, 3:43 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Fri Jun 22, 3:44 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Fri Jun 22, 3:58 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Daniel Walker, (Fri Jun 22, 4:28 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Stephen Hemminger, (Fri Jun 22, 10:14 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Dave Airlie, (Fri Jun 22, 11:23 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues , Jonathan Corbet, (Sun Jun 24, 8:16 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues , Steven Rostedt, (Sun Jun 24, 8:52 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Tilman Schmidt, (Mon Jun 25, 9:50 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Mon Jun 25, 10:06 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Mon Jun 25, 12:11 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Stephen Hemminger, (Mon Jun 25, 12:52 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Mon Jun 25, 1:31 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Tilman Schmidt, (Mon Jun 25, 1:50 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Mon Jun 25, 2:03 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Mon Jun 25, 2:15 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Stefan Richter, (Mon Jun 25, 4:36 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues , Jonathan Corbet, (Mon Jun 25, 5:00 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Mon Jun 25, 5:46 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Mon Jun 25, 5:52 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Dan Williams, (Mon Jun 25, 6:46 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Mon Jun 25, 7:01 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Dan Williams, (Mon Jun 25, 7:12 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Jeff Garzik, (Wed Jun 27, 10:48 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Thu Jun 28, 2:23 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Thu Jun 28, 5:37 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Alexey Kuznetsov, (Thu Jun 28, 7:38 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Jeff Garzik, (Thu Jun 28, 8:17 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Jeff Garzik, (Thu Jun 28, 8:23 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Thu Jun 28, 8:54 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Thu Jun 28, 9:00 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Oleg Nesterov, (Thu Jun 28, 9:37 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Jeff Garzik, (Thu Jun 28, 10:26 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Jeff Garzik, (Thu Jun 28, 10:44 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Dan Williams, (Thu Jun 28, 11:02 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Andrew Morton, (Thu Jun 28, 11:19 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Thu Jun 28, 1:07 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Thu Jun 28, 1:46 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Dan Williams, (Thu Jun 28, 2:23 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Dan Williams, (Thu Jun 28, 2:40 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Thu Jun 28, 3:00 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Thu Jun 28, 3:01 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Alexey Kuznetsov, (Fri Jun 29, 4:34 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Duncan Sands, (Fri Jun 29, 4:48 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Fri Jun 29, 5:29 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Alexey Kuznetsov, (Fri Jun 29, 6:25 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Alexey Kuznetsov, (Fri Jun 29, 6:36 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Fri Jun 29, 6:41 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Fri Jun 29, 6:43 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Duncan Sands, (Fri Jun 29, 7:01 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Jeff Garzik, (Fri Jun 29, 7:24 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Oleg Nesterov, (Fri Jun 29, 7:26 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Alexey Kuznetsov, (Fri Jun 29, 7:27 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Alexey Kuznetsov, (Fri Jun 29, 8:23 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Oleg Nesterov, (Fri Jun 29, 8:51 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Alexey Kuznetsov, (Fri Jun 29, 9:21 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Alexey Kuznetsov, (Fri Jun 29, 9:34 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Oleg Nesterov, (Fri Jun 29, 9:52 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Oleg Nesterov, (Fri Jun 29, 10:09 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Alexey Kuznetsov, (Fri Jun 29, 12:04 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Oleg Nesterov, (Sat Jun 30, 4:25 am)