Received: by 10.223.176.5 with SMTP id f5csp1479558wra; Wed, 31 Jan 2018 07:04:59 -0800 (PST) X-Google-Smtp-Source: AH8x225hhLE4wHr7jw+n/Z+cPbDLO1bCc3R9gu2e2iWCqCaxM1G2Va1/L/LNifrfQloIt9ciKbLz X-Received: by 10.99.120.203 with SMTP id t194mr26632010pgc.39.1517411099187; Wed, 31 Jan 2018 07:04:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1517411099; cv=none; d=google.com; s=arc-20160816; b=m4Lm1x3Q138CKJJjoed4Ny4NW9sA75Ick0OeINqFcZBwLFBHtvgvtLvosF4WXlMbZG STYx8A4Tmh+Geiwo4ddbNzdrZ9am6S4nJ327v8UXuZYxvRdHJ8/GSQ134gTvbsG1eiF/ fJWLZGKm471je0ZaOCz78NzTs1+6dBGrq8c2PrpcEWIYx98dGQyHfjEJHnSZvodjCs+G BFEr6eRND4UIgkHfS0ELEN0AcSDGhZm8mULlJRxptyj9jEiUQb73O+VSCa/Vfb6usaMa cjJc8w7zGgVoQPNZSf3nMNZpTQS11HRo0Gs8idTTPeG4kh2iW8UUbQmvYehJmqqaqFq3 4N+w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:arc-authentication-results; bh=hU2zzqaLRxKLB/AkCJhx7a86ySXwHD8w8KZUFWz2hUU=; b=X/9De/TaUjOeIy/QwvBqvfRQcKfgziUMMHThhEeWa5LzT3AjCRkxiIg5ip1GXp7QMh sR80id+PKXna6QA51hK9vVYMChzmTMVnDhQ1Y868uhZmT28RZDSmwmiT4EF+R/mPrfo7 GA6Pt/1IQxYEiQuVmxlMg4vkipNlZb8qtbuYyl8kLkCJXVo9s5n1zYWkZkWwzwJpH4sK C6g1edds0WiaSucxlRGWE/ux7pphZxbZnwdy6oyBYogEvkzfQA03gjCa1fS9+VAqxcSb 5YH4blbWFZLEnJr7lxHxFoLjyIFBYBmZDU9Qr4IxDJwZanSHs3E6RD6TwQeL6OVG+Q7X if6A== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q14si2259659pfh.17.2018.01.31.07.04.43; Wed, 31 Jan 2018 07:04:59 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752865AbeAaPER (ORCPT + 99 others); Wed, 31 Jan 2018 10:04:17 -0500 Received: from mx1.redhat.com ([209.132.183.28]:5642 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751447AbeAaPEQ (ORCPT ); Wed, 31 Jan 2018 10:04:16 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 94D6228157; Wed, 31 Jan 2018 15:04:15 +0000 (UTC) Received: from [10.36.116.69] (ovpn-116-69.ams2.redhat.com [10.36.116.69]) by smtp.corp.redhat.com (Postfix) with ESMTPS id CB410620C7; Wed, 31 Jan 2018 15:03:53 +0000 (UTC) Subject: Re: [RFC,05/10] x86/speculation: Add basic IBRS support infrastructure To: Andi Kleen , Jim Mattson Cc: Linus Torvalds , David Woodhouse , Arjan van de Ven , Eduardo Habkost , KarimAllah Ahmed , Linux Kernel Mailing List , Andrea Arcangeli , Andy Lutomirski , Ashok Raj , Asit Mallick , Borislav Petkov , Dan Williams , Dave Hansen , Greg Kroah-Hartman , "H . Peter Anvin" , Ingo Molnar , Janakarajan Natarajan , Joerg Roedel , Jun Nakajima , Laura Abbott , Masami Hiramatsu , Peter Zijlstra , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , Thomas Gleixner , Tim Chen , Tom Lendacky , KVM list , the arch/x86 maintainers , "Dr. David Alan Gilbert" References: <1516476182-5153-6-git-send-email-karahmed@amazon.de> <20180129201404.GA1588@localhost.localdomain> <1517257022.18619.30.camel@infradead.org> <20180129204256.GV25150@localhost.localdomain> <31415b7f-9c76-c102-86cd-6bf4e23e3aee@linux.intel.com> <1517259759.18619.38.camel@infradead.org> <20180130031340.GV26209@tassilo.jf.intel.com> From: Paolo Bonzini Message-ID: <68a15b64-1031-ddf1-e209-e38ac1280c59@redhat.com> Date: Wed, 31 Jan 2018 10:03:51 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 MIME-Version: 1.0 In-Reply-To: <20180130031340.GV26209@tassilo.jf.intel.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Wed, 31 Jan 2018 15:04:15 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 29/01/2018 22:13, Andi Kleen wrote: >> What happens when someone introduces a >> workaround tied to some other model numbers? > There are already many of those in the tree for other issues and features. > So far you managed to survive without. Likely that will be true > in the future too. "Guests have to live with processor fuckups" is actually a much better answer than "Hypervisors may need to revisit their practice", since at least it's clear where the blame lies. Because really it's just plain luck. It just happens that most errata are for functionality that is not available to a virtual machine (e.g. perfmon and monitor workarounds or buggy TSC deadline timer that hypervisors emulate anyway), that only needs a chicken bit to be set in the host, or the bugs are there only for old hardware that doesn't have virtualization (X86_BUG_F00F, X86_BUGS_SWAPGS_FENCE). CPUID flags are guaranteed to never change---never come, never go away. For anything that doesn't map nicely to a CPUID flag, you cannot really express it. Also if something is not architectural, you can pretty much assume that you cannot know it under virtualization. f/m/s is not architectural; family, model and stepping mean absolutely nothing when running in virtualization, because the host CPU model can change under your feet at any time. We force guest vendor == host vendor just because otherwise too much stuff breaks, but that's it. Paolo