From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752534AbbEFQYD (ORCPT ); Wed, 6 May 2015 12:24:03 -0400 Received: from static.88-198-71-155.clients.your-server.de ([88.198.71.155]:35261 "EHLO socrates.bennee.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751110AbbEFQX5 (ORCPT ); Wed, 6 May 2015 12:23:57 -0400 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, christoffer.dall@linaro.org, marc.zyngier@arm.com, peter.maydell@linaro.org, agraf@suse.de, drjones@redhat.com, pbonzini@redhat.com, zhichao.huang@linaro.org Cc: jan.kiszka@siemens.com, dahi@linux.vnet.ibm.com, r65777@freescale.com, bp@suse.de, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , x86@kernel.org (maintainer:X86 ARCHITECTURE...), Gleb Natapov , Bharat Bhushan , Mihai Caraman , Alexey Kardashevskiy , Nadav Amit , linuxppc-dev@lists.ozlabs.org (open list:LINUX FOR POWERPC...), linux-kernel@vger.kernel.org (open list), linux-api@vger.kernel.org (open list:ABI/API) Subject: [PATCH v3 02/12] KVM: define common __KVM_GUESTDBG_USE_SW/HW_BP values Date: Wed, 6 May 2015 17:23:17 +0100 Message-Id: <1430929407-3487-3-git-send-email-alex.bennee@linaro.org> X-Mailer: git-send-email 2.3.5 In-Reply-To: <1430929407-3487-1-git-send-email-alex.bennee@linaro.org> References: <1430929407-3487-1-git-send-email-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-SA-Exim-Connect-IP: 127.0.0.1 X-SA-Exim-Mail-From: alex.bennee@linaro.org X-SA-Exim-Scanned: No (on socrates.bennee.com); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Currently x86, powerpc and soon arm64 use the same two architecture specific bits for guest debug support for software and hardware breakpoints. This makes the shared values explicit while leaving the gate open for another architecture to use some other value if they really really want to. Signed-off-by: Alex Bennée Reviewed-by: Andrew Jones diff --git a/arch/powerpc/include/uapi/asm/kvm.h b/arch/powerpc/include/uapi/asm/kvm.h index ab4d473..1731569 100644 --- a/arch/powerpc/include/uapi/asm/kvm.h +++ b/arch/powerpc/include/uapi/asm/kvm.h @@ -310,8 +310,8 @@ struct kvm_guest_debug_arch { * and upper 16 bits are architecture specific. Architecture specific defines * that ioctl is for setting hardware breakpoint or software breakpoint. */ -#define KVM_GUESTDBG_USE_SW_BP 0x00010000 -#define KVM_GUESTDBG_USE_HW_BP 0x00020000 +#define KVM_GUESTDBG_USE_SW_BP __KVM_GUESTDBG_USE_SW_BP +#define KVM_GUESTDBG_USE_HW_BP __KVM_GUESTDBG_USE_HW_BP /* definition of registers in kvm_run */ struct kvm_sync_regs { diff --git a/arch/x86/include/uapi/asm/kvm.h b/arch/x86/include/uapi/asm/kvm.h index d7dcef5..1438202 100644 --- a/arch/x86/include/uapi/asm/kvm.h +++ b/arch/x86/include/uapi/asm/kvm.h @@ -250,8 +250,8 @@ struct kvm_debug_exit_arch { __u64 dr7; }; -#define KVM_GUESTDBG_USE_SW_BP 0x00010000 -#define KVM_GUESTDBG_USE_HW_BP 0x00020000 +#define KVM_GUESTDBG_USE_SW_BP __KVM_GUESTDBG_USE_SW_BP +#define KVM_GUESTDBG_USE_HW_BP __KVM_GUESTDBG_USE_HW_BP #define KVM_GUESTDBG_INJECT_DB 0x00040000 #define KVM_GUESTDBG_INJECT_BP 0x00080000 diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h index 70ac641..3b6252e 100644 --- a/include/uapi/linux/kvm.h +++ b/include/uapi/linux/kvm.h @@ -570,8 +570,16 @@ struct kvm_s390_irq_state { /* for KVM_SET_GUEST_DEBUG */ -#define KVM_GUESTDBG_ENABLE 0x00000001 -#define KVM_GUESTDBG_SINGLESTEP 0x00000002 +#define KVM_GUESTDBG_ENABLE (1 << 0) +#define KVM_GUESTDBG_SINGLESTEP (1 << 1) + +/* + * Architecture specific stuff uses the top 16 bits of the field, + * however there is some shared commonality for the common cases + */ +#define __KVM_GUESTDBG_USE_SW_BP (1 << 16) +#define __KVM_GUESTDBG_USE_HW_BP (1 << 17) + struct kvm_guest_debug { __u32 control; -- 2.3.5 From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [PATCH v3 02/12] KVM: define common __KVM_GUESTDBG_USE_SW/HW_BP values Date: Wed, 6 May 2015 17:23:17 +0100 Message-ID: <1430929407-3487-3-git-send-email-alex.bennee@linaro.org> References: <1430929407-3487-1-git-send-email-alex.bennee@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1430929407-3487-1-git-send-email-alex.bennee@linaro.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kvmarm-bounces@lists.cs.columbia.edu Sender: kvmarm-bounces@lists.cs.columbia.edu To: kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, christoffer.dall@linaro.org, marc.zyngier@arm.com, peter.maydell@linaro.org, agraf@suse.de, drjones@redhat.com, pbonzini@redhat.com, zhichao.huang@linaro.org Cc: "maintainer:X86 ARCHITECTURE..." , Benjamin Herrenschmidt , Alexey Kardashevskiy , Nadav Amit , Gleb Natapov , jan.kiszka@siemens.com, "H. Peter Anvin" , "open list:LINUX FOR POWERPC..." , "open list:ABI/API" , open list , dahi@linux.vnet.ibm.com, Ingo Molnar , Paul Mackerras , Michael Ellerman , r65777@freescale.com, Thomas Gleixner , bp@suse.de List-Id: linux-api@vger.kernel.org Q3VycmVudGx5IHg4NiwgcG93ZXJwYyBhbmQgc29vbiBhcm02NCB1c2UgdGhlIHNhbWUgdHdvIGFy Y2hpdGVjdHVyZQpzcGVjaWZpYyBiaXRzIGZvciBndWVzdCBkZWJ1ZyBzdXBwb3J0IGZvciBzb2Z0 d2FyZSBhbmQgaGFyZHdhcmUKYnJlYWtwb2ludHMuIFRoaXMgbWFrZXMgdGhlIHNoYXJlZCB2YWx1 ZXMgZXhwbGljaXQgd2hpbGUgbGVhdmluZyB0aGUKZ2F0ZSBvcGVuIGZvciBhbm90aGVyIGFyY2hp dGVjdHVyZSB0byB1c2Ugc29tZSBvdGhlciB2YWx1ZSBpZiB0aGV5CnJlYWxseSByZWFsbHkgd2Fu dCB0by4KClNpZ25lZC1vZmYtYnk6IEFsZXggQmVubsOpZSA8YWxleC5iZW5uZWVAbGluYXJvLm9y Zz4KUmV2aWV3ZWQtYnk6IEFuZHJldyBKb25lcyA8ZHJqb25lc0ByZWRoYXQuY29tPgoKZGlmZiAt LWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL3VhcGkvYXNtL2t2bS5oIGIvYXJjaC9wb3dlcnBj L2luY2x1ZGUvdWFwaS9hc20va3ZtLmgKaW5kZXggYWI0ZDQ3My4uMTczMTU2OSAxMDA2NDQKLS0t IGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvdWFwaS9hc20va3ZtLmgKKysrIGIvYXJjaC9wb3dlcnBj L2luY2x1ZGUvdWFwaS9hc20va3ZtLmgKQEAgLTMxMCw4ICszMTAsOCBAQCBzdHJ1Y3Qga3ZtX2d1 ZXN0X2RlYnVnX2FyY2ggewogICogYW5kIHVwcGVyIDE2IGJpdHMgYXJlIGFyY2hpdGVjdHVyZSBz cGVjaWZpYy4gQXJjaGl0ZWN0dXJlIHNwZWNpZmljIGRlZmluZXMKICAqIHRoYXQgaW9jdGwgaXMg Zm9yIHNldHRpbmcgaGFyZHdhcmUgYnJlYWtwb2ludCBvciBzb2Z0d2FyZSBicmVha3BvaW50Lgog ICovCi0jZGVmaW5lIEtWTV9HVUVTVERCR19VU0VfU1dfQlAJCTB4MDAwMTAwMDAKLSNkZWZpbmUg S1ZNX0dVRVNUREJHX1VTRV9IV19CUAkJMHgwMDAyMDAwMAorI2RlZmluZSBLVk1fR1VFU1REQkdf VVNFX1NXX0JQCQlfX0tWTV9HVUVTVERCR19VU0VfU1dfQlAKKyNkZWZpbmUgS1ZNX0dVRVNUREJH X1VTRV9IV19CUAkJX19LVk1fR1VFU1REQkdfVVNFX0hXX0JQCiAKIC8qIGRlZmluaXRpb24gb2Yg cmVnaXN0ZXJzIGluIGt2bV9ydW4gKi8KIHN0cnVjdCBrdm1fc3luY19yZWdzIHsKZGlmZiAtLWdp dCBhL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20va3ZtLmggYi9hcmNoL3g4Ni9pbmNsdWRlL3Vh cGkvYXNtL2t2bS5oCmluZGV4IGQ3ZGNlZjUuLjE0MzgyMDIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2 L2luY2x1ZGUvdWFwaS9hc20va3ZtLmgKKysrIGIvYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9r dm0uaApAQCAtMjUwLDggKzI1MCw4IEBAIHN0cnVjdCBrdm1fZGVidWdfZXhpdF9hcmNoIHsKIAlf X3U2NCBkcjc7CiB9OwogCi0jZGVmaW5lIEtWTV9HVUVTVERCR19VU0VfU1dfQlAJCTB4MDAwMTAw MDAKLSNkZWZpbmUgS1ZNX0dVRVNUREJHX1VTRV9IV19CUAkJMHgwMDAyMDAwMAorI2RlZmluZSBL Vk1fR1VFU1REQkdfVVNFX1NXX0JQCQlfX0tWTV9HVUVTVERCR19VU0VfU1dfQlAKKyNkZWZpbmUg S1ZNX0dVRVNUREJHX1VTRV9IV19CUAkJX19LVk1fR1VFU1REQkdfVVNFX0hXX0JQCiAjZGVmaW5l IEtWTV9HVUVTVERCR19JTkpFQ1RfREIJCTB4MDAwNDAwMDAKICNkZWZpbmUgS1ZNX0dVRVNUREJH X0lOSkVDVF9CUAkJMHgwMDA4MDAwMAogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgv a3ZtLmggYi9pbmNsdWRlL3VhcGkvbGludXgva3ZtLmgKaW5kZXggNzBhYzY0MS4uM2I2MjUyZSAx MDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2t2bS5oCisrKyBiL2luY2x1ZGUvdWFwaS9s aW51eC9rdm0uaApAQCAtNTcwLDggKzU3MCwxNiBAQCBzdHJ1Y3Qga3ZtX3MzOTBfaXJxX3N0YXRl IHsKIAogLyogZm9yIEtWTV9TRVRfR1VFU1RfREVCVUcgKi8KIAotI2RlZmluZSBLVk1fR1VFU1RE QkdfRU5BQkxFCQkweDAwMDAwMDAxCi0jZGVmaW5lIEtWTV9HVUVTVERCR19TSU5HTEVTVEVQCQkw eDAwMDAwMDAyCisjZGVmaW5lIEtWTV9HVUVTVERCR19FTkFCTEUJCSgxIDw8IDApCisjZGVmaW5l IEtWTV9HVUVTVERCR19TSU5HTEVTVEVQCSgxIDw8IDEpCisKKy8qCisgKiBBcmNoaXRlY3R1cmUg c3BlY2lmaWMgc3R1ZmYgdXNlcyB0aGUgdG9wIDE2IGJpdHMgb2YgdGhlIGZpZWxkLAorICogaG93 ZXZlciB0aGVyZSBpcyBzb21lIHNoYXJlZCBjb21tb25hbGl0eSBmb3IgdGhlIGNvbW1vbiBjYXNl cworICovCisjZGVmaW5lIF9fS1ZNX0dVRVNUREJHX1VTRV9TV19CUAkoMSA8PCAxNikKKyNkZWZp bmUgX19LVk1fR1VFU1REQkdfVVNFX0hXX0JQCSgxIDw8IDE3KQorCiAKIHN0cnVjdCBrdm1fZ3Vl c3RfZGVidWcgewogCV9fdTMyIGNvbnRyb2w7Ci0tIAoyLjMuNQoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18Ka3ZtYXJtIG1haWxpbmcgbGlzdAprdm1hcm1A bGlzdHMuY3MuY29sdW1iaWEuZWR1Cmh0dHBzOi8vbGlzdHMuY3MuY29sdW1iaWEuZWR1L21haWxt YW4vbGlzdGluZm8va3ZtYXJtCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from socrates.bennee.com (static.88-198-71-155.clients.your-server.de [88.198.71.155]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 34B481A00F6 for ; Thu, 7 May 2015 02:23:54 +1000 (AEST) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, christoffer.dall@linaro.org, marc.zyngier@arm.com, peter.maydell@linaro.org, agraf@suse.de, drjones@redhat.com, pbonzini@redhat.com, zhichao.huang@linaro.org Subject: [PATCH v3 02/12] KVM: define common __KVM_GUESTDBG_USE_SW/HW_BP values Date: Wed, 6 May 2015 17:23:17 +0100 Message-Id: <1430929407-3487-3-git-send-email-alex.bennee@linaro.org> In-Reply-To: <1430929407-3487-1-git-send-email-alex.bennee@linaro.org> References: <1430929407-3487-1-git-send-email-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Cc: "maintainer:X86 ARCHITECTURE..." , Alexey Kardashevskiy , Nadav Amit , Gleb Natapov , jan.kiszka@siemens.com, "H. Peter Anvin" , "open list:LINUX FOR POWERPC..." , "open list:ABI/API" , open list , Bharat Bhushan , dahi@linux.vnet.ibm.com, Ingo Molnar , Paul Mackerras , r65777@freescale.com, Mihai Caraman , Thomas Gleixner , bp@suse.de, =?UTF-8?q?Alex=20Benn=C3=A9e?= List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Currently x86, powerpc and soon arm64 use the same two architecture specific bits for guest debug support for software and hardware breakpoints. This makes the shared values explicit while leaving the gate open for another architecture to use some other value if they really really want to. Signed-off-by: Alex Bennée Reviewed-by: Andrew Jones diff --git a/arch/powerpc/include/uapi/asm/kvm.h b/arch/powerpc/include/uapi/asm/kvm.h index ab4d473..1731569 100644 --- a/arch/powerpc/include/uapi/asm/kvm.h +++ b/arch/powerpc/include/uapi/asm/kvm.h @@ -310,8 +310,8 @@ struct kvm_guest_debug_arch { * and upper 16 bits are architecture specific. Architecture specific defines * that ioctl is for setting hardware breakpoint or software breakpoint. */ -#define KVM_GUESTDBG_USE_SW_BP 0x00010000 -#define KVM_GUESTDBG_USE_HW_BP 0x00020000 +#define KVM_GUESTDBG_USE_SW_BP __KVM_GUESTDBG_USE_SW_BP +#define KVM_GUESTDBG_USE_HW_BP __KVM_GUESTDBG_USE_HW_BP /* definition of registers in kvm_run */ struct kvm_sync_regs { diff --git a/arch/x86/include/uapi/asm/kvm.h b/arch/x86/include/uapi/asm/kvm.h index d7dcef5..1438202 100644 --- a/arch/x86/include/uapi/asm/kvm.h +++ b/arch/x86/include/uapi/asm/kvm.h @@ -250,8 +250,8 @@ struct kvm_debug_exit_arch { __u64 dr7; }; -#define KVM_GUESTDBG_USE_SW_BP 0x00010000 -#define KVM_GUESTDBG_USE_HW_BP 0x00020000 +#define KVM_GUESTDBG_USE_SW_BP __KVM_GUESTDBG_USE_SW_BP +#define KVM_GUESTDBG_USE_HW_BP __KVM_GUESTDBG_USE_HW_BP #define KVM_GUESTDBG_INJECT_DB 0x00040000 #define KVM_GUESTDBG_INJECT_BP 0x00080000 diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h index 70ac641..3b6252e 100644 --- a/include/uapi/linux/kvm.h +++ b/include/uapi/linux/kvm.h @@ -570,8 +570,16 @@ struct kvm_s390_irq_state { /* for KVM_SET_GUEST_DEBUG */ -#define KVM_GUESTDBG_ENABLE 0x00000001 -#define KVM_GUESTDBG_SINGLESTEP 0x00000002 +#define KVM_GUESTDBG_ENABLE (1 << 0) +#define KVM_GUESTDBG_SINGLESTEP (1 << 1) + +/* + * Architecture specific stuff uses the top 16 bits of the field, + * however there is some shared commonality for the common cases + */ +#define __KVM_GUESTDBG_USE_SW_BP (1 << 16) +#define __KVM_GUESTDBG_USE_HW_BP (1 << 17) + struct kvm_guest_debug { __u32 control; -- 2.3.5 From mboxrd@z Thu Jan 1 00:00:00 1970 From: alex.bennee@linaro.org (=?UTF-8?q?Alex=20Benn=C3=A9e?=) Date: Wed, 6 May 2015 17:23:17 +0100 Subject: [PATCH v3 02/12] KVM: define common __KVM_GUESTDBG_USE_SW/HW_BP values In-Reply-To: <1430929407-3487-1-git-send-email-alex.bennee@linaro.org> References: <1430929407-3487-1-git-send-email-alex.bennee@linaro.org> Message-ID: <1430929407-3487-3-git-send-email-alex.bennee@linaro.org> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Currently x86, powerpc and soon arm64 use the same two architecture specific bits for guest debug support for software and hardware breakpoints. This makes the shared values explicit while leaving the gate open for another architecture to use some other value if they really really want to. Signed-off-by: Alex Benn?e Reviewed-by: Andrew Jones diff --git a/arch/powerpc/include/uapi/asm/kvm.h b/arch/powerpc/include/uapi/asm/kvm.h index ab4d473..1731569 100644 --- a/arch/powerpc/include/uapi/asm/kvm.h +++ b/arch/powerpc/include/uapi/asm/kvm.h @@ -310,8 +310,8 @@ struct kvm_guest_debug_arch { * and upper 16 bits are architecture specific. Architecture specific defines * that ioctl is for setting hardware breakpoint or software breakpoint. */ -#define KVM_GUESTDBG_USE_SW_BP 0x00010000 -#define KVM_GUESTDBG_USE_HW_BP 0x00020000 +#define KVM_GUESTDBG_USE_SW_BP __KVM_GUESTDBG_USE_SW_BP +#define KVM_GUESTDBG_USE_HW_BP __KVM_GUESTDBG_USE_HW_BP /* definition of registers in kvm_run */ struct kvm_sync_regs { diff --git a/arch/x86/include/uapi/asm/kvm.h b/arch/x86/include/uapi/asm/kvm.h index d7dcef5..1438202 100644 --- a/arch/x86/include/uapi/asm/kvm.h +++ b/arch/x86/include/uapi/asm/kvm.h @@ -250,8 +250,8 @@ struct kvm_debug_exit_arch { __u64 dr7; }; -#define KVM_GUESTDBG_USE_SW_BP 0x00010000 -#define KVM_GUESTDBG_USE_HW_BP 0x00020000 +#define KVM_GUESTDBG_USE_SW_BP __KVM_GUESTDBG_USE_SW_BP +#define KVM_GUESTDBG_USE_HW_BP __KVM_GUESTDBG_USE_HW_BP #define KVM_GUESTDBG_INJECT_DB 0x00040000 #define KVM_GUESTDBG_INJECT_BP 0x00080000 diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h index 70ac641..3b6252e 100644 --- a/include/uapi/linux/kvm.h +++ b/include/uapi/linux/kvm.h @@ -570,8 +570,16 @@ struct kvm_s390_irq_state { /* for KVM_SET_GUEST_DEBUG */ -#define KVM_GUESTDBG_ENABLE 0x00000001 -#define KVM_GUESTDBG_SINGLESTEP 0x00000002 +#define KVM_GUESTDBG_ENABLE (1 << 0) +#define KVM_GUESTDBG_SINGLESTEP (1 << 1) + +/* + * Architecture specific stuff uses the top 16 bits of the field, + * however there is some shared commonality for the common cases + */ +#define __KVM_GUESTDBG_USE_SW_BP (1 << 16) +#define __KVM_GUESTDBG_USE_HW_BP (1 << 17) + struct kvm_guest_debug { __u32 control; -- 2.3.5