[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v1 2/9] mm: Place unscrubbed pages at the end of pagelist
On 03/28/2017 03:27 PM, Wei Liu wrote: > On Fri, Mar 24, 2017 at 01:04:57PM -0400, Boris Ostrovsky wrote: >> . so that it's easy to find pages that need to be scrubbed (those pages are >> now marked with _PGC_need_scrub bit). > s/bool_t/bool/ throughout and use true and false where appropriate. > >> >> /* Free 2^@order set of pages. */ >> static void free_heap_pages( >> - struct page_info *pg, unsigned int order) >> + struct page_info *pg, unsigned int order, bool_t need_scrub) >> { >> unsigned long mfn = page_to_mfn(pg); >> unsigned int i, node = phys_to_nid(page_to_maddr(pg)), tainted = 0; >> @@ -1025,11 +1086,20 @@ static void free_heap_pages( >> midsize_alloc_zone_pages = max( >> midsize_alloc_zone_pages, total_avail_pages / >> MIDSIZE_ALLOC_FRAC); >> >> + if ( need_scrub && !tainted ) >> + { >> + pg->count_info |= PGC_need_scrub; >> + node_need_scrub[node] += (1UL << order); >> + } >> + > I think this is wrong: you shouldn't have !tainted here, otherwise > reserve_offlined_page won't know the page needs to be scrubbed, > resulting in all sub-pages not marked as needing scrub. Right. This looks like a leftover from an earlier version of this series and I never removed !tainted test. -boris >> merge_chunks(pg, node, zone, order); >> >> if ( tainted ) >> reserve_offlined_page(pg); >> >> + if ( need_scrub ) >> + scrub_free_pages(node); >> + >> spin_unlock(&heap_lock); >> } > Wei. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |