From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754315AbbDMOwo (ORCPT ); Mon, 13 Apr 2015 10:52:44 -0400 Received: from static.88-198-71-155.clients.your-server.de ([88.198.71.155]:57675 "EHLO socrates.bennee.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753875AbbDMOwm (ORCPT ); Mon, 13 Apr 2015 10:52:42 -0400 References: <1427814488-28467-1-git-send-email-alex.bennee@linaro.org> <1427814488-28467-3-git-send-email-alex.bennee@linaro.org> <20150413115535.GM6186@cbox> From: Alex =?utf-8?Q?Benn=C3=A9e?= To: Christoffer Dall Cc: kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, marc.zyngier@arm.com, peter.maydell@linaro.org, agraf@suse.de, drjones@redhat.com, pbonzini@redhat.com, zhichao.huang@linaro.org, jan.kiszka@siemens.com, dahi@linux.vnet.ibm.com, r65777@freescale.com, bp@suse.de, Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , "maintainer\:X86 ARCHITECTURE..." , Gleb Natapov , Bharat Bhushan , Alexey Kardashevskiy , Mihai Caraman , Nadav Amit , "open list\:LINUX FOR POWERPC..." , open list , "open list\:ABI\/API" Subject: Re: [PATCH v2 02/10] KVM: define common __KVM_GUESTDBG_USE_SW/HW_BP values In-reply-to: <20150413115535.GM6186@cbox> Date: Mon, 13 Apr 2015 15:51:33 +0100 Message-ID: <871tjokrnu.fsf@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 Christoffer Dall writes: > On Tue, Mar 31, 2015 at 04:08:00PM +0100, Alex Bennée wrote: >> 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 >> >> 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 5eedf84..ce2db14 100644 >> --- a/include/uapi/linux/kvm.h >> +++ b/include/uapi/linux/kvm.h >> @@ -525,8 +525,16 @@ struct kvm_s390_irq { >> >> /* 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, > > can you be more specific than 'stuff' here? features? > >> + * however there is some shared commonality for the common cases > > I don't like this sentence; shared commonality is a pleonasm and the use > of however makes it sounds like there's some caveat here. OK I can see that - after I looked it up ;-) > If the top 16 bits are indeed arhictecture specific, then I think they > should just be defined in their architecture specific headers. Unless > the idea here is that there's a fixed set of of flags that architectures > can choose to support, in which case it should simply be defined in the > common header. Well an architecture might not support some features and want to use those bits for something else? I didn't want to force the bottom two of the architecture specific bits to wasted if the features don't exist. > > >> + */ >> +#define __KVM_GUESTDBG_USE_SW_BP (1 << 16) >> +#define __KVM_GUESTDBG_USE_HW_BP (1 << 17) >> + >> >> struct kvm_guest_debug { >> __u32 control; >> -- >> 2.3.4 >> -- Alex Bennée From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex =?utf-8?Q?Benn=C3=A9e?= Subject: Re: [PATCH v2 02/10] KVM: define common __KVM_GUESTDBG_USE_SW/HW_BP values Date: Mon, 13 Apr 2015 15:51:33 +0100 Message-ID: <871tjokrnu.fsf@linaro.org> References: <1427814488-28467-1-git-send-email-alex.bennee@linaro.org> <1427814488-28467-3-git-send-email-alex.bennee@linaro.org> <20150413115535.GM6186@cbox> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-reply-to: <20150413115535.GM6186@cbox> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: linuxppc-dev-bounces+glppe-linuxppc-embedded-2=m.gmane.org@lists.ozlabs.org Sender: "Linuxppc-dev" To: Christoffer Dall Cc: peter.maydell@linaro.org, kvm@vger.kernel.org, Alexey Kardashevskiy , Bharat Bhushan , Paul Mackerras , "H. Peter Anvin" , kvmarm@lists.cs.columbia.edu, Nadav Amit , "maintainer:X86 ARCHITECTURE..." , agraf@suse.de, Gleb Natapov , Ingo Molnar , zhichao.huang@linaro.org, jan.kiszka@siemens.com, Mihai Caraman , bp@suse.de, drjones@redhat.com, marc.zyngier@arm.com, r65777@freescale.com, Thomas Gleixner , linux-arm-kernel@lists.infradead.org, "open list:ABI/API" , open list , dahi@linux.vnet.ibm.com, pbonzini@redhat.com, "open list:LINUX FOR POWERPC..." List-Id: linux-api@vger.kernel.org CkNocmlzdG9mZmVyIERhbGwgPGNocmlzdG9mZmVyLmRhbGxAbGluYXJvLm9yZz4gd3JpdGVzOgoK PiBPbiBUdWUsIE1hciAzMSwgMjAxNSBhdCAwNDowODowMFBNICswMTAwLCBBbGV4IEJlbm7DqWUg d3JvdGU6Cj4+IEN1cnJlbnRseSB4ODYsIHBvd2VycGMgYW5kIHNvb24gYXJtNjQgdXNlIHRoZSBz YW1lIHR3byBhcmNoaXRlY3R1cmUKPj4gc3BlY2lmaWMgYml0cyBmb3IgZ3Vlc3QgZGVidWcgc3Vw cG9ydCBmb3Igc29mdHdhcmUgYW5kIGhhcmR3YXJlCj4+IGJyZWFrcG9pbnRzLiBUaGlzIG1ha2Vz IHRoZSBzaGFyZWQgdmFsdWVzIGV4cGxpY2l0IHdoaWxlIGxlYXZpbmcgdGhlCj4+IGdhdGUgb3Bl biBmb3IgYW5vdGhlciBhcmNoaXRlY3R1cmUgdG8gdXNlIHNvbWUgb3RoZXIgdmFsdWUgaWYgdGhl eQo+PiByZWFsbHkgcmVhbGx5IHdhbnQgdG8uCj4+IAo+PiBTaWduZWQtb2ZmLWJ5OiBBbGV4IEJl bm7DqWUgPGFsZXguYmVubmVlQGxpbmFyby5vcmc+Cj4+IAo+PiBkaWZmIC0tZ2l0IGEvYXJjaC9w b3dlcnBjL2luY2x1ZGUvdWFwaS9hc20va3ZtLmggYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS91YXBp L2FzbS9rdm0uaAo+PiBpbmRleCBhYjRkNDczLi4xNzMxNTY5IDEwMDY0NAo+PiAtLS0gYS9hcmNo L3Bvd2VycGMvaW5jbHVkZS91YXBpL2FzbS9rdm0uaAo+PiArKysgYi9hcmNoL3Bvd2VycGMvaW5j bHVkZS91YXBpL2FzbS9rdm0uaAo+PiBAQCAtMzEwLDggKzMxMCw4IEBAIHN0cnVjdCBrdm1fZ3Vl c3RfZGVidWdfYXJjaCB7Cj4+ICAgKiBhbmQgdXBwZXIgMTYgYml0cyBhcmUgYXJjaGl0ZWN0dXJl IHNwZWNpZmljLiBBcmNoaXRlY3R1cmUgc3BlY2lmaWMgZGVmaW5lcwo+PiAgICogdGhhdCBpb2N0 bCBpcyBmb3Igc2V0dGluZyBoYXJkd2FyZSBicmVha3BvaW50IG9yIHNvZnR3YXJlIGJyZWFrcG9p bnQuCj4+ICAgKi8KPj4gLSNkZWZpbmUgS1ZNX0dVRVNUREJHX1VTRV9TV19CUAkJMHgwMDAxMDAw MAo+PiAtI2RlZmluZSBLVk1fR1VFU1REQkdfVVNFX0hXX0JQCQkweDAwMDIwMDAwCj4+ICsjZGVm aW5lIEtWTV9HVUVTVERCR19VU0VfU1dfQlAJCV9fS1ZNX0dVRVNUREJHX1VTRV9TV19CUAo+PiAr I2RlZmluZSBLVk1fR1VFU1REQkdfVVNFX0hXX0JQCQlfX0tWTV9HVUVTVERCR19VU0VfSFdfQlAK Pj4gIAo+PiAgLyogZGVmaW5pdGlvbiBvZiByZWdpc3RlcnMgaW4ga3ZtX3J1biAqLwo+PiAgc3Ry dWN0IGt2bV9zeW5jX3JlZ3Mgewo+PiBkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS91YXBp L2FzbS9rdm0uaCBiL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20va3ZtLmgKPj4gaW5kZXggZDdk Y2VmNS4uMTQzODIwMiAxMDA2NDQKPj4gLS0tIGEvYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9r dm0uaAo+PiArKysgYi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2t2bS5oCj4+IEBAIC0yNTAs OCArMjUwLDggQEAgc3RydWN0IGt2bV9kZWJ1Z19leGl0X2FyY2ggewo+PiAgCV9fdTY0IGRyNzsK Pj4gIH07Cj4+ICAKPj4gLSNkZWZpbmUgS1ZNX0dVRVNUREJHX1VTRV9TV19CUAkJMHgwMDAxMDAw MAo+PiAtI2RlZmluZSBLVk1fR1VFU1REQkdfVVNFX0hXX0JQCQkweDAwMDIwMDAwCj4+ICsjZGVm aW5lIEtWTV9HVUVTVERCR19VU0VfU1dfQlAJCV9fS1ZNX0dVRVNUREJHX1VTRV9TV19CUAo+PiAr I2RlZmluZSBLVk1fR1VFU1REQkdfVVNFX0hXX0JQCQlfX0tWTV9HVUVTVERCR19VU0VfSFdfQlAK Pj4gICNkZWZpbmUgS1ZNX0dVRVNUREJHX0lOSkVDVF9EQgkJMHgwMDA0MDAwMAo+PiAgI2RlZmlu ZSBLVk1fR1VFU1REQkdfSU5KRUNUX0JQCQkweDAwMDgwMDAwCj4+ICAKPj4gZGlmZiAtLWdpdCBh L2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaCBiL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaAo+PiBp bmRleCA1ZWVkZjg0Li5jZTJkYjE0IDEwMDY0NAo+PiAtLS0gYS9pbmNsdWRlL3VhcGkvbGludXgv a3ZtLmgKPj4gKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L2t2bS5oCj4+IEBAIC01MjUsOCArNTI1 LDE2IEBAIHN0cnVjdCBrdm1fczM5MF9pcnEgewo+PiAgCj4+ICAvKiBmb3IgS1ZNX1NFVF9HVUVT VF9ERUJVRyAqLwo+PiAgCj4+IC0jZGVmaW5lIEtWTV9HVUVTVERCR19FTkFCTEUJCTB4MDAwMDAw MDEKPj4gLSNkZWZpbmUgS1ZNX0dVRVNUREJHX1NJTkdMRVNURVAJCTB4MDAwMDAwMDIKPj4gKyNk ZWZpbmUgS1ZNX0dVRVNUREJHX0VOQUJMRQkJKDEgPDwgMCkKPj4gKyNkZWZpbmUgS1ZNX0dVRVNU REJHX1NJTkdMRVNURVAJKDEgPDwgMSkKPj4gKwo+PiArLyoKPj4gKyAqIEFyY2hpdGVjdHVyZSBz cGVjaWZpYyBzdHVmZiB1c2VzIHRoZSB0b3AgMTYgYml0cyBvZiB0aGUgZmllbGQsCj4KPiBjYW4g eW91IGJlIG1vcmUgc3BlY2lmaWMgdGhhbiAnc3R1ZmYnIGhlcmU/ICBmZWF0dXJlcz8KPgo+PiAr ICogaG93ZXZlciB0aGVyZSBpcyBzb21lIHNoYXJlZCBjb21tb25hbGl0eSBmb3IgdGhlIGNvbW1v biBjYXNlcwo+Cj4gSSBkb24ndCBsaWtlIHRoaXMgc2VudGVuY2U7IHNoYXJlZCBjb21tb25hbGl0 eSBpcyBhIHBsZW9uYXNtIGFuZCB0aGUgdXNlCj4gb2YgaG93ZXZlciBtYWtlcyBpdCBzb3VuZHMg bGlrZSB0aGVyZSdzIHNvbWUgY2F2ZWF0IGhlcmUuCgpPSyBJIGNhbiBzZWUgdGhhdCAtIGFmdGVy IEkgbG9va2VkIGl0IHVwIDstKQoKPiBJZiB0aGUgdG9wIDE2IGJpdHMgYXJlIGluZGVlZCBhcmhp Y3RlY3R1cmUgc3BlY2lmaWMsIHRoZW4gSSB0aGluayB0aGV5Cj4gc2hvdWxkIGp1c3QgYmUgZGVm aW5lZCBpbiB0aGVpciBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgaGVhZGVycy4gIFVubGVzcwo+IHRo ZSBpZGVhIGhlcmUgaXMgdGhhdCB0aGVyZSdzIGEgZml4ZWQgc2V0IG9mIG9mIGZsYWdzIHRoYXQg YXJjaGl0ZWN0dXJlcwo+IGNhbiBjaG9vc2UgdG8gc3VwcG9ydCwgaW4gd2hpY2ggY2FzZSBpdCBz aG91bGQgc2ltcGx5IGJlIGRlZmluZWQgaW4gdGhlCj4gY29tbW9uIGhlYWRlci4KCldlbGwgYW4g YXJjaGl0ZWN0dXJlIG1pZ2h0IG5vdCBzdXBwb3J0IHNvbWUgZmVhdHVyZXMgYW5kIHdhbnQgdG8g dXNlCnRob3NlIGJpdHMgZm9yIHNvbWV0aGluZyBlbHNlPyBJIGRpZG4ndCB3YW50IHRvIGZvcmNl IHRoZSBib3R0b20gdHdvCm9mIHRoZSBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgYml0cyB0byB3YXN0 ZWQgaWYgdGhlIGZlYXR1cmVzIGRvbid0IGV4aXN0LgoKPgo+Cj4+ICsgKi8KPj4gKyNkZWZpbmUg X19LVk1fR1VFU1REQkdfVVNFX1NXX0JQCSgxIDw8IDE2KQo+PiArI2RlZmluZSBfX0tWTV9HVUVT VERCR19VU0VfSFdfQlAJKDEgPDwgMTcpCj4+ICsKPj4gIAo+PiAgc3RydWN0IGt2bV9ndWVzdF9k ZWJ1ZyB7Cj4+ICAJX191MzIgY29udHJvbDsKPj4gLS0gCj4+IDIuMy40Cj4+IAoKLS0gCkFsZXgg QmVubsOpZQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpM aW51eHBwYy1kZXYgbWFpbGluZyBsaXN0CkxpbnV4cHBjLWRldkBsaXN0cy5vemxhYnMub3JnCmh0 dHBzOi8vbGlzdHMub3psYWJzLm9yZy9saXN0aW5mby9saW51eHBwYy1kZXY= 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 8376E1A01A7 for ; Tue, 14 Apr 2015 00:51:35 +1000 (AEST) References: <1427814488-28467-1-git-send-email-alex.bennee@linaro.org> <1427814488-28467-3-git-send-email-alex.bennee@linaro.org> <20150413115535.GM6186@cbox> From: Alex =?utf-8?Q?Benn=C3=A9e?= To: Christoffer Dall Subject: Re: [PATCH v2 02/10] KVM: define common __KVM_GUESTDBG_USE_SW/HW_BP values In-reply-to: <20150413115535.GM6186@cbox> Date: Mon, 13 Apr 2015 15:51:33 +0100 Message-ID: <871tjokrnu.fsf@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Cc: peter.maydell@linaro.org, kvm@vger.kernel.org, Alexey Kardashevskiy , Bharat Bhushan , Paul Mackerras , "H. Peter Anvin" , kvmarm@lists.cs.columbia.edu, Nadav Amit , "maintainer:X86 ARCHITECTURE..." , agraf@suse.de, Gleb Natapov , Ingo Molnar , zhichao.huang@linaro.org, jan.kiszka@siemens.com, Mihai Caraman , bp@suse.de, drjones@redhat.com, marc.zyngier@arm.com, r65777@freescale.com, Thomas Gleixner , linux-arm-kernel@lists.infradead.org, "open list:ABI/API" , open list , dahi@linux.vnet.ibm.com, pbonzini@redhat.com, "open list:LINUX FOR POWERPC..." List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Christoffer Dall writes: > On Tue, Mar 31, 2015 at 04:08:00PM +0100, Alex Bennée wrote: >> 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 >> >> 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 5eedf84..ce2db14 100644 >> --- a/include/uapi/linux/kvm.h >> +++ b/include/uapi/linux/kvm.h >> @@ -525,8 +525,16 @@ struct kvm_s390_irq { >> >> /* 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, > > can you be more specific than 'stuff' here? features? > >> + * however there is some shared commonality for the common cases > > I don't like this sentence; shared commonality is a pleonasm and the use > of however makes it sounds like there's some caveat here. OK I can see that - after I looked it up ;-) > If the top 16 bits are indeed arhictecture specific, then I think they > should just be defined in their architecture specific headers. Unless > the idea here is that there's a fixed set of of flags that architectures > can choose to support, in which case it should simply be defined in the > common header. Well an architecture might not support some features and want to use those bits for something else? I didn't want to force the bottom two of the architecture specific bits to wasted if the features don't exist. > > >> + */ >> +#define __KVM_GUESTDBG_USE_SW_BP (1 << 16) >> +#define __KVM_GUESTDBG_USE_HW_BP (1 << 17) >> + >> >> struct kvm_guest_debug { >> __u32 control; >> -- >> 2.3.4 >> -- Alex Bennée From mboxrd@z Thu Jan 1 00:00:00 1970 From: alex.bennee@linaro.org (Alex =?utf-8?Q?Benn=C3=A9e?=) Date: Mon, 13 Apr 2015 15:51:33 +0100 Subject: [PATCH v2 02/10] KVM: define common __KVM_GUESTDBG_USE_SW/HW_BP values In-Reply-To: <20150413115535.GM6186@cbox> References: <1427814488-28467-1-git-send-email-alex.bennee@linaro.org> <1427814488-28467-3-git-send-email-alex.bennee@linaro.org> <20150413115535.GM6186@cbox> Message-ID: <871tjokrnu.fsf@linaro.org> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Christoffer Dall writes: > On Tue, Mar 31, 2015 at 04:08:00PM +0100, Alex Benn?e wrote: >> 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 >> >> 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 5eedf84..ce2db14 100644 >> --- a/include/uapi/linux/kvm.h >> +++ b/include/uapi/linux/kvm.h >> @@ -525,8 +525,16 @@ struct kvm_s390_irq { >> >> /* 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, > > can you be more specific than 'stuff' here? features? > >> + * however there is some shared commonality for the common cases > > I don't like this sentence; shared commonality is a pleonasm and the use > of however makes it sounds like there's some caveat here. OK I can see that - after I looked it up ;-) > If the top 16 bits are indeed arhictecture specific, then I think they > should just be defined in their architecture specific headers. Unless > the idea here is that there's a fixed set of of flags that architectures > can choose to support, in which case it should simply be defined in the > common header. Well an architecture might not support some features and want to use those bits for something else? I didn't want to force the bottom two of the architecture specific bits to wasted if the features don't exist. > > >> + */ >> +#define __KVM_GUESTDBG_USE_SW_BP (1 << 16) >> +#define __KVM_GUESTDBG_USE_HW_BP (1 << 17) >> + >> >> struct kvm_guest_debug { >> __u32 control; >> -- >> 2.3.4 >> -- Alex Benn?e