public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Chris Wright <chrisw@sous-sol.org>
To: Rusty Russell <rusty@rustcorp.com.au>
Cc: Chris Wright <chrisw@sous-sol.org>,
	linux-kernel@vger.kernel.org, virtualization@lists.osdl.org,
	xen-devel@lists.xensource.com,
	Jeremy Fitzhardinge <jeremy@goop.org>, Andi Kleen <ak@suse.de>,
	Andrew Morton <akpm@osdl.org>, Zachary Amsden <zach@vmware.com>,
	Ian Pratt <ian.pratt@xensource.com>,
	Christian Limpach <Christian.Limpach@cl.cam.ac.uk>,
	Jeremy Fitzhardinge <jeremy@xensource.com>
Subject: Re: [RFC PATCH 16/33] Add support for Xen to entry.S.
Date: Tue, 18 Jul 2006 13:43:33 -0700	[thread overview]
Message-ID: <20060718204333.GD2654@sequoia.sous-sol.org> (raw)
In-Reply-To: <1153250220.5467.38.camel@localhost.localdomain>

* Rusty Russell (rusty@rustcorp.com.au) wrote:
> 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@xensource.com>
> > Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
> > Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
> > Signed-off-by: Chris Wright <chrisw@sous-sol.org>
> > 
> > ---
> >  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?

Hmm, we put the vcpu shift in, guess we missed that.  Thanks for noticing.

> > +
> > +#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.

Sure, although it's only used here.  Got a preference?

> 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.

That makes sense to me, just to catch those bugs.

thanks,
-chris

  reply	other threads:[~2006-07-18 20:43 UTC|newest]

