[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <45D58531.4010808@vmware.com>
Date: Fri, 16 Feb 2007 02:19:29 -0800
From: Zachary Amsden <zach@...are.com>
To: Keir Fraser <keir@...source.com>
CC: Jeremy Fitzhardinge <jeremy@...p.org>,
Andrew Morton <akpm@...ux-foundation.org>,
xen-devel@...ts.xensource.com, Ian Pratt <ian.pratt@...source.com>,
Dan Hecht <dhecht@...are.com>, linux-kernel@...r.kernel.org,
Chris Wright <chrisw@...s-sol.org>, Andi Kleen <ak@....de>,
virtualization@...ts.osdl.org,
Steven Hand <steven.hand@...cam.ac.uk>
Subject: Re: [Xen-devel] Re: [patch 14/21] Xen-paravirt: Add XEN config options
and disable unsupported config options.
Keir Fraser wrote:
> On 16/2/07 07:25, "Jeremy Fitzhardinge" <jeremy@...p.org> wrote:
>
>
>>> Oh, so that's why it doesn't break when CONFIG_PREEMPT=y. In which case
>>> that preempt_disable() I spotted is wrong-and-unneeded.
>>>
>>> Why doesn't Xen work with preemption??
>>>
>> I've forgotten the details. Ian? Keir? Steven? Maybe it can be done.
>>
>
> It breaks guest save/restore for us currently because threads can be
> sleeping with machine addresses in local storage (registers, stack). There
> are a few ways to achieve an acceptable solution:
>
> 1. Put processes in the freezer when we suspend. This should avoid any
> thread being in a critical section with machine addresses in its hand. We
> haven't yet investigated the performance impact of freezing processes,
> particularly on the downtime of live relocation.
>
> 2. Allow CONFIG_PREEMPT to be compiled in, but disable it at runtime. We
> could do this by, for example, reserving a bit in preempt_count() so that
> most preemption checks do not touch any more cache lines. I guess it would
> need a bit of fixing up (e.g., so that in_atomic() would not be always
> asserted). Even better for us would be to allow switching between
> involuntary and voluntary preemption at runtime. It looks as though the hook
> points for these two techniques are not usually compiled in at the same
> time, however.
>
>
Doesn't stop_machine_run already take care of getting you out of all
kernel threads? So you can only be sleeping, not preempted, in which
case, this might not be an issue?
Zach
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists