Received: by 10.223.164.202 with SMTP id h10csp972138wrb; Sun, 26 Nov 2017 17:04:02 -0800 (PST) X-Google-Smtp-Source: AGs4zMaMwxpiiHKwiyH+RVf0oY79juzTX/m5rl/k15yFqF4pvuGcso8qP7FN5ja9TwjFHSeHzuQM X-Received: by 10.99.129.73 with SMTP id t70mr35021336pgd.227.1511744641937; Sun, 26 Nov 2017 17:04:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1511744641; cv=none; d=google.com; s=arc-20160816; b=Ptq99Kd1KMq33XUlj0Rfuc+rxsYP/LZknQH4vrVcIRyGPEeGUORdPmQNfnLH2ipX1t sXn368rr625wclUtrPv1MS/Wg4m6o2W8xWK/AVa4Ch6DSxwvt/y+2FtyrF2NL8SyuY5d fw/maED3OFh4eNPWBzb+pnJzUzKslpAN0SVXcZdn/pKzVeRaki7HJeixCJLZYDljkMJ5 FnFjio8s5rx2Kpmtuj9XTpuKU8ddMns0O96pvqJurBXjVF623unrHH2b+7i4jhqiR4oU LLZ0Rr3g3X/lsykb4+eFw7wcphYKB8KR6v6A94yto/GsYIazoveGvk3CVS+jfgHATwbX JYmQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=ZSHDgDsl2PnLdGVWnowEXBicnGCyjanVLtsgO7pL6H8=; b=m4M2OqI2oZREweHXVpnCN9JEIm1xALzDtyevK3tDXW9Sk5CzN4dAXXNuuMbinXlTy6 Ms3LW5vKm8le/PeOSd18Er7RZemHHi4kpA0rrioZH7UwlE91jLj1FzvnDyjxsPHixlGI vGEgIY+zvsEtu0kCvXo8z/9t9Gge4N6HidkrjJsQDxexTIUsZHhSqxCmZGSmvP49XAZ3 NXFn0PU4d7Qz3m2rR+6NHROL6PiUsBCLZCA5ztbI2N7O6k3jHEvsRy4Y7VvFHUy5e/qk 6OX5DHmXgKSyXUzOzp6B5bX8eSKwb7J6x65C7d4+iJf/H5schr0NTBgmyEyh74H/p2Ph ebhA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=N7I/QUtW; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 34si22566043plz.777.2017.11.26.17.03.42; Sun, 26 Nov 2017 17:04:01 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=N7I/QUtW; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752245AbdK0BCt (ORCPT + 77 others); Sun, 26 Nov 2017 20:02:49 -0500 Received: from mail-ot0-f194.google.com ([74.125.82.194]:33295 "EHLO mail-ot0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752154AbdK0BCr (ORCPT ); Sun, 26 Nov 2017 20:02:47 -0500 Received: by mail-ot0-f194.google.com with SMTP id s12so22875831otc.0; Sun, 26 Nov 2017 17:02:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=ZSHDgDsl2PnLdGVWnowEXBicnGCyjanVLtsgO7pL6H8=; b=N7I/QUtWHRIQq12EnRdzY8vAYqc37JgfH/6v2r1Pp6CZAB8Q1fI7CFqy6jNgFk5Sjp gWJXrnOymOv+Bw/fCM9JFURIAEQgqY5Fx013dO0brw0j9GVW/9PV9MGeUZ89+EZrwU4B vXs8Bqz7WUTUc2uAV7MJn7Vm1w3qsY+aQHGMluBvJVi+3gc4MTRKqJMgvPYhHVW3yKSt v38d2b6H8TARSKBeA9MOMbbAHHDUx5K/nhHonVmhUjTxmQA6wICwoUiXAEWqeS1b0vdf yV7sqa0KH3vp7ZustHotojEGpUaOQKkZ91rupj/fJ15UL8WdhsgxQE3fdQ5nqIJCIHze HVhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=ZSHDgDsl2PnLdGVWnowEXBicnGCyjanVLtsgO7pL6H8=; b=lZRLDTiOlGFeeeLGCPPOktiB6jqBTjorcpqH1wwkrlpPu49d/45cwmyJKwO7PhcoW1 SGoaYLoIaU+MbhYpZEM6xiDpN7+LTvsbCOZULh+flrPXe7Rd/i4lryxBVF9IjpeTKonP C1BIQlzdrxaCSQVmPXA2sZiX0Cssn1lpSHkWs5h4e21fukyEUclg0idpRA3rjWCw95Z0 CvC6OQ+yli+v9HhB1XxtACF2WpjK9fyPTfUeRxpcq55v08IIeKXBFjzRl8v01hSwbN+K +ndkpruk0lkX+mmLpgbwSRvGmlUTW/oZ5yJw1zfLvyfkAxkaINRpzGCQEUQMXjXbQDDH 5QAA== X-Gm-Message-State: AJaThX7jRQ8gSmMZqVEwUdDIauhL557EERI7tXpbExF8oqJI1/uVdlVc wml+aek09RZGyECS3abii22cuFjLZRjaDQ/dcBU= X-Received: by 10.157.34.200 with SMTP id y66mr23750212ota.276.1511744566888; Sun, 26 Nov 2017 17:02:46 -0800 (PST) MIME-Version: 1.0 Received: by 10.74.209.8 with HTTP; Sun, 26 Nov 2017 17:02:46 -0800 (PST) In-Reply-To: <1511714482-3273-2-git-send-email-sironi@amazon.de> References: <1511714482-3273-1-git-send-email-sironi@amazon.de> <1511714482-3273-2-git-send-email-sironi@amazon.de> From: Wanpeng Li Date: Mon, 27 Nov 2017 09:02:46 +0800 Message-ID: Subject: Re: [PATCH 2/2] KVM: x86: Allow userspace to define what's the microcode version To: Filippo Sironi Cc: Paolo Bonzini , Radim Krcmar , kvm , "linux-kernel@vger.kernel.org" Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 2017-11-27 0:41 GMT+08:00 Filippo Sironi : > ... that the guest should see. > Guest operating systems may check the microcode version to decide whether > to disable certain features that are known to be buggy up to certain > microcode versions. Address the issue by making the microcode version > that the guest should see settable. > The rationale for having userspace specifying the microcode version, rather > than having the kernel picking it, is to ensure consistency for live-migrated > instances; we don't want them to see a microcode version increase without a > reset. Is there a scenario which needs to refresh the microcode in the guest instead of on the host? Regards, Wanpeng Li > > Signed-off-by: Filippo Sironi > --- > arch/x86/kvm/x86.c | 23 +++++++++++++++++++++++ > include/uapi/linux/kvm.h | 3 +++ > 2 files changed, 26 insertions(+) > > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > index 925c3e29cad3..741588f27ebc 100644 > --- a/arch/x86/kvm/x86.c > +++ b/arch/x86/kvm/x86.c > @@ -4033,6 +4033,29 @@ long kvm_arch_vm_ioctl(struct file *filp, > } u; > > switch (ioctl) { > + case KVM_GET_MICROCODE_VERSION: { > + r = -EFAULT; > + if (copy_to_user(argp, > + &kvm->arch.microcode_version, > + sizeof(kvm->arch.microcode_version))) > + goto out; > + break; > + } > + case KVM_SET_MICROCODE_VERSION: { > + u32 microcode_version; > + > + r = -EFAULT; > + if (copy_from_user(µcode_version, > + argp, > + sizeof(microcode_version))) > + goto out; > + r = -EINVAL; > + if (!microcode_version) > + goto out; > + kvm->arch.microcode_version = microcode_version; > + r = 0; > + break; > + } > case KVM_SET_TSS_ADDR: > r = kvm_vm_ioctl_set_tss_addr(kvm, arg); > break; > diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h > index 282d7613fce8..e11887758e29 100644 > --- a/include/uapi/linux/kvm.h > +++ b/include/uapi/linux/kvm.h > @@ -1192,6 +1192,9 @@ struct kvm_s390_ucas_mapping { > #define KVM_S390_UCAS_UNMAP _IOW(KVMIO, 0x51, struct kvm_s390_ucas_mapping) > #define KVM_S390_VCPU_FAULT _IOW(KVMIO, 0x52, unsigned long) > > +#define KVM_GET_MICROCODE_VERSION _IOR(KVMIO, 0x5e, __u32) > +#define KVM_SET_MICROCODE_VERSION _IOW(KVMIO, 0x5f, __u32) > + > /* Device model IOC */ > #define KVM_CREATE_IRQCHIP _IO(KVMIO, 0x60) > #define KVM_IRQ_LINE _IOW(KVMIO, 0x61, struct kvm_irq_level) > -- > 2.7.4 > From 1585147596714649699@xxx Sun Nov 26 16:42:30 +0000 2017 X-GM-THRID: 1585147596714649699 X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread