> -----Original Message-----
> From: Stephen Hemminger <step...@networkplumber.org>
> Sent: Monday 30 September 2019 18:12
> To: Loftus, Ciara <ciara.lof...@intel.com>
> Cc: dev@dpdk.org; Ye, Xiaolong <xiaolong...@intel.com>; Laatz, Kevin
> <kevin.la...@intel.com>; Richardson, Bruce <bruce.richard...@intel.com>
> Subject: Re: [dpdk-dev] [PATCH v2 2/3] net/af_xdp: support pinning of IRQs
>
> On Mon, 30 Sep 2019 16:42:04 +0000
> Ciara Loftus <ciara.lof...@intel.com> wrote:
>
> > +/* drivers supported for the queue_irq option */
> > +enum supported_drivers {
> > + I40E_DRIVER,
> > + IXGBE_DRIVER,
> > + MLX5_DRIVER,
> > + NUM_DRIVERS
> > +};
>
> Anything device specific like this raises a red flag to me.
>
> This regex etc, seems like a huge hack. Is there a better way using
> irqbalance and smp_affinity in kernel drivers?
>
> NACK
Hi Stephen,
Thanks for looking at the patch. I understand your concern however
unfortunately I haven't been able to identify a way to achieve the desired
outcome by using your suggestions of irqbalance and smp_affinity. Did you have
something specific in mind or are aware of any generic way of retrieving
interrupt numbers for NICs regardless of vendor or range?
I think this feature is really important for the usability of this PMD. Without
it, to configure the IRQs the user has to open up /proc/interrupts, trawl
through it and identify the correct IRQ number for their given NIC and qid (the
format for which is unlikely to be known off-hand), and manually pin them by
writing the appropriate values in the appropriate format to the appropriate
file - prone to error if not automated IMO.
If the user fails to set the affinity it's probably fine for a single pmd,
however with multiple pmds all irqs will by default land on core 0 and lead to
terrible performance.
It should be possible to rework the code to remove the regexes and use a direct
string compare. Would that make the solution more palatable?
Let me know what you think.
Thanks,
Ciara