xen-devel
[Xen-devel] Re: [RFC PATCH 16/33] Add support for Xen to entry.S.
To: |
Chris Wright <chrisw@xxxxxxxxxxxx> |
Subject: |
[Xen-devel] Re: [RFC PATCH 16/33] Add support for Xen to entry.S. |
From: |
Rusty Russell <rusty@xxxxxxxxxxxxxxx> |
Date: |
Wed, 19 Jul 2006 05:17:00 +1000 |
Cc: |
Andrew Morton <akpm@xxxxxxxx>, Zachary Amsden <zach@xxxxxxxxxx>, Jeremy Fitzhardinge <jeremy@xxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxx, Jeremy Fitzhardinge <jeremy@xxxxxxxxxxxxx>, Ian Pratt <ian.pratt@xxxxxxxxxxxxx>, linux-kernel@xxxxxxxxxxxxxxx, Andi Kleen <ak@xxxxxxx>, virtualization@xxxxxxxxxxxxxx, Christian Limpach <Christian.Limpach@xxxxxxxxxxxx> |
Delivery-date: |
Tue, 18 Jul 2006 12:17:51 -0700 |
Envelope-to: |
www-data@xxxxxxxxxxxxxxxxxx |
In-reply-to: |
<20060718091952.505770000@xxxxxxxxxxxx> |
List-help: |
<mailto:xen-devel-request@lists.xensource.com?subject=help> |
List-id: |
Xen developer discussion <xen-devel.lists.xensource.com> |
List-post: |
<mailto:xen-devel@lists.xensource.com> |
List-subscribe: |
<http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe> |
List-unsubscribe: |
<http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe> |
References: |
<20060718091807.467468000@xxxxxxxxxxxx> <20060718091952.505770000@xxxxxxxxxxxx> |
Sender: |
xen-devel-bounces@xxxxxxxxxxxxxxxxxxx |
On Tue, 2006-07-18 at 00:00 -0700, Chris Wright wrote:
> plain text document attachment (i386-entry.S)
> - change cli/sti
> - change test for user mode return to work for kernel mode in ring1
> - check hypervisor saved event mask on return from exception
> - add entry points for the hypervisor upcall handlers
> - avoid math emulation check when running on Xen
> - add nmi handler for running on Xen
>
> Signed-off-by: Ian Pratt <ian.pratt@xxxxxxxxxxxxx>
> Signed-off-by: Christian Limpach <Christian.Limpach@xxxxxxxxxxxx>
> Signed-off-by: Jeremy Fitzhardinge <jeremy@xxxxxxxxxxxxx>
> Signed-off-by: Chris Wright <chrisw@xxxxxxxxxxxx>
>
> ---
> arch/i386/kernel/asm-offsets.c | 26 +++++++
> arch/i386/kernel/entry.S | 141
> ++++++++++++++++++++++++++++++++++++-----
> arch/i386/mach-xen/setup-xen.c | 19 +++++
> drivers/xen/core/features.c | 2
> 4 files changed, 169 insertions(+), 19 deletions(-)
>
> diff -r 5cca1805b8a7 arch/i386/kernel/entry.S
> --- a/arch/i386/kernel/entry.S Tue Jul 18 02:20:39 2006 -0400
> +++ b/arch/i386/kernel/entry.S Tue Jul 18 02:22:56 2006 -0400
> @@ -76,8 +76,39 @@ NT_MASK = 0x00004000
> NT_MASK = 0x00004000
> VM_MASK = 0x00020000
>
> +#ifndef CONFIG_XEN
> +#define DISABLE_INTERRUPTS cli
> +#define ENABLE_INTERRUPTS sti
> +#else
> +#include <xen/interface/xen.h>
> +
> +EVENT_MASK = 0x2E
> +
> +/* Offsets into shared_info_t. */
> +#define evtchn_upcall_pending /* 0 */
> +#define evtchn_upcall_mask 1
Erk... Can we get these into asm-offsets?
> +
> +#ifdef CONFIG_SMP
> +/* Set %esi to point to the appropriate vcpu structure */
> +#define GET_VCPU_INFO movl TI_cpu(%ebp),%esi
> ; \
> + shl $SIZEOF_VCPU_INFO_SHIFT,%esi ; \
> + addl HYPERVISOR_shared_info,%esi
> +#else
> +#define GET_VCPU_INFO movl HYPERVISOR_shared_info,%esi
> +#endif
> +
> +/* The following end up using/clobbering %esi, because of GET_VCPU_INFO */
> +#define __DISABLE_INTERRUPTS movb $1,evtchn_upcall_mask(%esi)
> +#define DISABLE_INTERRUPTS GET_VCPU_INFO ; \
> + __DISABLE_INTERRUPTS
> +#define ENABLE_INTERRUPTS GET_VCPU_INFO ; \
> + movb $0,evtchn_upcall_mask(%esi)
> +#define __TEST_PENDING testb $0xFF,evtchn_upcall_pending(%esi)
> +#endif
> +
> +
Actually, is it possible to move these to a header somewhere? In the
paravirt_ops patches I used the names CLI and STI (copied from the VMI
patches), but didn't allow them to clobber any regs. They're defined in
asm-i386/paravirt.h.
If we want to allow them to clobber %esi, then your names are probably
better, but we should clobber %esi in the !CONFIG_XEN case too if
CONFIG_DEBUG_KERNEL.
Rusty.
--
Help! Save Australia from the worst of the DMCA: http://linux.org.au/law
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|