From mboxrd@z Thu Jan 1 00:00:00 1970 From: Feng Wu Subject: [PATCH v3 0/5] x86: Use alternative mechanism to define CLAC/STAC Date: Fri, 30 May 2014 16:56:20 +0800 Message-ID: <1401440185-11266-1-git-send-email-feng.wu@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: Feng Wu , ian.campbell@citrix.com, andrew.cooper3@citrix.com, tim@xen.org, keir.xen@gmail.com, stefano.stabellini@citrix.com, JBeulich@suse.com, boris.ostrovsky@oracle.com List-Id: xen-devel@lists.xenproject.org This patch set ports the basic alternative mechanism from Linux to Xen and use it to define CLAC/STAC. Version 1: * Initial version. Version 2: * Use STR() as the only method for performing preprocessor stringificaion. * Set ideal_nops to k8_nops by default. * Make ideal_nops static and __initdata. * Mask the lowest bit when handling relative jump in apply_alternatives(). * Move .altinstr_replacemen and altinstructions to .init section. * Include nops.h in alternative.h. * Some code style changes. Version 3: * Use __stringify() instead of STR(). * Coding style changes. * Add ASSERT(!local_irq_is_enabled()) in the beginning of apply_alternatives(). * Remove local_irq_save()/local_irq_restore() in text_poke_early(). There are some changes related to ARM and AMD code in the first patch of this series, but I don't have ARM and AMD environment to verify it. The changes in Intel platform side have the same logic, and I verify it in Intel side. Feng Wu (5): Use __stringify() as the only method for performing preprocessor stringificaion x86: Add definitions for NOP operation x86: Make set_nmi_callback return the old nmi callback x86: Port the basic alternative mechanism from Linux to Xen x86: Use alternative mechanism to define CLAC/STAC xen/arch/x86/Makefile | 1 + xen/arch/x86/alternative.c | 213 ++++++++++++++++++++++++++++++++++++++ xen/arch/x86/bitops.c | 9 +- xen/arch/x86/hvm/svm/svm.c | 2 +- xen/arch/x86/setup.c | 3 + xen/arch/x86/traps.c | 4 +- xen/arch/x86/usercopy.c | 20 ++-- xen/arch/x86/xen.lds.S | 15 +++ xen/include/asm-arm/current.h | 4 +- xen/include/asm-x86/alternative.h | 78 ++++++++++++++ xen/include/asm-x86/asm_defns.h | 23 ++-- xen/include/asm-x86/multicall.h | 115 ++++++++++---------- xen/include/asm-x86/nmi.h | 4 +- xen/include/asm-x86/nops.h | 66 ++++++++++++ xen/include/asm-x86/system.h | 9 +- xen/include/xen/config.h | 3 - 16 files changed, 475 insertions(+), 94 deletions(-) create mode 100644 xen/arch/x86/alternative.c create mode 100644 xen/include/asm-x86/alternative.h create mode 100644 xen/include/asm-x86/nops.h -- 1.8.3.1