From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id EDA7EC0015E for ; Fri, 21 Jul 2023 17:41:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 32B078D0002; Fri, 21 Jul 2023 13:41:20 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2DB388D0001; Fri, 21 Jul 2023 13:41:20 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 17C468D0002; Fri, 21 Jul 2023 13:41:20 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 08E928D0001 for ; Fri, 21 Jul 2023 13:41:20 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id C3909A03A1 for ; Fri, 21 Jul 2023 17:41:19 +0000 (UTC) X-FDA: 81036335478.27.CBB4F30 Received: from mail-yb1-f202.google.com (mail-yb1-f202.google.com [209.85.219.202]) by imf28.hostedemail.com (Postfix) with ESMTP id 16F5AC0008 for ; Fri, 21 Jul 2023 17:41:16 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=DoHzE6IB; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf28.hostedemail.com: domain of 3PMO6ZAYKCNkN95IE7BJJBG9.7JHGDIPS-HHFQ57F.JMB@flex--seanjc.bounces.google.com designates 209.85.219.202 as permitted sender) smtp.mailfrom=3PMO6ZAYKCNkN95IE7BJJBG9.7JHGDIPS-HHFQ57F.JMB@flex--seanjc.bounces.google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1689961277; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=0EsEuc6ZrLkBpjfXrbTj3wl8CGw2RCGPAyUMK4WwkjA=; b=N/sBohrYAoByallDyNkJgT79RjX1SHbglHbxJNdvKj/95r/YepyeZLamTkCLxTyDP6YIMe fycGqPbcDYL3+xaqUnkAtBuXdT+i07uJtK7vIzUaObkaaI2vRAafC3q7xb0CSUuGeZPImx Lc8Hu1YMh/MjZjYOwMvMan41SdvCwwc= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=DoHzE6IB; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf28.hostedemail.com: domain of 3PMO6ZAYKCNkN95IE7BJJBG9.7JHGDIPS-HHFQ57F.JMB@flex--seanjc.bounces.google.com designates 209.85.219.202 as permitted sender) smtp.mailfrom=3PMO6ZAYKCNkN95IE7BJJBG9.7JHGDIPS-HHFQ57F.JMB@flex--seanjc.bounces.google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1689961277; a=rsa-sha256; cv=none; b=qG880i31joV2aC4oUO/jt4EME8Mdett4zdk1YctGhetnM407B6wgJCXligi8iU6Y8mG0rN GiqMYve9erxGu+vtDX4RgJ9Cw05kkSeumjTuTFk5S9iqpHpIScdHuT/h2wkB1xsR1Yl5j9 2WZr3T5LjXyKSHRpfvZb/VvfDVjhh80= Received: by mail-yb1-f202.google.com with SMTP id 3f1490d57ef6-c850943cf9aso2067568276.1 for ; Fri, 21 Jul 2023 10:41:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1689961276; x=1690566076; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=0EsEuc6ZrLkBpjfXrbTj3wl8CGw2RCGPAyUMK4WwkjA=; b=DoHzE6IB/gTaLmkueM9yb30EUG6tzOb2A5AXrz9PQw1Ifq3ks790NG9A8kHnulrV92 RNCrZzNkmPOc83fANNDf5nXf1wPVFL2y5FNAhz+fPjDVllxc5Oizeq9OoCoSO3jrCWPO Fdo3zuU1ITNzecPSKDNY0XL2xmTCfJibF/rCjlkemXFUh+Sr371B5TqkScdP+lHN0Bsv l8bJ71cW4eJgHOkXZEVFnapIkfHWHqvRivBGgXBk81wx3rhHxJzYdjltDTwHbRDPypPU FqCvfBjArc5TGgWA7G3s9Jm2aOIc06rnT78obfljmzEALSkpFg35cZZdMznfZTRdtzpx x88Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689961276; x=1690566076; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=0EsEuc6ZrLkBpjfXrbTj3wl8CGw2RCGPAyUMK4WwkjA=; b=llHQltQDN9pzCm2CqqmOi2uMSWIC77g0zJcRmDXj/TKohnFK2lkTcgmMqC7fiIjKEj 0dI4c3n/CWFIAS/GQQF7pSgGL8AlZnAuwgKClxpgdGKUflbTo9YlHu2Ponxs4OkdngWo N9Q9JxndsjzMiIvm8WA6UTpHpeqVg9OzLcbC/nJT/xMoRzI4iIldnYh1wLqLtxIiwi5L Dc13G2V0kFOxWso1VdSrDGPMNSGvB7Mu8h2+N42WINHASbb7mCXQBq8m2J91R5fI4YJ7 I1pLX3i/ZY3g7Ne9irVHgKo1GYFpEi1UvHFScESCsxpyp39g9bW1E02IEZHGbZ/JAZxw 0Ofw== X-Gm-Message-State: ABy/qLZo1WQIYoXomCAtErujhglr0eOSn6vJutMSXDq7QitAnxNMusOO 8CzFej65Wvo5ZSMjW9kM+R/AXG4cLqc= X-Google-Smtp-Source: APBJJlFxyzDv1jxbiR1ec3ea79Hb3YohAr96lgMadcKGyfL8Br8SJoCJpXRoXSNCjiu8EtZhgF/6XBpHBow= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a25:4f41:0:b0:cb6:6c22:d0f8 with SMTP id d62-20020a254f41000000b00cb66c22d0f8mr17638ybb.4.1689961276130; Fri, 21 Jul 2023 10:41:16 -0700 (PDT) Date: Fri, 21 Jul 2023 10:41:14 -0700 In-Reply-To: <6118063e-5c91-acc4-129f-3bacc19f25ce@redhat.com> Mime-Version: 1.0 References: <20230718234512.1690985-1-seanjc@google.com> <20230718234512.1690985-10-seanjc@google.com> <6118063e-5c91-acc4-129f-3bacc19f25ce@redhat.com> Message-ID: Subject: Re: [RFC PATCH v11 09/29] KVM: x86: Disallow hugepages when memory attributes are mixed From: Sean Christopherson To: Paolo Bonzini Cc: Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , "Matthew Wilcox (Oracle)" , Andrew Morton , Paul Moore , James Morris , "Serge E. Hallyn" , kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-security-module@vger.kernel.org, linux-kernel@vger.kernel.org, Chao Peng , Fuad Tabba , Jarkko Sakkinen , Yu Zhang , Vishal Annapurve , Ackerley Tng , Maciej Szmigiero , Vlastimil Babka , David Hildenbrand , Quentin Perret , Michael Roth , Wang , Liam Merwick , Isaku Yamahata , "Kirill A . Shutemov" Content-Type: text/plain; charset="us-ascii" X-Rspamd-Queue-Id: 16F5AC0008 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: 5gk9o6z1317is59gtmbywgbbubn5a13o X-HE-Tag: 1689961276-924233 X-HE-Meta: U2FsdGVkX1+U0ybLW8XIh3viDI1TV3gQ9y/OEqnGT7Ro2di49aqBF2kftWGbONyQKls9wZe+3pob1Hwg2VP7lh19+htFDr79sf+QlROn3qkcp/ArpBF69HOLB1Z7Kj6o2bYCckZ88VSnFKd4AgQTU1OJnzEY8lmrOQMnFPgwcw00IUrKxceBO8AXkZhx0EC+Za/PxWvO0EoXL/TlqXhDpWeX8w0UWr+ZXrxVeP2BVPzy9ZbFmnA7ktFiox+vYc96nOPQF6o3Gshzdl1mWXbvZ3AZFVZJIXGlDX/Yya5oAurqHtzIEhK+Z0uVx0LSuhmNVPK/WX3+6WpARCZsZu96pHUb8V+nCMtzqyipo3jZNvksXB7vFPz54tCu3UxlWcUQ/d1Rlufp3oDP5X72U5F8ZPC7ios7PsoPxyKjNNab1LT/fJYssQzy8au8435Rp8b3E6vXefXdhsJ04ErYqtDCe5U35my0iWvStS00jqmoqD6Xba53WxrRmaJa/zkF7uAWLBn7qXYuDQu6dNGpYce9N4WOAgodcG/z3WDFl7h/RVuGn32aD5kOSmSELH3VKvmsC6ADdLNxgb9BKehSgznZiPBrnRvkpOfrsf1ybrgK9UpiwsUqoyZgcDsfIujsUzZMGpSp2cna/W2km3KSwmph2PBNYUzQCcOEBRiDFS0j1DHgBpJkq8qim2aoSfyvpSNqvqJiPp2OcbUIMZZho6N56xUMV3aQ6kUU5QV9fyUGrV3ubfZleFNHbvabnOCbdnj5XUTJUH0EkFh4L80hK18Iwt+1nG+vzX/brWa+qHjB5PmDZ91D63NbvQYbampHO4VHAX/6+k2fYcTLxc8w6hKXM7P9D0Nr9h10+QxADFBhF9gbdXi91BR6hC6Z4l0lZESjbCynVFj2+peMqn4i9Lo4YfGoAbSbZTfR8idAe8uacrQBBBDz02XR97S4WHe8FbQ7RhAWKMIIFHc2avOSzJh Q1NX4Hdz cK0/9qIEOvdgCr5HW6CDYYSBibdas0Emn7IbgVdkQphqEX+UCY8ypq7RbiWygZxolKJ9drOC76HWCoDOBAwORPmIlCXRnU9ZxNwrZhjooYMko5Iw6+HTQqrAacx3C5/BPpyblFTEuoOrs4aWVBKx8GMtjz30ibHv5QzslesdS2rG5RPRQOT22+5NMq0ecpgOFq/OcI+/TJGuz2OCE+eBcfgoL7w68rYVkRc9InTN0qJrcnU8hI6CDkR4kdik5m+pJ5Gn9d+Oyp6px1hNDr002jKKx9SuINQxyho9o7zxVHoqzAsvw07wvKKd1/Cl5YxKH77yZBNq2kFYn/3XhMzK2VC1mBIClmoHf/EG7Tb28VIgkAmnm/ksflWsRb1Y/IgEvufVVBCcFc2G76RI6whGVuFMgBgNMJfREG/7rzZQklbUzuIOn6pzjnLQtZwNpET2Cq7i5OqPNdpHSM7BAqE/3h5/9I9l4s74BcSPKgxPncMUqN16CHZkxU25Jj7S7RU56I8YmjIc44yvHDLyGjSJgpEaBTxTHew8YB//4Z+jX9MnquxU+YENPb79aNIgRHrwgq7lI04Xs6e6qenSAVV561frTy+pM9ToSMH65gz8QhzawA0F/gHDNhbN2wtJvQkUEWw96rLKize/zXbSPasU3YddXJw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Fri, Jul 21, 2023, Paolo Bonzini wrote: > On 7/19/23 01:44, Sean Christopherson wrote: > > +static bool range_has_attrs(struct kvm *kvm, gfn_t start, gfn_t end, > > + unsigned long attrs) > > +{ > > + XA_STATE(xas, &kvm->mem_attr_array, start); > > + unsigned long index; > > + bool has_attrs; > > + void *entry; > > + > > + rcu_read_lock(); > > + > > + if (!attrs) { > > + has_attrs = !xas_find(&xas, end); > > + goto out; > > + } > > + > > + has_attrs = true; > > + for (index = start; index < end; index++) { > > + do { > > + entry = xas_next(&xas); > > + } while (xas_retry(&xas, entry)); > > + > > + if (xas.xa_index != index || xa_to_value(entry) != attrs) { > > + has_attrs = false; > > + break; > > + } > > + } > > + > > +out: > > + rcu_read_unlock(); > > + return has_attrs; > > +} > > + > > Can you move this function to virt/kvm/kvm_main.c? Ah, yeah, that's a good idea.