Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753299AbcCGPoc (ORCPT ); Mon, 7 Mar 2016 10:44:32 -0500 Received: from mx1.redhat.com ([209.132.183.28]:61401 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753157AbcCGPoV (ORCPT ); Mon, 7 Mar 2016 10:44:21 -0500 Subject: Re: [PART1 RFC v2 03/10] svm: Introduce new AVIC VMCB registers To: Suravee Suthikulpanit , rkrcmar@redhat.com, joro@8bytes.org, bp@alien8.de, gleb@kernel.org, alex.williamson@redhat.com References: <1457124368-2025-1-git-send-email-Suravee.Suthikulpanit@amd.com> <1457124368-2025-4-git-send-email-Suravee.Suthikulpanit@amd.com> Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, wei@redhat.com, sherry.hurwitz@amd.com From: Paolo Bonzini Message-ID: <56DDA1CF.4080207@redhat.com> Date: Mon, 7 Mar 2016 16:44:15 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <1457124368-2025-4-git-send-email-Suravee.Suthikulpanit@amd.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Mon, 07 Mar 2016 15:44:20 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1945 Lines: 78 On 04/03/2016 21:46, Suravee Suthikulpanit wrote: > From: Suravee Suthikulpanit > > Introduce new AVIC VMCB registers. Also breakdown int_ctl register > into bit-field for ease of use. > > Signed-off-by: Suravee Suthikulpanit > --- > arch/x86/include/asm/svm.h | 29 ++++++++++++++++++++++++----- > 1 file changed, 24 insertions(+), 5 deletions(-) > > diff --git a/arch/x86/include/asm/svm.h b/arch/x86/include/asm/svm.h > index 6136d99..db5d7af 100644 > --- a/arch/x86/include/asm/svm.h > +++ b/arch/x86/include/asm/svm.h > @@ -67,10 +67,24 @@ struct __attribute__ ((__packed__)) vmcb_control_area { > u32 asid; > u8 tlb_ctl; > u8 reserved_2[3]; > - u32 int_ctl; > + union { /* Offset 0x60 */ > + u32 int_ctl; > + > + struct __attribute__ ((__packed__)) { > + u32 v_tpr : 8, > + v_irq : 1, > + reserved_3 : 7, > + v_intr_prio : 4, > + v_ign_tpr : 1, > + reserved_4 : 3, > + v_intr_masking : 1, > + reserved_5 : 6, > + avic_enable : 1; Please do not introduce bitfields and drop patch 4. Thanks, Paolo > + }; > + }; > u32 int_vector; > u32 int_state; > - u8 reserved_3[4]; > + u8 reserved_6[4]; > u32 exit_code; > u32 exit_code_hi; > u64 exit_info_1; > @@ -78,17 +92,22 @@ struct __attribute__ ((__packed__)) vmcb_control_area { > u32 exit_int_info; > u32 exit_int_info_err; > u64 nested_ctl; > - u8 reserved_4[16]; > + u64 avic_vapic_bar; > + u8 reserved_7[8]; > u32 event_inj; > u32 event_inj_err; > u64 nested_cr3; > u64 lbr_ctl; > u32 clean; > - u32 reserved_5; > + u32 reserved_8; > u64 next_rip; > u8 insn_len; > u8 insn_bytes[15]; > - u8 reserved_6[800]; > + u64 avic_bk_page; /* Offset 0xe0 */ > + u8 reserved_9[8]; /* Offset 0xe8 */ > + u64 avic_log_apic_id; /* Offset 0xf0 */ > + u64 avic_phy_apic_id; /* Offset 0xf8 */ > + u8 reserved_10[768]; > }; > > >