On Mon, Mar 27, 2023 at 01:28:12PM +0300, Andy Shevchenko wrote: > On Sat, Mar 25, 2023 at 11:55:08AM -0700, Yury Norov wrote: > > The function searches for the next CPU in a given cpumask according to > > NUMA topology, so that it traverses cpus per-hop. > > > > If the CPU is the last cpu in a given hop, sched_numa_find_next_cpu() > > switches to the next hop, and picks the first CPU from there, excluding > > those already traversed. > > ... > > > +/* > > Hmm... Is it deliberately not a kernel doc? Yes, I'd prefer to encourage people to use for_each() approach instead of calling it directly. If there will be a good reason to make it a more self-consistent thing, we'll have to add a wrapper, just like sched_numa_find_nth_cpu() is wrapped with cpumask_local_spread(). Particularly, use RCU lock/unlock and properly handle NUMA_NO_NODE. > > + * sched_numa_find_next_cpu() - given the NUMA topology, find the next cpu > > + * cpumask: cpumask to find a cpu from > > + * cpu: current cpu > > + * node: local node > > + * hop: (in/out) indicates distance order of current CPU to a local node > > + * > > + * The function searches for next cpu at a given NUMA distance, indicated > > + * by hop, and if nothing found, tries to find CPUs at a greater distance, > > + * starting from the beginning. > > + * > > + * returns: cpu, or >= nr_cpu_ids when nothing found. > > + */ > > -- > With Best Regards, > Andy Shevchenko >