# Re: \[PATCH v4 01/14\] genirq: Provide new interfaces for affinity hints

- From: Jakub Kicinski \<kuba@kernel.org\>
- Date: 2021-07-20 11:05:47 
- List: linux-api
- Page: https://ratatoskr.run/linux-api/2021/07/1452276
- Thread: https://ratatoskr.run/linux-scsi/2021/07/1451568/t.md

```text
On Mon, 19 Jul 2021 14:07:33 -0400, Nitesh Narayan Lal wrote:
> From: Thomas Gleixner <redacted>
> 
> The discussion about removing the side effect of irq_set_affinity_hint() of
> actually applying the cpumask (if not NULL) as affinity to the interrupt,
> unearthed a few unpleasantries:
> 
>   1) The modular perf drivers rely on the current behaviour for the very
>      wrong reasons.
> 
>   2) While none of the other drivers prevents user space from changing
>      the affinity, a cursorily inspection shows that there are at least
>      expectations in some drivers.
> 
> #1 needs to be cleaned up anyway, so that's not a problem
> 
> #2 might result in subtle regressions especially when irqbalanced (which
>    nowadays ignores the affinity hint) is disabled.
> 
> Provide new interfaces:
> 
>   irq_update_affinity_hint()  - Only sets the affinity hint pointer
>   irq_set_affinity_and_hint() - Set the pointer and apply the affinity to
>                                 the interrupt
> 
> Make irq_set_affinity_hint() a wrapper around irq_apply_affinity_hint() and
> document it to be phased out.
> 
> Signed-off-by: Thomas Gleixner <redacted>
> Signed-off-by: Nitesh Narayan Lal <redacted>
> Link: https://lore.kernel.org/r/20210501021832.743094-1-jesse.brandeburg@intel.com

include/linux/interrupt.h:343: warning: Function parameter or member 'm' not described in 'irq_update_affinity_hint'
include/linux/interrupt.h:343: warning: Excess function parameter 'cpumask' description in 'irq_update_affinity_hint'
include/linux/interrupt.h:358: warning: Function parameter or member 'm' not described in 'irq_set_affinity_and_hint'
include/linux/interrupt.h:358: warning: Excess function parameter 'cpumask' description in 'irq_set_affinity_and_hint'
```
