[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20070810.143914.18309374.davem@davemloft.net>
Date: Fri, 10 Aug 2007 14:39:14 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: hadi@...erus.ca
Cc: rdreier@...co.com, xma@...ibm.com, jgarzik@...ox.com,
netdev@...r.kernel.org, rusty@...tcorp.com.au,
shemminger@...ux-foundation.org
Subject: Re: [PATCH RFC]: napi_struct V5
From: jamal <hadi@...erus.ca>
Date: Fri, 10 Aug 2007 09:55:07 -0400
> On Thu, 2007-09-08 at 09:58 -0700, Roland Dreier wrote:
>
> > Could you explain why this is unfair?
>
> The simple answer is the core attempts DRR scheduling (search for the
> paper by Varghese et al for more details)
> If you have multiple users of a resource (network interfaces in this
> case), then the quantum defines their weight. If you use more than your
> fair quota, then you are being unfair.
Actually, in the ipoib case they use less than their share :)
When they re-enable interrupts and then recheck for pending events, if
events are pending they re-disable interrupts and return immediately
instead of looping and trying to use the rest of their available
"budget" in-situ.
They do this because the time it takes to return back to the ->poll()
invoker and then call back into ->poll() the chip accumulates more
work.
If they don't do this it's really easy for them to hit cases where
they process one packet, enable interrupts, more events arrive, so
re-disable interrupts and loop, over and over again which is very
inefficient if that is in fact what happens.
To be honest, it's a workaround for the hardware design and they would
do well with even the most minimalist HW irq mitigation assist.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists