On Mon, Dec 25, 2017 at 5:53 AM, Sagi Grimberg <s...@grimberg.me> wrote: > >> Before the offending commit, mlx5 core did the IRQ affinity itself, >> and it seems that the new generic code have some drawbacks and one >> of them is the lack for user ability to modify irq affinity after >> the initial affinity values got assigned. >> >> The issue is still being discussed and a solution in the new generic code >> is required, until then we need to revert this patch. >> >> This fixes the following issue: >> echo <new affinity> > /proc/irq/<x>/smp_affinity >> fails with -EIO >> >> This reverts commit a435393acafbf0ecff4deb3e3cb554b34f0d0664. >> Note: kept mlx5_get_vector_affinity in include/linux/mlx5/driver.h since > >> it is used in mlx5_ib driver. > > This won't work for sure because the msi_desc affinity cpumask won't > ever be populated. You need to re-implement it in mlx5 if you don't want > to break rdma ULPs that rely on it.
Are you sure it won't get populated at all ? even if you manually set IRQ affinity via sysfs ? Anyway we can implement this driver helper function to return the IRQ affinity hint stored in the driver: "cpumask_first(mdev->priv.irq_info[vector].mask);"