Hello Michal.
Isolation of CPUs from blk_mq_hw_ctx during boot is already handled on
call hierarchy:
...
nvme_probe()
nvme_alloc_admin_tag_set()
blk_mq_alloc_queue()
blk_mq_init_allocated_queue()
blk_mq_map_swqueue()
blk_mq_map_swqueue() performs:
for_each_cpu(cpu, hctx->cpumask) {
if (cpu_is_isolated(cpu))
cpumask_clear_cpu(cpu, hctx->cpumask);
}
static inline bool cpu_is_isolated(int cpu)
{
return !housekeeping_test_cpu(cpu, HK_TYPE_DOMAIN) ||
!housekeeping_test_cpu(cpu, HK_TYPE_TICK) ||
cpuset_cpu_is_isolated(cpu);
}