On Wed, Sep 30, 2026 at 06:54:59PM +0200, Josua Mayer wrote:
> The driver looks up the affine DPIO and sets up one Rx/Tx queue pair for
> each online CPU, up to the number of queues. Response notifications and
> NAPI polling are handled on the DPIO object's assigned CPU. All online
> may enqueue requests.
> 
> When isolcpus=managed_irq is used to reserve CPUs for latency-sensitive
> applications, those CPUs are expected to be free of routine device
> interrupts.
> 
> The DPIO driver assigns affine CPUs only from the HK_TYPE_MANAGED_IRQ
> housekeeping mask, leaving isolated CPUs without an affine DPIO. This
> defers caam qi2 probe indefinitely once DPIO setup reaches an isolated
> CPU.
> 
> Restrict queue pairs, notifications and NAPI polling to the online CPUs
> in the HK_TYPE_MANAGED_IRQ housekeeping mask, so that isolated CPUs are
> skipped and don't defer probe. Isolated CPUs may still enqueue requests,
> with responses handled on housekeeping CPUs.


Don't you need to also change the for_each_online_cpu() from
dpaa2_dpseci_setup() to take into account only the housekeeping
managed_irq cores?


Something like:

--- a/drivers/crypto/caam/caamalg_qi2.c
+++ b/drivers/crypto/caam/caamalg_qi2.c
@@ -5101,7 +5101,7 @@ static int __cold dpaa2_dpseci_setup(struct fsl_mc_device 
*ls_dev)
        }

        i = 0;
-       for_each_online_cpu(cpu) {
+       for_each_cpu_and(cpu, cpu_online_mask, hk_mask) {
                u8 j;

                j = i % priv->num_pairs;


Ioana

Reply via email to