On Tue, May 06, 2025 at 02:18:32PM -0400, Waiman Long wrote:
> > +static struct cpumask *group_mask_cpus_evenly(unsigned int numgrps,
> > +                                         const struct cpumask *cpu_mask,
> > +                                         unsigned int *nummasks)

> > +struct cpumask *group_cpus_evenly(unsigned int numgrps,
> > +                             unsigned int *nummasks)
> > +{
> > +   if (housekeeping_enabled(HK_TYPE_IO_QUEUE)) {
> > +           return group_mask_cpus_evenly(numgrps,
> > +                           housekeeping_cpumask(HK_TYPE_IO_QUEUE),
> > +                           nummasks);
> > +   }
> > +
> > +   return group_possible_cpus_evenly(numgrps, nummasks);
> > +}
> 
> The group_cpus_evenly() isn't just used by block I/O. So you can't make it
> check only HK_TYPE_IO_QUEUE here. I will suggest to make it a bit more
> general and add helper function to specify the isolated cpumask the caller
> want to skip.

Okay, in this case I'd make group_mask_cpus_evenly a public interface
and drop the houskeeping bits in group_cpus_evenly.

Reply via email to