Re: [PATCH net-next v10 1/5] net: rnpgbe: Add interrupt handling

From: Yibo Dong

Date: Sun Sep 06 2026 - 23:58:14 EST


Hi, Jakub:
On Fri, Sep 04, 2026 at 02:54:10PM -0700, Jakub Kicinski wrote:
> On Mon, 31 Aug 2026 15:36:04 +0800 Dong Yibo wrote:
> > +/**
> > + * rnpgbe_int_single - MSI-X single-vector/MSI interrupt handler
> > + * @irq: interrupt number
> > + * @data: private data
> > + *
> > + * Return: IRQ_HANDLED
> > + **/
> > +static irqreturn_t rnpgbe_int_single(int irq, void *data)
> > +{
> > + struct mucse *mucse = (struct mucse *)data;
> > + struct mucse_q_vector *q_vector;
> > +
> > + queue_work(system_percpu_wq, &mucse->mbx_work);
> > +
> > + if (test_bit(__MUCSE_DOWN, &mucse->state))
> > + return IRQ_HANDLED;
> > +
> > + q_vector = mucse->q_vector[0];
> > + rnpgbe_irq_disable_queues(q_vector);
> > + napi_schedule_irqoff(&q_vector->napi);
> > +
> > + return IRQ_HANDLED;
> > +}
>
> It's not reasonable to have a single IRQ handle datapath and also
> unconditionally queue a mbox work item. Just require at least 2 IRQs.
>

The hardware supports only one MSI vector, and it does not provide a
reliable interrupt-cause register to distinguish mailbox events from
Tx/Rx events on a shared vector.
I will remove the shared MSI/single-vector MSI-X path and require at
least two MSI-X vectors instead. Vector 0 will be dedicated to mailbox
events, while the remaining vectors will be used for the data path.

Thanks for the feedback.