> >     do {
> >             oldpte = *pte;
> > @@ -94,6 +100,13 @@ static unsigned long change_pte_range(struct 
> > vm_area_struct *vma, pmd_t *pmd,
> >                             /* Avoid TLB flush if possible */
> >                             if (pte_protnone(oldpte))
> >                                     continue;
> > +
> > +                           /*
> > +                            * Don't mess with PTEs if page is already on 
> > the node
> > +                            * a single-threaded process is running on.
> > +                            */
> > +                           if (target_node == page_to_nid(page))
> > +                                   continue;
> >                     }
> >  
> 
> Check target_node != NUMA_NODE && target_node == page_to_nid(page) to
> avoid unnecessary page->flag masking and shifts?

I didn't do this last change because I expect a potentially mispredicted
check is more expensive than some shifting/masking.

-Andi

Reply via email to