From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755338AbeDWNYQ (ORCPT ); Mon, 23 Apr 2018 09:24:16 -0400 Received: from mail.skyhub.de ([5.9.137.197]:38032 "EHLO mail.skyhub.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755256AbeDWNYN (ORCPT ); Mon, 23 Apr 2018 09:24:13 -0400 Date: Mon, 23 Apr 2018 15:23:47 +0200 From: Borislav Petkov To: Eduardo Habkost Cc: Paolo Bonzini , Wanpeng Li , LKML , kvm , Radim =?utf-8?B?S3LEjW3DocWZ?= Subject: Re: [PATCH] KVM: X86: Allow userspace to define the microcode version Message-ID: <20180423132347.GE22238@pd.tnic> References: <3866d359-0ef8-6a99-6254-84890be62b93@redhat.com> <20180226122205.GG4377@pd.tnic> <20180417202417.GA29865@localhost.localdomain> <20180418090329.GJ29865@localhost.localdomain> <20180423125849.GD22238@pd.tnic> <20180423130823.GM29865@localhost.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20180423130823.GM29865@localhost.localdomain> User-Agent: Mutt/1.9.3 (2018-01-21) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Apr 23, 2018 at 10:08:23AM -0300, Eduardo Habkost wrote: > On Mon, Apr 23, 2018 at 02:58:49PM +0200, Borislav Petkov wrote: > > On Wed, Apr 18, 2018 at 12:36:37PM +0200, Paolo Bonzini wrote: > > > On 18/04/2018 11:03, Eduardo Habkost wrote: > > > >>> QEMU setting ucode_rev automatically using the host value when > > > >>> using "-cpu host" (with no need for explicit ucode_rev option) > > > >>> makes sense to me. > > > >> QEMU can't get the host value by rdmsr MSR_IA32_UCODE_REV directly > > > >> since rdmsr will #GP when ring !=0, any idea? > > > > By looking at kvm_get_msr_feature(), it looks like > > > > ioctl(system_fd, KVM_GET_MSRS) would return the host MSR value > > > > for us. > > > > > > Yes, that's exactly what it was introduced for (together with other MSRs > > > including VMX capabilities). > > > > Can't qemu do: > > > > grep microcode /proc/cpuinfo | awk '{ print $3 }' | head -n 1 > > It could, but why would QEMU do it if a real API already exists > for that? To save an MSR read per logical CPU but from the looks of it, that KVM_GET_MSRS is widely used in qemu with kvm_get_msrs() so I guess one more MSR doesn't matter. -- Regards/Gruss, Boris. Good mailing practices for 400: avoid top-posting and trim the reply.