Received: by 2002:ad5:4acb:0:0:0:0:0 with SMTP id n11csp3512934imw; Mon, 18 Jul 2022 09:23:05 -0700 (PDT) X-Google-Smtp-Source: AGRyM1thCTebaeQ1pkq1uN7RBdfU9lrzyptp2NzP/4hqnVPTz4F5qb1/0Sr1xH17/qeBd4s2nGx2 X-Received: by 2002:a65:6b95:0:b0:408:9d1b:2e56 with SMTP id d21-20020a656b95000000b004089d1b2e56mr24546701pgw.381.1658161385639; Mon, 18 Jul 2022 09:23:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1658161385; cv=none; d=google.com; s=arc-20160816; b=aVDIgypo1c3fRIuavhux/D+dWz5d7CJmw3bfpFEfOh8yjbbRPq7ES/Xnwshty1RncQ 1eypl0K5Q3LgkLb8pYiZvvn4ABmhi6d6tSAjKi4ifWR+UJZCsU/IzC3X3KOEjnyCrkJz MYERR6CtQ9c4N4fK/+pKnL1SmMBQm8QsKvz05aHgS5O8IsxfeFVl601vWGUYOe5vVkBy sNUvGaM7reY2r2reJrEiCytQpnvEPJ4xcLZ1a2NzU06b1B+z4siD4Nm6gRf5lYUzsYeu yrPvP99cFFkwyxRhbyTLhfbD4HZeNGrpWjmhASiueGXBKIE8LW6IxtjimX1e2SDG49nv C4bg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=9TtjPFua9h2nXvdI295iIvL1KzKHe3EXSfFcAruP83w=; b=FNs/PkUtUoITf97nA8sx62CPLxCmnncDgiuEd3svNIM63q/uJQEvGxhu7cZa1S6Wzv q9bVvdyQGJ28+B4vMhdWa3DkZ4J5F+W3fdjnpg41qufdE8+hH5gjBs6DUk/JA4cJbPpl iE82BqMKKdhIFkD/xJZXH2w75aa5jjLK/HB5fBFIVBIfplP9Z62F6vG1i1/OC2dZ9461 VnAetEB7EpZCerNslvdZkfnIT01p/rGZrNnPwFUj7J6goIe17eBlj2qv3lxY4Zg7qfNZ L3j61mEkvqymB3rQO5WP9IBK7goSeNAFWdxCMN3dtSo9WM/PU4Thr3wr/54VlWKVNnAN iOXQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=B1Vkgcwj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t24-20020a63d258000000b00415c0eb0a88si15666815pgi.307.2022.07.18.09.22.49; Mon, 18 Jul 2022 09:23:05 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=B1Vkgcwj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235619AbiGRQHk (ORCPT + 99 others); Mon, 18 Jul 2022 12:07:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43556 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233151AbiGRQHi (ORCPT ); Mon, 18 Jul 2022 12:07:38 -0400 Received: from mail-pj1-x1032.google.com (mail-pj1-x1032.google.com [IPv6:2607:f8b0:4864:20::1032]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E67652A702 for ; Mon, 18 Jul 2022 09:07:37 -0700 (PDT) Received: by mail-pj1-x1032.google.com with SMTP id o5-20020a17090a3d4500b001ef76490983so13106511pjf.2 for ; Mon, 18 Jul 2022 09:07:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=9TtjPFua9h2nXvdI295iIvL1KzKHe3EXSfFcAruP83w=; b=B1Vkgcwjmw7wF5OIqM2gALnGlnAyAG2yQwQgXfjRGkFUma/YPHJARaaTbp8wa8XRog pi3U2WHIL4JMGTI+Zv6aZiB6++EXbxB3vvgnUGeAwsiBqntL6dRUfOLSo7+sLb0c81/g U5QYnMbZfJrA377IZT504TiE60Ki5Vv39eUJG/NHOStwhRr+9aGua9xCVJsqxV/uWs2L 9zlcIITsUvYq3cMWOCrBIUGIbj4xdKDFvaAsNyVPAzJVJlhNlHAJxTBp8rP7W9n4fdlx Iy7cNHfe12sNoT0KG0JgFeVDPH5TNda7JAhcfxiNHGQINO8TSKIB6K9EKAqNhtHXKAHM xu7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=9TtjPFua9h2nXvdI295iIvL1KzKHe3EXSfFcAruP83w=; b=UszJBUleAIhvIMJrXgeEbqA05sz1uFYW9bJihwZ5bDu85VvsdCzdDFPZEPyV3PAep4 PQfW9vBDVxV+tnoZCgIXodgiTSmAAfMTJbeeb3uCb01Z3GcEIey19cRxZ9QU/qBmFflI geMQ4OWj1R4zUq1Hh4JCr/n9gREPHu/zOYdwcz/yR78sK7IHPTU0SkQUdhwt84TZXhva 9MJVb5xdJi/nGzR61MX8aWMviThIKoUfJ1ZEYr6eXfmXvVxUxP6VKa7b/q1rSbHplbL9 KiPthuMe+SEcmqcGb7BOCO+or5QIw8xRNPhoLOt0FCF/GRng9p4s/+kWVqA8640hFGsD oSxw== X-Gm-Message-State: AJIora9so6pNqWin1ecy6XVuE8nOdeUSmz2eKZKnlanziztA2CfDNWV6 YiVjnddiOH26ZqqB4YKfliGs9A== X-Received: by 2002:a17:90b:3a84:b0:1f0:56d5:4604 with SMTP id om4-20020a17090b3a8400b001f056d54604mr32203421pjb.41.1658160457262; Mon, 18 Jul 2022 09:07:37 -0700 (PDT) Received: from google.com (123.65.230.35.bc.googleusercontent.com. [35.230.65.123]) by smtp.gmail.com with ESMTPSA id r10-20020a170902be0a00b0016bc947c5b7sm9669163pls.38.2022.07.18.09.07.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Jul 2022 09:07:36 -0700 (PDT) Date: Mon, 18 Jul 2022 16:07:33 +0000 From: Sean Christopherson To: Maxim Levitsky Cc: Paolo Bonzini , kvm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 3/4] KVM: x86/mmu: Add shadow mask for effective host MTRR memtype Message-ID: References: <20220715230016.3762909-1-seanjc@google.com> <20220715230016.3762909-4-seanjc@google.com> <580a46b4623309474bb3207ea994eb9b5a3603a7.camel@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <580a46b4623309474bb3207ea994eb9b5a3603a7.camel@redhat.com> X-Spam-Status: No, score=-17.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, ENV_AND_HDR_SPF_MATCH,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, USER_IN_DEF_DKIM_WL,USER_IN_DEF_SPF_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Jul 18, 2022, Maxim Levitsky wrote: > On Fri, 2022-07-15 at 23:00 +0000, Sean Christopherson wrote: > > diff --git a/arch/x86/kvm/mmu/spte.h b/arch/x86/kvm/mmu/spte.h > > index ba3dccb202bc..cabe3fbb4f39 100644 > > --- a/arch/x86/kvm/mmu/spte.h > > +++ b/arch/x86/kvm/mmu/spte.h > > @@ -147,6 +147,7 @@ extern u64 __read_mostly shadow_mmio_value; > > ?extern u64 __read_mostly shadow_mmio_mask; > > ?extern u64 __read_mostly shadow_mmio_access_mask; > > ?extern u64 __read_mostly shadow_present_mask; > > +extern u64 __read_mostly shadow_memtype_mask; > > ?extern u64 __read_mostly shadow_me_value; > > ?extern u64 __read_mostly shadow_me_mask; > > ? > > > So if I understand correctly: > > > VMX: > > - host MTRRs are ignored. > > - all *host* mmio ranges (can only be VFIO's pci BARs), are mapped UC in EPT, > but guest can override this with its PAT to WC) > > > - all regular memory is mapped WB + guest PAT ignored unless there is noncoherent dma, > (an older Intel's IOMMU? I think current Intel's IOMMLU are coherent?) Effectively, yes. My understanding is that on x86, everything is cache-coherent by default, but devices can set a no-snoop flag, which breaks cache coherency. But then the IOMMU, except for old Intel IOMMUs, can block such packets, and VFIO forces the block setting in the IOMMU when it's supported by hardware. Note, at first glance, commit e8ae0e140c05 ("vfio: Require that devices support DMA cache coherence") makes it seem like exposing non-coherent DMA to KVM is impossible, but IIUC that's just enforcing that the _default_ device behavior provides coherency. I.e. VFIO will still allow an old Intel IOMMU plus a device that sets no-snoop.