Messages in this thread |  | | Date | Wed, 3 Oct 2001 18:51:55 +0200 (CEST) | From | Ingo Molnar <> | Subject | Re: [announce] [patch] limiting IRQ load, irq-rewrite-2.4.11-B5 |
| |
On Wed, 3 Oct 2001, jamal wrote:
> this code was added by Robert to check something; cant remember the > details on that specific date. [...]
ok.
> > + while (!list_empty(&queue->poll_list)) { > > + struct net_device *dev; > > [...] > > + if (dev->quota <= 0 || dev->poll(dev, &budget)) { > > + local_irq_disable(); > > + list_del(&dev->poll_list); > > + list_add_tail(&dev->poll_list, &queue->poll_list);
> You misunderstood. This is to enforce fairness. [...]
(i did not criticize the list_add/list_del in any way, it's obviously correct to cycle the polled devices. I highlited that code only to show that the current patch as-is polls too agressively for generic server load.)
> Read the paper.
(i prefer source code. Can i assume the 'authorative' patch to be the one with the "goto not_done;" line removed, correct?)
> > In a generic computing environment i want to spend cycles doing useful > > work, not polling. Even the quick kpolld hack [which i dropped, so please > > dont regard it as a 'competitor' patch] i consider superior to this, as i > > can renice kpolld to reduce polling. (plus kpolld sucks up available idle > > cycles as well.) Unless i royally misunderstand it, i cannot stop the > > above code from wasting my cycles, and if that is true i do not want to > > see it in the kernel proper in this form.
> The interupt just flags "i, netdev, have work to do"; [...]
(and the only thing i pointed out was that the patch as-is did not limit the amount of polling done.)
> > *if* you can make polling a success in ~90% of the time we enter > > tulip_poll() under non-specific server load (ie. not routing), then i > > think you have really good metrics. > > we can make it 100% successful; i mentioned that we only do work, if > there is work to be done.
can you really make it 100% successful for rx? Ie. do you only ever call the ->poll() function if there is a new packet waiting? How do you know with a 100% probability that someone on the network just sent a new packet waiting? (without receiving an interrupt to begin with that is.)
Ingo
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |