[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 2/2] xen: spread page scrubbing across all idle CPU
On Wed, Jun 11, 2014 at 9:13 AM, Jan Beulich <JBeulich@xxxxxxxx> wrote: >>>> On 11.06.14 at 04:51, <bob.liu@xxxxxxxxxx> wrote: >> On 06/10/2014 10:12 PM, Jan Beulich wrote: >>>>>> On 10.06.14 at 14:18, <lliubbo@xxxxxxxxx> wrote: >>>> + if( is_tasklet ) >>>> + tasklet_schedule_on_cpu(&global_scrub_tasklet, cpu); >>> >>> So you re-schedule this tasklet immediately - while this may be >>> acceptable inside the hypervisor, did you consider the effect this >>> will have on the guest (normally Dom0)? Its respective vCPU won't >>> get run _at all_ until you're done scrubbing. >>> >> >> Yes, that's a problem. I don't have any better idea right now. >> >> What I'm trying is doing the scrubbing on current CPU as well as on all >> idle vcpus in parallel. >> I also considered your suggestion about doing the scrubbing in the >> background as well as on the allocation path. But I think it's more >> unacceptable for users to get blocked randomly for a uncertain time when >> allocating a large mount of memory. >> That's why I still chose the sync way that once 'xl destroy' return all >> memory are scrubbed. > > But I hope you realize that in the current shape, with the shortcomings > pointed out un-addressed, there's no way for this to go in. Would it make more sense to do something like the following: * Have a "clean" freelist and a "dirty" freelist * When destroying a domain, simply move pages to the dirty freelist * Have idle vcpus scrub the dirty freelist before going to sleep - ...and wake up idle vcpus to do some scrubbing when adding pages to the dirty freelist * In alloc_domheap_pages(): - If there are pages on the "clean" freelist, allocate them - If there are no pages on the "clean" freelist but there are on the "dirty" freelist, scrub pages from the "dirty" freelist synchronously. -George _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |