On Fri, 20 Dec 2024 07:51:09 -0700 Ahmed Zaki wrote:
> On 2024-12-19 8:42 p.m., Jakub Kicinski wrote:
> > On Wed, 18 Dec 2024 09:58:39 -0700 Ahmed Zaki wrote:  
> >> +  if (!glue_created && flags & NAPIF_IRQ_AFFINITY) {
> >> +          glue = kzalloc(sizeof(*glue), GFP_KERNEL);
> >> +          if (!glue)
> >> +                  return;
> >> +          glue->notify.notify = netif_irq_cpu_rmap_notify;
> >> +          glue->notify.release = netif_napi_affinity_release;
> >> +          glue->data = napi;
> >> +          glue->rmap = NULL;
> >> +          napi->irq_flags |= NAPIF_IRQ_NORMAP;  
> > 
> > Why allocate the glue? is it not possible to add the fields:
> > 
> >     struct irq_affinity_notify notify;
> >     u16 index;
> > 
> > to struct napi_struct ?  
> 
> In the first branch of "if", the cb function netif_irq_cpu_rmap_notify() 
> is also passed to irq_cpu_rmap_add() where the irq notifier is embedded 
> in "struct irq_glue".

I don't understand what you're trying to say, could you rephrase?

> I think this cannot be changed as long as some drivers are directly 
> calling irq_cpu_rmap_add() instead of the proposed API.

Drivers which are not converted shouldn't matter if we have our own
notifier and call cpu_rmap_update() directly, no?

Drivers which are converted should not call irq_cpu_rmap_add().

Reply via email to