Re: [PATCH V2 2/3] sched/numa: Enhance vma scanning logic

From: Peter Zijlstra
Date: Fri Feb 03 2023 - 06:27:40 EST


On Fri, Feb 03, 2023 at 12:15:48PM +0100, Peter Zijlstra wrote:

> > +static inline void vma_set_active_pid_bit(struct vm_area_struct *vma)
> > +{
> > + unsigned int active_pid_bit;
> > +
> > + if (vma->numab) {
> > + active_pid_bit = current->pid % BITS_PER_LONG;
> > + vma->numab->accessing_pids |= 1UL << active_pid_bit;
> > + }
> > +}
>
> Perhaps:
>
> if (vma->numab)
> __set_bit(current->pid % BITS_PER_LONG, &vma->numab->pids);
>
> ?
>
> Or maybe even:
>
> bit = current->pid % BITS_PER_LONG;
> if (vma->numab && !__test_bit(bit, &vma->numab->pids))
> __set_bit(bit, &vma->numab->pids);
>

The alternative to just taking the low n bits is to use:

hash_32(current->pid, BITS_PER_LONG)

That mixes things up a bit.