Thread (27 messages) 27 messages, 10 authors, 2011-02-26

RE: [PATCH] xps-mq: Transmit Packet Steering for multiqueue

From: Loke, Chetan <hidden>
Date: 2010-09-02 23:17:13

From: Tom Herbert [mailto:therbert@google.com]
Sent: September 02, 2010 3:53 PM
To: Loke, Chetan
Cc: Stephen Hemminger; David Miller; eric.dumazet@gmail.com;
netdev@vger.kernel.org
Subject: Re: [PATCH] xps-mq: Transmit Packet Steering for multiqueue
quoted
userland folks who actually try to exploit the MQ/MSIX-ness will
almost
quoted
always pin down their high-prio[or subset of] threads/processes.
I don't really see that.  Pinning is a last resort and in this context
we could only do that on a dedicated server.  On a shared server, with
many different apps, pinning for MQ/MSIX is not an easy option;
meeting scheduler constraints will be the first priority and its up to
networking to work with the scheduler to to the right thing.
Scheduler aware networking (or vice versa) is important.
For my use-case it's an appliance. Newer adapters might have like 64+(?)
h/w queues and not just f/w emulated queues. With these many queues you
could partition your threads/queues, no?
It's easier to get started that way. All you need is a shim(or just a
driver stub because you can then load it on any box that had older
kernels) in the kernel that will tell you which queue-set(for a
MQ-capable adapter) is still under the high-watermark. If all are full
then it should just round-robin(across queues and nodes).So make a
syscall(or shoot a mbx-cmd or pick your trick), find out which queue you
could use, get the binding info and then launch your threads. So once
you narrow down the scope, the scheduler will have less work to do.

If the worker threads are short lived then there's no point in this
binding. And for long-lived tasks, a couple of initial prep-calls will
not hurt performance that much.And if you still care about syscalls at
runtime then you could have a dedicated mgmt-thread that will receive
async-events from the shim. And all other user-land logic could consult
this mgmt-thread.

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