Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753411AbbKLHNm (ORCPT ); Thu, 12 Nov 2015 02:13:42 -0500 Received: from szxga03-in.huawei.com ([119.145.14.66]:56953 "EHLO szxga03-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752997AbbKLHNl (ORCPT ); Thu, 12 Nov 2015 02:13:41 -0500 Subject: Re: [PATCH v2 3/4] KVM: X86: Migration is supported To: Paolo Bonzini , , , , , , , References: <1445591718-5720-1-git-send-email-jianjay.zhou@huawei.com> <1445591718-5720-4-git-send-email-jianjay.zhou@huawei.com> <56435B9A.1070004@redhat.com> CC: , , , From: Jian Zhou Message-ID: <56443A67.4070208@huawei.com> Date: Thu, 12 Nov 2015 15:06:15 +0800 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <56435B9A.1070004@redhat.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.177.19.14] X-CFilter-Loop: Reflected X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A090205.56443C04.0074,ss=1,re=0.000,recu=0.000,reip=0.000,cl=1,cld=1,fgs=0, ip=0.0.0.0, so=2013-05-26 15:14:31, dmn=2013-03-21 17:37:32 X-Mirapoint-Loop-Id: 2645268cbee407d2121702c2ae276b50 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2827 Lines: 89 On 2015/11/11 23:15, Paolo Bonzini wrote: > > > On 23/10/2015 11:15, Jian Zhou wrote: >> data *msr_info) >> } >> break; >> case MSR_IA32_DEBUGCTLMSR: >> - if (!data) { >> - /* We support the non-activated case already */ >> - break; >> - } else if (data & ~(DEBUGCTLMSR_LBR | DEBUGCTLMSR_BTF)) { >> - /* Values other than LBR and BTF are vendor-specific, >> - thus reserved and should throw a #GP */ >> + supported = DEBUGCTLMSR_LBR | DEBUGCTLMSR_BTF | >> + DEBUGCTLMSR_FREEZE_LBRS_ON_PMI; >> + >> + if (data & ~supported) { >> + /* >> + * Values other than LBR/BTF/FREEZE_LBRS_ON_PMI >> + * are not supported, thus reserved and should throw a #GP >> + */ >> + vcpu_unimpl(vcpu, "%s: MSR_IA32_DEBUGCTLMSR 0x%llx, nop\n", >> + __func__, data); >> return 1; >> } >> - vcpu_unimpl(vcpu, "%s: MSR_IA32_DEBUGCTLMSR 0x%llx, nop\n", >> - __func__, data); >> + if (kvm_x86_ops->set_debugctlmsr) { >> + if (kvm_x86_ops->set_debugctlmsr(vcpu, data)) >> + return 1; >> + } >> + else >> + return 1; >> + >> break; >> case 0x200 ... 0x2ff: >> return kvm_mtrr_set_msr(vcpu, msr, data); >> @@ -2078,6 +2090,33 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info) >> vcpu_unimpl(vcpu, "disabled perfctr wrmsr: " >> "0x%x data 0x%llx\n", msr, data); >> break; >> + case MSR_LBR_STATUS: >> + if (kvm_x86_ops->set_debugctlmsr) { >> + vcpu->arch.lbr_status = (data == 0) ? 0 : 1; >> + if (data) >> + kvm_x86_ops->set_debugctlmsr(vcpu, >> + DEBUGCTLMSR_LBR | DEBUGCTLMSR_FREEZE_LBRS_ON_PMI); >> + } else >> + vcpu_unimpl(vcpu, "lbr is disabled, ignored wrmsr: " >> + "0x%x data 0x%llx\n", msr, data); >> + break; >> + case MSR_LBR_SELECT: >> + case MSR_LBR_TOS: >> + case MSR_PENTIUM4_LER_FROM_LIP: >> + case MSR_PENTIUM4_LER_TO_LIP: >> + case MSR_PENTIUM4_LBR_TOS: >> + case MSR_IA32_LASTINTFROMIP: >> + case MSR_IA32_LASTINTTOIP: >> + case MSR_LBR_CORE2_FROM ... MSR_LBR_CORE2_FROM + 0x7: >> + case MSR_LBR_CORE2_TO ... MSR_LBR_CORE2_TO + 0x7: >> + case MSR_LBR_NHM_FROM ... MSR_LBR_NHM_FROM + 0x1f: >> + case MSR_LBR_NHM_TO ... MSR_LBR_NHM_TO + 0x1f: >> + if (kvm_x86_ops->set_lbr_msr) >> + kvm_x86_ops->set_lbr_msr(vcpu, msr, data); >> + else >> + vcpu_unimpl(vcpu, "lbr is disabled, ignored wrmsr: " >> + "0x%x data 0x%llx\n", msr, data); > > I think you can just do this in kvm_x86_ops->set_msr. The old > implementation for DEBUGCTL MSR can be moved to svm.c. I think you mean "moved to vmx.c"? Thanks, Jian > Paolo > > . > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/