On Fri, 16 Feb 2007 10:47:11 +0000 Keir Fraser <keir at xensource.com> wrote: > On 16/2/07 10:09, "Andrew Morton" <akpm at linux-foundation.org> wrote: > > > Are the places where the domU code references machine addresses splattered > > all over the code? If not, they can just be wrapped with > > preempt_disable/preempt_enable? > > The main places where machine addresses are 'visible' are any code that > holds a pte_t,pmd_t,pud_t,pgd_t. We hide the machine-to-pseudophysical and > pseudophysical-to-machine translations inside e.g., pte_val() and __pte() > (i.e., constructors and extractors for page table entries). Obviously the > users of these macros are open coded all over the place, quite apart from > the performance cost of sprinkling preempt_{enable,disable} so liberally. OK, you're screwed. I agree that the process freezer is the way out of that one. Ingo said that he's clocked the freezer at a few milliseconds. But if it's any higher than that it'll need to get sped up once we convert cpu hotplug to use it.