On Fri, 16 Feb 2007 10:47:11 +0000 Keir Fraser [off-list ref] wrote:
On 16/2/07 10:09, "Andrew Morton" [off-list ref] wrote:
quoted
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.