* netpoll question
@ 2007-03-28 22:03 Steve Wise
2007-03-28 23:28 ` Mark Huth
0 siblings, 1 reply; 4+ messages in thread
From: Steve Wise @ 2007-03-28 22:03 UTC (permalink / raw)
To: netdev
Hey all,
I have netpoll question. How does netpoll work with MSI/X, NAPI, and
nics that setup multiple RSS style receive queues for a single port?
>From what I can tell, if you're doing something like netdump using
netpoll for IO, then you might never process incoming packets that get
posted to the rx queues not associated with the main netdevice structure
because netpoll only calls the poll() function for the main netdev
struct. Not the dummy netdevs setup for multiple rx queues.
Is this the case or am I confused?
Thanks,
Steve.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: netpoll question
2007-03-28 22:03 netpoll question Steve Wise
@ 2007-03-28 23:28 ` Mark Huth
2007-03-29 1:00 ` Steve Wise
0 siblings, 1 reply; 4+ messages in thread
From: Mark Huth @ 2007-03-28 23:28 UTC (permalink / raw)
To: Steve Wise; +Cc: netdev
Steve Wise wrote:
> Hey all,
>
> I have netpoll question. How does netpoll work with MSI/X, NAPI, and
> nics that setup multiple RSS style receive queues for a single port?
> >From what I can tell, if you're doing something like netdump using
> netpoll for IO, then you might never process incoming packets that get
> posted to the rx queues not associated with the main netdevice structure
> because netpoll only calls the poll() function for the main netdev
> struct. Not the dummy netdevs setup for multiple rx queues.
>
> Is this the case or am I confused?
>
> Thanks,
>
>
> Steve
You are correct. Netpoll needs a bit of work, especially on the receive
side, for multi-queue and some other possible problems related to taking
locks when the system is frozen. If I get some time soon, I'm going to
propose an overhaul to address some of these issues that show up in the
kgdboe and netdump cases.
Mark Huth
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: netpoll question
2007-03-28 23:28 ` Mark Huth
@ 2007-03-29 1:00 ` Steve Wise
2007-03-29 1:08 ` Stephen Hemminger
0 siblings, 1 reply; 4+ messages in thread
From: Steve Wise @ 2007-03-29 1:00 UTC (permalink / raw)
To: Mark Huth; +Cc: netdev
On Wed, 2007-03-28 at 16:28 -0700, Mark Huth wrote:
> Steve Wise wrote:
> > Hey all,
> >
> > I have netpoll question. How does netpoll work with MSI/X, NAPI, and
> > nics that setup multiple RSS style receive queues for a single port?
> > >From what I can tell, if you're doing something like netdump using
> > netpoll for IO, then you might never process incoming packets that get
> > posted to the rx queues not associated with the main netdevice structure
> > because netpoll only calls the poll() function for the main netdev
> > struct. Not the dummy netdevs setup for multiple rx queues.
> >
> > Is this the case or am I confused?
> >
> > Thanks,
> >
> >
> > Steve
> You are correct. Netpoll needs a bit of work, especially on the receive
> side, for multi-queue and some other possible problems related to taking
> locks when the system is frozen. If I get some time soon, I'm going to
> propose an overhaul to address some of these issues that show up in the
> kgdboe and netdump cases.
>
> Mark Huth
Hey Mark,
What are your thoughts on how to implement this?
Scrub every softnet_data queue->poll_list for every cpu? Or perhaps its
better to have a new function ptr off the netdev that sez "poll all rx
queues"?
Steve.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: netpoll question
2007-03-29 1:00 ` Steve Wise
@ 2007-03-29 1:08 ` Stephen Hemminger
0 siblings, 0 replies; 4+ messages in thread
From: Stephen Hemminger @ 2007-03-29 1:08 UTC (permalink / raw)
To: Steve Wise; +Cc: Mark Huth, netdev
Steve Wise wrote:
> On Wed, 2007-03-28 at 16:28 -0700, Mark Huth wrote:
>
>> Steve Wise wrote:
>>
>>> Hey all,
>>>
>>> I have netpoll question. How does netpoll work with MSI/X, NAPI, and
>>> nics that setup multiple RSS style receive queues for a single port?
>>> >From what I can tell, if you're doing something like netdump using
>>> netpoll for IO, then you might never process incoming packets that get
>>> posted to the rx queues not associated with the main netdevice structure
>>> because netpoll only calls the poll() function for the main netdev
>>> struct. Not the dummy netdevs setup for multiple rx queues.
>>>
>>> Is this the case or am I confused?
>>>
>>> Thanks,
>>>
>>>
>>> Steve
>>>
>> You are correct. Netpoll needs a bit of work, especially on the receive
>> side, for multi-queue and some other possible problems related to taking
>> locks when the system is frozen. If I get some time soon, I'm going to
>> propose an overhaul to address some of these issues that show up in the
>> kgdboe and netdump cases.
>>
>> Mark Huth
>>
>
> Hey Mark,
>
> What are your thoughts on how to implement this?
>
> Scrub every softnet_data queue->poll_list for every cpu? Or perhaps its
> better to have a new function ptr off the netdev that sez "poll all rx
> queues"?
>
>
The existing netpoll needs a complete redesign. Perhaps a separate hook into
a slow true polled mode in the hardware, as it is now it causes all sort
of semantic
assumptions, that high speed network drivers need, to be violated.
Given that the only users of netpoll are kgdb and netdump (both not in
mainline),
there is less effort to work on it.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2007-03-29 4:38 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-03-28 22:03 netpoll question Steve Wise
2007-03-28 23:28 ` Mark Huth
2007-03-29 1:00 ` Steve Wise
2007-03-29 1:08 ` Stephen Hemminger
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).