All of lore.kernel.org
 help / color / mirror / Atom feed
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
	x86@kernel.org, virtualization@lists.linux-foundation.org
Cc: Juergen Gross <jgross@suse.com>,
	boris.ostrovsky@oracle.com, rusty@rustcorp.com.au,
	mingo@redhat.com, hpa@zytor.com, akataria@vmware.com,
	tglx@linutronix.de
Subject: [PATCH v3 01/15] xen: move pv irq related functions under CONFIG_XEN_PV umbrella
Date: Tue, 28 Aug 2018 09:40:12 +0200	[thread overview]
Message-ID: <20180828074026.820-2-jgross__12091.0853533589$1535441946$gmane$org@suse.com> (raw)
In-Reply-To: <20180828074026.820-1-jgross@suse.com>

All functions in arch/x86/xen/irq.c and arch/x86/xen/xen-asm*.S are
specific to PV guests. Include them in the kernel with
CONFIG_XEN_PV only.

Make the PV specific code in arch/x86/entry/entry_*.S dependent on
CONFIG_XEN_PV instead of CONFIG_XEN.

The HVM specific code should depend on CONFIG_XEN_PVHVM.

While at it reformat the Makefile to make it more readable.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/x86/entry/entry_32.S |  8 +++++---
 arch/x86/entry/entry_64.S |  8 +++++---
 arch/x86/xen/Makefile     | 41 +++++++++++++++++++++++++++++++----------
 include/xen/events.h      |  2 ++
 4 files changed, 43 insertions(+), 16 deletions(-)

diff --git a/arch/x86/entry/entry_32.S b/arch/x86/entry/entry_32.S
index 2767c625a52c..9cc4c3064ce0 100644
--- a/arch/x86/entry/entry_32.S
+++ b/arch/x86/entry/entry_32.S
@@ -782,7 +782,7 @@ GLOBAL(__begin_SYSENTER_singlestep_region)
  * will ignore all of the single-step traps generated in this range.
  */
 
-#ifdef CONFIG_XEN
+#ifdef CONFIG_XEN_PV
 /*
  * Xen doesn't set %esp to be precisely what the normal SYSENTER
  * entry point expects, so fix it up before using the normal path.
@@ -1240,7 +1240,7 @@ ENTRY(spurious_interrupt_bug)
 	jmp	common_exception
 END(spurious_interrupt_bug)
 
-#ifdef CONFIG_XEN
+#ifdef CONFIG_XEN_PV
 ENTRY(xen_hypervisor_callback)
 	pushl	$-1				/* orig_ax = -1 => not a system call */
 	SAVE_ALL
@@ -1321,11 +1321,13 @@ ENTRY(xen_failsafe_callback)
 	_ASM_EXTABLE(3b, 8b)
 	_ASM_EXTABLE(4b, 9b)
 ENDPROC(xen_failsafe_callback)
+#endif /* CONFIG_XEN_PV */
 
+#ifdef CONFIG_XEN_PVHVM
 BUILD_INTERRUPT3(xen_hvm_callback_vector, HYPERVISOR_CALLBACK_VECTOR,
 		 xen_evtchn_do_upcall)
+#endif
 
-#endif /* CONFIG_XEN */
 
 #if IS_ENABLED(CONFIG_HYPERV)
 
diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S
index 957dfb693ecc..a9ec5d3c6e67 100644
--- a/arch/x86/entry/entry_64.S
+++ b/arch/x86/entry/entry_64.S
@@ -1050,7 +1050,7 @@ ENTRY(do_softirq_own_stack)
 	ret
 ENDPROC(do_softirq_own_stack)
 
-#ifdef CONFIG_XEN
+#ifdef CONFIG_XEN_PV
 idtentry hypervisor_callback xen_do_hypervisor_callback has_error_code=0
 
 /*
@@ -1130,11 +1130,13 @@ ENTRY(xen_failsafe_callback)
 	ENCODE_FRAME_POINTER
 	jmp	error_exit
 END(xen_failsafe_callback)
+#endif /* CONFIG_XEN_PV */
 
+#ifdef CONFIG_XEN_PVHVM
 apicinterrupt3 HYPERVISOR_CALLBACK_VECTOR \
 	xen_hvm_callback_vector xen_evtchn_do_upcall
+#endif
 
-#endif /* CONFIG_XEN */
 
 #if IS_ENABLED(CONFIG_HYPERV)
 apicinterrupt3 HYPERVISOR_CALLBACK_VECTOR \
@@ -1151,7 +1153,7 @@ idtentry debug			do_debug		has_error_code=0	paranoid=1 shift_ist=DEBUG_STACK
 idtentry int3			do_int3			has_error_code=0
 idtentry stack_segment		do_stack_segment	has_error_code=1
 
-#ifdef CONFIG_XEN
+#ifdef CONFIG_XEN_PV
 idtentry xennmi			do_nmi			has_error_code=0
 idtentry xendebug		do_debug		has_error_code=0
 idtentry xenint3		do_int3			has_error_code=0
diff --git a/arch/x86/xen/Makefile b/arch/x86/xen/Makefile
index d83cb5478f54..f723b5aa8f74 100644
--- a/arch/x86/xen/Makefile
+++ b/arch/x86/xen/Makefile
@@ -12,25 +12,46 @@ endif
 # Make sure early boot has no stackprotector
 nostackp := $(call cc-option, -fno-stack-protector)
 CFLAGS_enlighten_pv.o		:= $(nostackp)
-CFLAGS_mmu_pv.o		:= $(nostackp)
+CFLAGS_mmu_pv.o			:= $(nostackp)
 
-obj-y		:= enlighten.o multicalls.o mmu.o irq.o \
-			time.o xen-asm.o xen-asm_$(BITS).o \
-			grant-table.o suspend.o platform-pci-unplug.o
+obj-y				+= enlighten.o
+obj-y				+= multicalls.o
+obj-y				+= mmu.o
+obj-y				+= time.o
+obj-y				+= grant-table.o
+obj-y				+= suspend.o
+obj-y				+= platform-pci-unplug.o
 
-obj-$(CONFIG_XEN_PVHVM)		+= enlighten_hvm.o mmu_hvm.o suspend_hvm.o
-obj-$(CONFIG_XEN_PV)			+= setup.o apic.o pmu.o suspend_pv.o \
-						p2m.o enlighten_pv.o mmu_pv.o
-obj-$(CONFIG_XEN_PVH)			+= enlighten_pvh.o
+obj-$(CONFIG_XEN_PVHVM)		+= enlighten_hvm.o
+obj-$(CONFIG_XEN_PVHVM)		+= mmu_hvm.o
+obj-$(CONFIG_XEN_PVHVM)		+= suspend_hvm.o
 
-obj-$(CONFIG_EVENT_TRACING) += trace.o
+obj-$(CONFIG_XEN_PV)		+= setup.o
+obj-$(CONFIG_XEN_PV)		+= apic.o
+obj-$(CONFIG_XEN_PV)		+= pmu.o
+obj-$(CONFIG_XEN_PV)		+= suspend_pv.o
+obj-$(CONFIG_XEN_PV)		+= p2m.o
+obj-$(CONFIG_XEN_PV)		+= enlighten_pv.o
+obj-$(CONFIG_XEN_PV)		+= mmu_pv.o
+obj-$(CONFIG_XEN_PV)		+= irq.o
+obj-$(CONFIG_XEN_PV)		+= xen-asm.o
+obj-$(CONFIG_XEN_PV)		+= xen-asm_$(BITS).o
+
+obj-$(CONFIG_XEN_PVH)		+= enlighten_pvh.o
+obj-$(CONFIG_XEN_PVH)	 	+= xen-pvh.o
+
+obj-$(CONFIG_EVENT_TRACING)	+= trace.o
 
 obj-$(CONFIG_SMP)		+= smp.o
 obj-$(CONFIG_XEN_PV_SMP)  	+= smp_pv.o
 obj-$(CONFIG_XEN_PVHVM_SMP)  	+= smp_hvm.o
+
 obj-$(CONFIG_PARAVIRT_SPINLOCKS)+= spinlock.o
+
 obj-$(CONFIG_XEN_DEBUG_FS)	+= debugfs.o
+
 obj-$(CONFIG_XEN_DOM0)		+= vga.o
+
 obj-$(CONFIG_SWIOTLB_XEN)	+= pci-swiotlb-xen.o
+
 obj-$(CONFIG_XEN_EFI)		+= efi.o
-obj-$(CONFIG_XEN_PVH)	 	+= xen-pvh.o
diff --git a/include/xen/events.h b/include/xen/events.h
index c3e6bc643a7b..a48897199975 100644
--- a/include/xen/events.h
+++ b/include/xen/events.h
@@ -89,11 +89,13 @@ unsigned irq_from_evtchn(unsigned int evtchn);
 int irq_from_virq(unsigned int cpu, unsigned int virq);
 unsigned int evtchn_from_irq(unsigned irq);
 
+#ifdef CONFIG_XEN_PVHVM
 /* Xen HVM evtchn vector callback */
 void xen_hvm_callback_vector(void);
 #ifdef CONFIG_TRACING
 #define trace_xen_hvm_callback_vector xen_hvm_callback_vector
 #endif
+#endif
 int xen_set_callback_via(uint64_t via);
 void xen_evtchn_do_upcall(struct pt_regs *regs);
 void xen_hvm_evtchn_do_upcall(void);
-- 
2.16.4

  parent reply	other threads:[~2018-08-28  7:40 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-28  7:40 [PATCH v3 00/15] x86/paravirt, xen: several cleanups Juergen Gross
2018-08-28  7:40 ` Juergen Gross
2018-08-28  7:40 ` [PATCH v3 01/15] xen: move pv irq related functions under CONFIG_XEN_PV umbrella Juergen Gross
2018-08-28  7:40 ` Juergen Gross [this message]
2018-08-28  7:40 ` Juergen Gross
2018-09-03 14:54   ` [tip:x86/paravirt] x86/xen: Move " tip-bot for Juergen Gross
2018-08-28  7:40 ` [PATCH v3 02/15] xen: move pv specific parts of arch/x86/xen/mmu.c to mmu_pv.c Juergen Gross
2018-08-28  7:40 ` Juergen Gross
2018-09-03 14:55   ` [tip:x86/paravirt] x86/xen: Move " tip-bot for Juergen Gross
2018-08-28  7:40 ` [PATCH v3 02/15] xen: move " Juergen Gross
2018-08-28  7:40 ` [PATCH v3 03/15] xen: link platform-pci-unplug.o only if CONFIG_XEN_PVHVM Juergen Gross
2018-08-28  7:40 ` Juergen Gross
2018-09-03 14:56   ` [tip:x86/paravirt] x86/xen: Link " tip-bot for Juergen Gross
2018-08-28  7:40 ` [PATCH v3 03/15] xen: link " Juergen Gross
2018-08-28  7:40 ` [PATCH v3 04/15] xen: add SPDX identifier in arch/x86/xen files Juergen Gross
2018-08-28  7:40 ` Juergen Gross
2018-08-28  7:40   ` Juergen Gross
2018-09-03 14:56   ` [tip:x86/paravirt] x86/xen: Add " tip-bot for Juergen Gross
2018-08-28  7:40 ` [PATCH v3 05/15] x86/paravirt: make paravirt_patch_call() and paravirt_patch_jmp() static Juergen Gross
2018-08-28  7:40   ` Juergen Gross
2018-09-03 14:57   ` [tip:x86/paravirt] x86/paravirt: Make " tip-bot for Juergen Gross
2018-08-28  7:40 ` [PATCH v3 05/15] x86/paravirt: make " Juergen Gross
2018-08-28  7:40 ` [PATCH v3 06/15] x86/paravirt: remove clobbers parameter from paravirt patch functions Juergen Gross
2018-09-03 14:57   ` [tip:x86/paravirt] x86/paravirt: Remove " tip-bot for Juergen Gross
2018-08-28  7:40 ` [PATCH v3 06/15] x86/paravirt: remove " Juergen Gross
2018-08-28  7:40 ` Juergen Gross
2018-08-28  7:40 ` [PATCH v3 07/15] x86/paravirt: remove clobbers from struct paravirt_patch_site Juergen Gross
2018-08-28  7:40 ` Juergen Gross
2018-08-28  7:40 ` Juergen Gross
2018-09-03 14:58   ` [tip:x86/paravirt] x86/paravirt: Remove " tip-bot for Juergen Gross
2018-08-28  7:40 ` [PATCH v3 08/15] x86/paravirt: use a single ops structure Juergen Gross
2018-08-28  7:40 ` Juergen Gross
2018-09-03 14:58   ` [tip:x86/paravirt] x86/paravirt: Use " tip-bot for Juergen Gross
2018-08-28  7:40 ` [PATCH v3 08/15] x86/paravirt: use " Juergen Gross
2018-08-28  7:40 ` [PATCH v3 09/15] x86/paravirt: remove unused paravirt bits Juergen Gross
2018-08-28  7:40 ` Juergen Gross
2018-08-28  7:40   ` Juergen Gross
2018-09-03 14:59   ` [tip:x86/paravirt] x86/paravirt: Remove " tip-bot for Juergen Gross
2018-08-28  7:40 ` [PATCH v3 10/15] x86/paravirt: introduce new config option PARAVIRT_XXL Juergen Gross
2018-09-03 14:59   ` [tip:x86/paravirt] x86/paravirt: Introduce " tip-bot for Juergen Gross
2018-08-28  7:40 ` [PATCH v3 10/15] x86/paravirt: introduce " Juergen Gross
2018-08-28  7:40 ` Juergen Gross
2018-08-28  7:40 ` [PATCH v3 11/15] x86/paravirt: move items in pv_info under PARAVIRT_XXL umbrella Juergen Gross
2018-08-28  7:40 ` Juergen Gross
2018-08-28  7:40 ` Juergen Gross
2018-09-03 15:00   ` [tip:x86/paravirt] x86/paravirt: Move " tip-bot for Juergen Gross
2018-08-28  7:40 ` [PATCH v3 12/15] x86/paravirt: move the Xen-only pv_cpu_ops under the " Juergen Gross
2018-09-03 15:01   ` [tip:x86/paravirt] x86/paravirt: Move " tip-bot for Juergen Gross
2018-08-28  7:40 ` [PATCH v3 12/15] x86/paravirt: move " Juergen Gross
2018-08-28  7:40 ` Juergen Gross
2018-08-28  7:40 ` [PATCH v3 13/15] x86/paravirt: move the pv_irq_ops " Juergen Gross
2018-08-28  7:40 ` Juergen Gross
2018-08-28  7:40 ` Juergen Gross
2018-09-03 15:01   ` [tip:x86/paravirt] x86/paravirt: Move " tip-bot for Juergen Gross
2018-09-07 14:49     ` Borislav Petkov
2018-09-07 14:52       ` Juergen Gross
2018-09-07 14:54         ` Borislav Petkov
2018-08-28  7:40 ` [PATCH v3 14/15] x86/paravirt: move the Xen-only pv_mmu_ops " Juergen Gross
2018-09-03 15:02   ` [tip:x86/paravirt] x86/paravirt: Move " tip-bot for Juergen Gross
2018-08-28  7:40 ` [PATCH v3 14/15] x86/paravirt: move " Juergen Gross
2018-08-28  7:40 ` Juergen Gross
2018-08-28  7:40 ` [PATCH v3 15/15] x86/paravirt: remove unneeded mmu related paravirt ops bits Juergen Gross
2018-08-28  7:40 ` Juergen Gross
2018-09-03 15:02   ` [tip:x86/paravirt] x86/paravirt: Remove " tip-bot for Juergen Gross
2018-08-28  7:40 ` [PATCH v3 15/15] x86/paravirt: remove " Juergen Gross

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='20180828074026.820-2-jgross__12091.0853533589$1535441946$gmane$org@suse.com' \
    --to=jgross@suse.com \
    --cc=akataria@vmware.com \
    --cc=boris.ostrovsky@oracle.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=rusty@rustcorp.com.au \
    --cc=tglx@linutronix.de \
    --cc=virtualization@lists.linux-foundation.org \
    --cc=x86@kernel.org \
    --cc=xen-devel@lists.xenproject.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.