Messages in this thread | | | Subject | Re: [PATCH] net: apm: xgene: force XGene enet driver to re-balance IRQ usage | From | Al Stone <> | Date | Tue, 18 Sep 2018 14:21:08 -0600 |
| |
On 09/17/2018 08:35 PM, David Miller wrote: > From: Al Stone <ahs3@redhat.com> > Date: Mon, 17 Sep 2018 17:35:33 -0600 > >> @@ -866,8 +866,11 @@ static int xgene_enet_napi(struct napi_struct *napi, const int budget) >> processed = xgene_enet_process_ring(ring, budget); >> >> if (processed != budget) { >> + struct irq_desc *desc = irq_to_desc(ring->irq); >> + >> napi_complete_done(napi, processed); >> - enable_irq(ring->irq); >> + if (desc && desc->depth > 0) >> + enable_irq(ring->irq); > > I really can't accept a patch that grovels into IRQ layer internals > to work around a driver's IRQ enable/disable usage problem. > > Sorry.
No worries. I hesitated even sending it, actually. The rewrite of the driver that is needed is just something no one seems to have any interest in, or any time for, but it really needs it to fix this properly (a colleague has found at least one other issue in the structure of this driver, for example). The cost of doing that rewrite/restructure, though, far outweighs the benefit for this device -- especially when the workaround is "don't run tuned".
I'll put a proper fix back on the list of Interesting Things to Work On When Time Allows, for now.
Thanks for the quick -- and kind :) -- response. I really appreciate it.
-- ciao, al ----------------------------------- Al Stone Software Engineer Red Hat, Inc. ahs3@redhat.com -----------------------------------
| |