Re: [Xen-devel] [PATCH v6 6/8] mm: Keep heap accessible to others while scrubbing

2017-08-07 Thread Jan Beulich
>>> Boris Ostrovsky 08/04/17 7:03 PM >>> >+static void check_and_stop_scrub(struct page_info *head) >+{ >+if ( head->u.free.scrub_state == BUDDY_SCRUBBING ) >+{ >+struct page_info pg; Do you really need a full struct page_info here? I.e. can't this be typeof(*head->u.free)? (I'm s

[Xen-devel] [PATCH v6 6/8] mm: Keep heap accessible to others while scrubbing

2017-08-04 Thread Boris Ostrovsky
Instead of scrubbing pages while holding heap lock we can mark buddy's head as being scrubbed and drop the lock temporarily. If someone (most likely alloc_heap_pages()) tries to access this chunk it will signal the scrubber to abort scrub by setting head's BUDDY_SCRUB_ABORT bit. The scrubber checks