From: Jeremy Jackson <jerj@coplanar.net>
To: David Miller <davem@davemloft.net>
Cc: netdev@vger.kernel.org
Subject: Re: netif_stop_queue() and multiple hardware queues
Date: Thu, 06 Jul 2006 10:29:38 -0400 [thread overview]
Message-ID: <44AD1E52.8050903@coplanar.net> (raw)
In-Reply-To: <20060702.215253.74723494.davem@davemloft.net>
David Miller wrote:
> From: Jeremy Jackson <jerj@coplanar.net>
> Date: Sun, 02 Jul 2006 22:36:03 -0400
>
>> I propose that this is an architecture/framework/API issue that the
>> Linux core networking code should be dealing with.
>
> Proposals are worthless if nobody wants to do the work to actually
> implement the proposal.
>
> Your tone seems to suggest that you feel if you propose something,
> someone will just jump out of their seat and implement your proposal.
>
> That's not how this works :)
I apologize for the tone. I *am* interested working on this. I'm just
surprised nobody has jumped out of their seat to do it :)
I have changed a line or two of kernel code but am by no means an
expert, so I guess I was hoping for some kind of feedback about the
proposal. I guess submit a patch for discussion? If it's gross I guess
that would generate some feedback.
What's the best Git tree to base this on? (maybe it's name means make
svn and and cvs users feel like a stupid git?)
In the current 2.6 network driver interface, the TX path seems to be
based on mydev->hard_start_xmit(). The device driver initiates flow
control with netif_stop_queue().
netif_stop_queue() and other functions (macros in netdevice.h) touch
mydev->state, the bit __LINK_STATE_XOFF:
netif_schedule()
netif_start_queue()
netif_wake_queue()
netif_stop_queue()
netif_queue_stopped()
There is only one queue now, implied by default. Adding a "hwqueue"
parameter to all of the above would be a start.
It would be ideal if mydev->xmit_lock could be separated out, one for
each hwqueue. A quick hack to implement this would be for the device to
set the mydev->features NETIF_F_LLTX, and implement per-queue locking.
Teaching qdiscs to use the multiple queues looks tricky in comparison, a
quick hack might be to have prio's bands map 1:1 with the hardware queues.
Regards,
Jeremy
prev parent reply other threads:[~2006-07-06 14:30 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <43A09D18.9040401@coplanar.net>
2006-07-03 2:36 ` netif_stop_queue() and multiple hardware queues Jeremy Jackson
2006-07-03 4:52 ` David Miller
2006-07-06 14:29 ` Jeremy Jackson [this message]
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=44AD1E52.8050903@coplanar.net \
--to=jerj@coplanar.net \
--cc=davem@davemloft.net \
--cc=netdev@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.