On Tue 06-11-18 11:33:14, Arun KS wrote: > They not only increase the code footprint, they actually make things > slower rather than faster. Remove them as contemporary hardware doesn't > need any hint. I guess I have already asked for that. When you argue about performance then always add some numbers. I do agree we want to get rid of the prefetching because it is just too of an micro-optimization without any reasonable story behind. > Suggested-by: Dan Williams <dan.j.williams@xxxxxxxxx> > Signed-off-by: Arun KS <arunks@xxxxxxxxxxxxxx> > --- > mm/page_alloc.c | 6 +----- > 1 file changed, 1 insertion(+), 5 deletions(-) > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > index 7cf503f..a1b9a6a 100644 > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -1270,14 +1270,10 @@ void __free_pages_core(struct page *page, unsigned int order) > struct page *p = page; > unsigned int loop; > > - prefetchw(p); > - for (loop = 0; loop < (nr_pages - 1); loop++, p++) { > - prefetchw(p + 1); > + for (loop = 0; loop < nr_pages ; loop++, p++) { > __ClearPageReserved(p); > set_page_count(p, 0); > } > - __ClearPageReserved(p); > - set_page_count(p, 0); > > page_zone(page)->managed_pages += nr_pages; > set_page_refcounted(page); > -- > 1.9.1 -- Michal Hocko SUSE Labs