[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v6 3/4] mm: make MEMF_no_refcount pages safe to assign
> -----Original Message----- > From: Jan Beulich <jbeulich@xxxxxxxx> > Sent: 29 January 2020 15:15 > To: Durrant, Paul <pdurrant@xxxxxxxxxxxx> > Cc: xen-devel@xxxxxxxxxxxxxxxxxxxx; Andrew Cooper > <andrew.cooper3@xxxxxxxxxx>; George Dunlap <George.Dunlap@xxxxxxxxxxxxx>; > Ian Jackson <ian.jackson@xxxxxxxxxxxxx>; Julien Grall <julien@xxxxxxx>; > Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>; Stefano Stabellini > <sstabellini@xxxxxxxxxx>; Wei Liu <wl@xxxxxxx>; Volodymyr Babchuk > <Volodymyr_Babchuk@xxxxxxxx>; Roger Pau Monné <roger.pau@xxxxxxxxxx> > Subject: Re: [PATCH v6 3/4] mm: make MEMF_no_refcount pages safe to assign > > On 29.01.2020 15:38, Paul Durrant wrote: > > @@ -2371,6 +2383,8 @@ void free_domheap_pages(struct page_info *pg, > unsigned int order) > > > > if ( likely(d) && likely(d != dom_cow) ) > > { > > + long pages = 0; > > + > > /* NB. May recursively lock from relinquish_memory(). */ > > spin_lock_recursive(&d->page_alloc_lock); > > > > @@ -2386,9 +2400,11 @@ void free_domheap_pages(struct page_info *pg, > unsigned int order) > > BUG(); > > } > > arch_free_heap_page(d, &pg[i]); > > + if ( !(pg[i].count_info & PGC_no_refcount) ) > > + pages--; > > } > > > > - drop_dom_ref = !domain_adjust_tot_pages(d, -(1 << order)); > > + drop_dom_ref = !domain_adjust_tot_pages(d, pages); > > Following from what I've just said on the previous patch, this needs > further changing then as well. There'll need to be a per-domain > "non-refcounted-pages" count, which - when transitioning from zero > to non-zero is accompanied by obtaining a domain ref, and when > transitioning back to zero causes this domain ref to be dropped. > Otherwise, once the last ref-counted page was freed, the domain > may become ready for final destruction, no matter how many non- > refcounted pages there still are on its page lists. (An alternative > model might be to include all pages in ->tot_pages, keep using just > that for the domain ref acquire/release, and subtract the new > count when e.g. comparing against ->max_pages.) Yes, I think I'll adjust totpages unconditionally and then subtract the secondary count for comparison as it means I can leave the ref counting alone. Paul > > Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |