From: "Radim Krčmář" <rkrcmar@redhat.com>
To: Borislav Petkov <bp@alien8.de>
Cc: KVM <kvm@vger.kernel.org>, Joerg Roedel <joro@8bytes.org>,
Tom Lendacky <thomas.lendacky@amd.com>,
Tony Luck <tony.luck@intel.com>,
Yazen Ghannam <Yazen.Ghannam@amd.com>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 2/3] x86/kvm: Implement MSR_HWCR support
Date: Fri, 22 Jun 2018 21:22:22 +0200 [thread overview]
Message-ID: <20180622192222.GA12641@flask> (raw)
In-Reply-To: <20180622190912.GG1882@zn.tnic>
2018-06-22 21:09+0200, Borislav Petkov:
> On Fri, Jun 22, 2018 at 08:52:38PM +0200, Radim Krčmář wrote:
> > msr_info->host_initiated is always going to return true, so it would be
> > better to put it outside of __set_mci_status.
> >
> > Maybe we could just write the whole logic inline, otherwise I'd call it
> > something like mci_status_is_writeable.
> >
> > > static int set_msr_mce(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
> > > {
> > > u64 mcg_cap = vcpu->arch.mcg_cap;
> > > @@ -2176,9 +2200,13 @@ static int set_msr_mce(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
> > > if ((offset & 0x3) == 0 &&
> > > data != 0 && (data | (1 << 10)) != ~(u64)0)
> > > return -1;
> > > - if (!msr_info->host_initiated &&
> > > - (offset & 0x3) == 1 && data != 0)
> > > - return -1;
> > > +
> > > + /* MCi_STATUS */
> > > + if ((offset & 0x3) == 1) {
> > > + if (!__set_mci_status(vcpu, msr_info))
> > > + return -1;
> > > + }
> >
> > if (!msr_info->host_initiated &&
> > (offset & 0x3) == 1 && data != 0) {
> > struct msr_data tmp = {.index = MSR_K7_HWCR};
> >
> > if (!guest_cpuid_is_amd(vcpu) ||
> > !kvm_x86_ops->get_msr(vcpu, &tmp) ||
> > !(tmp.data & BIT_ULL(18)))
> > return -1;
>
> Don't you feel it is cleaner if all the MCi_STATUS checking is done in
> a separate function? The indentation level and the bunch of checks in
> set_msr_mce() make it hard to read while having a separate function
> separates it and makes it easier to follow.
Yes, I feel the same.
> I mean, you're the maintainer but if I may give a suggestion, moving the
> whole logic into a separate function would be more readable.
>
> And then do:
>
> if (!msr_info->host_initiated) {
> if (check_mci_status(...))
> return -1;
> }
>
> Something like that...
Much better, thanks.
next prev parent reply other threads:[~2018-06-22 19:22 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-22 9:50 [PATCH 0/3] x86/kvm: Enable MCE injection in the guest Borislav Petkov
2018-06-22 9:50 ` [PATCH 1/3] kvm/x86: Move MSR_K7_HWCR to svm.c Borislav Petkov
2018-06-22 9:51 ` [PATCH 2/3] x86/kvm: Implement MSR_HWCR support Borislav Petkov
2018-06-22 18:52 ` Radim Krčmář
2018-06-22 19:09 ` Borislav Petkov
2018-06-22 19:22 ` Radim Krčmář [this message]
2018-06-22 9:51 ` [PATCH 3/3] x86/kvm: Handle all MCA banks Borislav Petkov
2018-06-22 18:16 ` Radim Krčmář
2018-06-22 18:24 ` Borislav Petkov
2018-06-22 18:47 ` Radim Krčmář
2018-06-22 19:02 ` Borislav Petkov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180622192222.GA12641@flask \
--to=rkrcmar@redhat.com \
--cc=Yazen.Ghannam@amd.com \
--cc=bp@alien8.de \
--cc=joro@8bytes.org \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=thomas.lendacky@amd.com \
--cc=tony.luck@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.