Thread overview: 101+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-07-18  9:18 [RFC PATCH 00/33] Xen i386 paravirtualization support Chris Wright
2006-07-18  7:00 ` [RFC PATCH 01/33] Add apply_to_page_range() function Chris Wright
2006-07-18 10:38   ` Adrian Bunk
2006-07-18 19:29     ` Chris Wright
2006-07-20  6:17       ` Adrian Bunk
2006-07-18  7:00 ` [RFC PATCH 02/33] Add sync bitops Chris Wright
2006-07-18  9:56   ` Arjan van de Ven
2006-07-18 10:18     ` Keir Fraser
2006-07-19 12:54     ` Andi Kleen
2006-07-18 10:34   ` Adrian Bunk
2006-07-18  7:00 ` [RFC PATCH 03/33] Add nosegneg capability to the vsyscall page notes Chris Wright
2006-07-18  7:00 ` [RFC PATCH 04/33] Add XEN config options and disable unsupported config options Chris Wright
2006-07-18  9:59   ` Arjan van de Ven
2006-07-18 10:21     ` Keir Fraser
2006-07-18  7:00 ` [RFC PATCH 05/33] Makefile support to build Xen subarch Chris Wright
2006-07-18 10:00   ` Arjan van de Ven
2006-07-18 11:40     ` Andrew Morton
2006-07-18 20:41       ` Jeremy Fitzhardinge
2006-07-18 20:15     ` Jeremy Fitzhardinge
2006-07-18  7:00 ` [RFC PATCH 06/33] Add Xen interface header files Chris Wright
2006-07-18  7:00 ` [RFC PATCH 07/33] Hypervisor " Chris Wright
2006-07-18  7:00 ` [RFC PATCH 08/33] Add vmlinuz build target Chris Wright
2006-07-18  7:00 ` [RFC PATCH 09/33] Add start-of-day setup hooks to subarch Chris Wright
2006-07-18 10:03   ` Arjan van de Ven
2006-07-18 20:49     ` Jeremy Fitzhardinge
2006-07-20  6:07   ` Adrian Bunk
2006-07-20 12:10     ` Keir Fraser
2006-07-20 13:27       ` Jeremy Fitzhardinge
2006-07-18  7:00 ` [RFC PATCH 10/33] add support for Xen feature queries Chris Wright
2006-07-18  7:00 ` [RFC PATCH 11/33] Add Xen-specific memory management definitions Chris Wright
2006-07-18  7:00 ` [RFC PATCH 12/33] Change __FIXADDR_TOP to leave room for the hypervisor Chris Wright
2006-07-18  7:00 ` [RFC PATCH 13/33] Add a new head.S start-of-day file for booting on Xen Chris Wright
2006-07-18 10:06   ` Arjan van de Ven
2006-07-18 20:13     ` Jeremy Fitzhardinge
2006-07-18  7:00 ` [RFC PATCH 14/33] subarch support for controlling interrupt delivery Chris Wright
2006-07-18  7:00 ` [RFC PATCH 15/33] move segment checks to subarch Chris Wright
2006-07-18 10:09   ` Arjan van de Ven
2006-07-18 11:28     ` Zachary Amsden
2006-07-18 19:06   ` Rusty Russell
2006-07-18 19:25     ` Chris Wright
2006-07-18 20:00       ` [Xen-devel] " Rusty Russell
2006-07-18  7:00 ` [RFC PATCH 16/33] Add support for Xen to entry.S Chris Wright
2006-07-18 10:11   ` Arjan van de Ven
2006-07-18 20:04     ` Jeremy Fitzhardinge
2006-07-18 19:17   ` Rusty Russell
2006-07-18 20:43     ` Chris Wright [this message]
2006-07-18 23:03       ` Jeremy Fitzhardinge
2006-07-19  5:30         ` Chris Wright
2006-07-18  7:00 ` [RFC PATCH 17/33] Support loading an initrd when running on Xen Chris Wright
2006-07-18  7:00 ` [RFC PATCH 18/33] Subarch support for CPUID instruction Chris Wright
2006-07-18 10:14   ` Arjan van de Ven
2006-07-18 10:26     ` Keir Fraser
2006-07-18 10:38       ` Arjan van de Ven
2006-07-18 11:33     ` Zachary Amsden
2006-07-18 20:46       ` David Miller
2006-07-18 21:00         ` Chris Wright
2006-07-18  7:00 ` [RFC PATCH 19/33] Support gdt/idt/ldt handling on Xen Chris Wright
2006-07-18  7:00 ` [RFC PATCH 20/33] subarch support for interrupt and exception gates Chris Wright
2006-07-18  7:00 ` [RFC PATCH 21/33] subarch support for control register accesses Chris Wright
2006-07-18  7:00 ` [RFC PATCH 22/33] subarch stack pointer update Chris Wright
2006-07-18  7:00 ` [RFC PATCH 23/33] subarch TLB support Chris Wright
2006-07-18 20:39   ` David Miller
2006-07-18 21:00     ` Chris Wright
2006-07-18  7:00 ` [RFC PATCH 24/33] Add support for Xen event channels Chris Wright
2006-07-18  7:00 ` [RFC PATCH 25/33] Implement timekeeping for Xen Chris Wright
2006-07-25  2:49   ` john stultz
2006-07-25 20:05     ` Jeremy Fitzhardinge
2006-07-18  7:00 ` [RFC PATCH 26/33] subarch suport for idle loop (NO_IDLE_HZ for Xen) Chris Wright
2006-07-18  7:00 ` [RFC PATCH 27/33] Add the Xen virtual console driver Chris Wright
2006-07-18 10:24   ` Arjan van de Ven
2006-07-18 10:31     ` Keir Fraser
2006-07-27 15:05   ` Hollis Blanchard
2006-07-18  7:00 ` [RFC PATCH 28/33] Add Xen grant table support Chris Wright
2006-07-19 10:04   ` [Xen-devel] " Harry Butterworth
2006-07-25 18:30   ` Hollis Blanchard
2006-07-25 18:45     ` Keir Fraser
2006-07-25 19:06     ` Segher Boessenkool
2006-07-18  7:00 ` [RFC PATCH 29/33] Add Xen driver utility functions Chris Wright
2006-07-18  7:00 ` [RFC PATCH 30/33] Add the Xenbus sysfs and virtual device hotplug driver Chris Wright
2006-07-18  7:00 ` [RFC PATCH 31/33] Add Xen subarch reboot support Chris Wright
2006-07-20  6:16   ` Adrian Bunk
2006-07-18  7:00 ` [RFC PATCH 32/33] Add the Xen virtual network device driver Chris Wright
2006-07-18 10:27   ` Arjan van de Ven
2006-07-18 10:35     ` Keir Fraser
2006-07-18 10:42       ` Arjan van de Ven
2006-07-18 12:18         ` Dave Boutcher
2006-07-18 12:39     ` jamal
2006-07-18 13:08       ` Herbert Xu
2006-07-18 13:25         ` John Haller
2006-07-18 15:22           ` Herbert Xu
2006-07-18 15:44   ` Stephen Hemminger
2006-07-19  3:55     ` Herbert Xu
2006-07-18 20:42   ` David Miller
2006-07-18 21:09     ` Chris Wright
2006-07-18  7:00 ` [RFC PATCH 33/33] Add Xen virtual block " Chris Wright
2006-07-18 10:34   ` Arjan van de Ven
2006-07-18 20:57     ` Jeremy Fitzhardinge
2006-07-18 13:01   ` Dave Boutcher
2006-07-18 16:25     ` Jeff Garzik
2006-07-18 19:28     ` Chris Wright
2006-07-18 21:22     ` Jeremy Fitzhardinge

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20060718204333.GD2654@sequoia.sous-sol.org \
    --to=chrisw@sous-sol.org \
    --cc=Christian.Limpach@cl.cam.ac.uk \
    --cc=ak@suse.de \
    --cc=akpm@osdl.org \
    --cc=ian.pratt@xensource.com \
    --cc=jeremy@goop.org \
    --cc=jeremy@xensource.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rusty@rustcorp.com.au \
    --cc=virtualization@lists.osdl.org \
    --cc=xen-devel@lists.xensource.com \
    --cc=zach@vmware.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox