From: Andrew Cooper Date: Mon, 1 Feb 2016 12:54:46 +0000 (+0100) Subject: x86: convert shadow-paging to Kconfig X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=54da55fda7e4be7454ac9b19a8e84b1e8b4079e5;p=people%2Fliuw%2Flibxenctrl-split%2Fxen.git x86: convert shadow-paging to Kconfig Signed-off-by: Andrew Cooper Reviewed-by: Doug Goldstein Acked-by: Tim Deegan --- diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig index 4781b34f78..1fd72fab63 100644 --- a/xen/arch/x86/Kconfig +++ b/xen/arch/x86/Kconfig @@ -27,6 +27,24 @@ menu "Architecture Features" source "arch/Kconfig" +config SHADOW_PAGING + bool "Shadow Paging" + default y + ---help--- + + Shadow paging is a software alternative to hardware paging support + (Intel EPT, AMD NPT). + + It is required for: + * Running HVM guests on hardware lacking hardware paging support + (First-generation Intel VT-x or AMD SVM). + * Live migration of PV guests. + + Under a small number of specific workloads, shadow paging may be + deliberately used as a performance optimisation. + + If unsure, say Y. + config BIGMEM bool "big memory support" default n diff --git a/xen/arch/x86/Rules.mk b/xen/arch/x86/Rules.mk index a108d24a35..a1cdae04e8 100644 --- a/xen/arch/x86/Rules.mk +++ b/xen/arch/x86/Rules.mk @@ -22,13 +22,9 @@ $(call as-insn-check,CFLAGS,CC,".equ \"x\"$$(comma)1", \ -U__OBJECT_LABEL__ -DHAVE_GAS_QUOTED_SYM \ '-D__OBJECT_LABEL__=$(subst $(BASEDIR)/,,$(CURDIR))/$$@') -shadow-paging ?= y - CFLAGS += -mno-red-zone -mno-sse -fpic CFLAGS += -fno-asynchronous-unwind-tables # -fvisibility=hidden reduces -fpic cost, if it's available ifneq ($(call cc-option,$(CC),-fvisibility=hidden,n),n) CFLAGS += -DGCC_HAS_VISIBILITY_ATTRIBUTE endif - -CFLAGS-$(shadow-paging) += -DCONFIG_SHADOW_PAGING diff --git a/xen/arch/x86/mm/shadow/Makefile b/xen/arch/x86/mm/shadow/Makefile index a07bc0cf4a..cd4ec8a36b 100644 --- a/xen/arch/x86/mm/shadow/Makefile +++ b/xen/arch/x86/mm/shadow/Makefile @@ -1,4 +1,4 @@ -ifeq ($(shadow-paging),y) +ifeq ($(CONFIG_SHADOW_PAGING),y) obj-y += common.o guest_2.o guest_3.o guest_4.o else obj-y += none.o