[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Re: [PATCH] EPT: Flush running cpus, add mask to flush when scheduled in



On 22/09/2009 08:07, "Jan Beulich" <JBeulich@xxxxxxxxxx> wrote:

> Passing a pointer to the global cpu mask looks racy here: What if a CPU
> disappears from domain_dirty_cpumask under your feet?

I'm fixing this race before I apply the patch.

> Also, merely using cpus_complement() here seem inefficient: It should be
> possible to accumulate the flush activity, and avoid re-flushing on a CPU
> which e.g. got flushed on the second from the last run through this code
> (and not dirtied afterwards). I.e. I'd think there should be cpus_andnot()
> here, and setting of the bits as CPUs get dirtied.

I don't see how that is possible, as domain_dirty_cpumask can have changed
arbitrarily since the previous invocation of ept_sync_domain(), as can the
EPT tables. We have to assume every CPU has potentially stale cached
mappings.

 -- Keir



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.