[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 3/3] xen: use idle vcpus to scrub pages
On 07/23/2014 03:28 PM, Jan Beulich wrote: >>>> On 15.07.14 at 11:16, <bob.liu@xxxxxxxxxx> wrote: >> After so many days I haven't make a workable solution if don't remove >> pages temporarily. The hardest part is iterating the heap free list >> without holding heap_lock because if holding the lock it might be heavy >> lock contention. >> So do you think it's acceptable if fixed all other concerns about this >> patch? > > No, I don't think so. Instead I'm of the opinion that you may have > worked in the wrong direction: Rather than not taking the heap lock > at all, it may also be sufficient to shrink the lock holding time (i.e. > avoid long loops with the lock held). > But I still think have to drop pages from heap list temporarily else heap lock must be taken for a long time to get rid of E.g. below race condition. A: alloc path B: idle loop spin_lock(&heap_lock) page_list_for_each( pg, &heap(node, zone, order) ) if _PGC_need_scrub is set, break; spin_unlock(&heap_lock) if ( test_bit(_PGC_need_scrub, pg) ^^^^ spin_lock(&heap_lock) delist page spin_unlock(&heap_lock) write data to this page scrub_one_page(pg) ^^^ will clean useful data -- Regards, -Bob _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |