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.