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 EDF11C001B0 for ; Wed, 19 Jul 2023 17:47:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6234028007B; Wed, 19 Jul 2023 13:47:47 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5D2DD28004C; Wed, 19 Jul 2023 13:47:47 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 49AC628007B; Wed, 19 Jul 2023 13:47:47 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 39C9928004C for ; Wed, 19 Jul 2023 13:47:47 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 12F7C803F9 for ; Wed, 19 Jul 2023 17:47:47 +0000 (UTC) X-FDA: 81029094174.04.8A9AAE2 Received: from mail-yw1-f202.google.com (mail-yw1-f202.google.com [209.85.128.202]) by imf07.hostedemail.com (Postfix) with ESMTP id 24EFD40018 for ; Wed, 19 Jul 2023 17:47:44 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=ArpFLxX4; spf=pass (imf07.hostedemail.com: domain of 3vyG4ZAYKCBA8uq3zsw44w1u.s421y3AD-220Bqs0.47w@flex--seanjc.bounces.google.com designates 209.85.128.202 as permitted sender) smtp.mailfrom=3vyG4ZAYKCBA8uq3zsw44w1u.s421y3AD-220Bqs0.47w@flex--seanjc.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1689788865; a=rsa-sha256; cv=none; b=Bb09bJz/ekN8a+1CV7F3Y9+bdBDocc1GtadBNAY0JUECoZjbXfviUzF4ediLL3RXGQ3HVO KZbpR0P8TPSCM9hMbF4JRAoSUNi6za7VG/FOZy5jDKL664tymbKPqSLNkNmblhBh94iAvr dlDasP0fNMoP47TCcjS0kENYDH6EAWk= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=ArpFLxX4; spf=pass (imf07.hostedemail.com: domain of 3vyG4ZAYKCBA8uq3zsw44w1u.s421y3AD-220Bqs0.47w@flex--seanjc.bounces.google.com designates 209.85.128.202 as permitted sender) smtp.mailfrom=3vyG4ZAYKCBA8uq3zsw44w1u.s421y3AD-220Bqs0.47w@flex--seanjc.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1689788865; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=ZrpSlfvy8CWa29HQgq0qreuIOXt/Wldn9lf0s+IQ19g=; b=yNbFyB9hyhxx37WVm6h0NRMd0NWLWGdw8bqI2J+YiX2PaSWnMZOHsDkhjgwV33x8/VKhWK C7EG57Ogr+q/7fXv0vE9Ky7WTFAVW4uRybbsFk6uy+46Aajr0fT9lb7FgZ0Rl7mcm6HWyd UClZHeh2dSMvnjBN+T4pYc9WGoAV2so= Received: by mail-yw1-f202.google.com with SMTP id 00721157ae682-577323ba3d5so16595017b3.0 for ; Wed, 19 Jul 2023 10:47:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1689788864; x=1692380864; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:from:to:cc:subject:date:message-id :reply-to; bh=ZrpSlfvy8CWa29HQgq0qreuIOXt/Wldn9lf0s+IQ19g=; b=ArpFLxX4pd+nE6yhxk4kfQsyY2cBj0283wyB2UFD4pQNpbkrc+ZAbqxw+z+OgClanI 8Bmj2Z7j2c1NhNgCvBdv83cjgOHHCOOMDHYftHtZeAL3vo412/Xbeep/S+CdApdBGNVE aduoGH7mk12lxFjmYh58eVW/1Ksc0OT9NLaSC1w5eMBSYs+0sTNoL7N0w3aZ0n2P+aH0 VnFxLOrHPJ9r2ezOXOfj0cBYblwBN0Ye2w9Cgtba6HWxXo2yyLAo7PNbRfr5GAzKlZhF ic8thdmStV5nJQreXCY0jlMVC8WTwDKkeNH3l7/QHaf5X+Z1Dsac59JBXIEJlOoDRy4l I3Eg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689788864; x=1692380864; h=content-transfer-encoding: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=ZrpSlfvy8CWa29HQgq0qreuIOXt/Wldn9lf0s+IQ19g=; b=C3DkTJlJz2pMlsSmAYEVwYJG2Gt8juDISGSLV7Fagr3E38r0ekUvNexCr3McK4ntrJ B53yC59HCPi8opNFXv2vF228glEZxWhM/2O9bZ2bVxge4wnho63W6DQrG422x3ncTpSH /GmTvxE+WjYuzUX2sitvHHT+4lJKwZtvFxBWvTDPOHCRskNXt5Gx+xBuJtei5RPwj4bD 8mCkajed6jAm9FjwsHOSEq2vcIruh26pNVDVRCyqchMeOIBHYrCF1V6KbvJ1YQgGCAb/ 8tNjm9dN0DGhsXGggzq7lX1G3DMv8x6zwxFSci3l/19I1eq5j6i3/IrC9CFLscC3cB8N 65AA== X-Gm-Message-State: ABy/qLYYzBSPQ27DBDLoIOgwVIRpdYaUSicXAfFVYDnRXoGtqZdQctC5 2D+Hq4xPnOPG+am8q5Cslo0x2twAbUI= X-Google-Smtp-Source: APBJJlFlYUVvIIObTojpJ8UchQ4CwQtQGAVrCh++KpJ7LgJpdZRIA9xQwbGLQUVWTMKWnIrBZUJv99cvfhs= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a25:f509:0:b0:ca3:3341:6315 with SMTP id a9-20020a25f509000000b00ca333416315mr42238ybe.0.1689788863726; Wed, 19 Jul 2023 10:47:43 -0700 (PDT) Date: Wed, 19 Jul 2023 10:47:41 -0700 In-Reply-To: Mime-Version: 1.0 References: <20230718234512.1690985-1-seanjc@google.com> <20230718234512.1690985-13-seanjc@google.com> Message-ID: Subject: Re: [RFC PATCH v11 12/29] KVM: Add KVM_CREATE_GUEST_MEMFD ioctl() for guest-specific backing memory From: Sean Christopherson To: Vishal Annapurve Cc: Paolo Bonzini , 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 , 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="utf-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 24EFD40018 X-Stat-Signature: 4ycbipqjcxf3d7dk43cewbj5wczem6ii X-Rspam-User: X-HE-Tag: 1689788864-440929 X-HE-Meta: U2FsdGVkX19C6Z0/2und/g0a2TmFKv/MicIm00+Qgj8L8A32sH5Ds/T9HYg4QPASoKlCWP0tDcILAPqPhFW9eJSbPVzAZt79+U6xYA3E/FI4U8wjqjRZAnsszoGw3lEqbmlV+MqcqNbOM2/jz/8m3A7JUlwsNLF0YRsCOcuFztJtZF0oWb4UWU3Avz9nSEs0vTWHZjAwx/26yj/0g5c4aYXgathECA5n3pZIRxU+0y9Pe3mo+HAjJ7eCffEGWGS+6nBbVxf5isX3cmvRcGZYdv9KoeQ1YKt+Fg7d2buYOYS2YoEGO3dCuhPERoNzuoGrzwTk+GFLjt+2nqULq/zrFUsk22HaPQSKGn9z9OtVQkzUXbB45jb/WB5AaAjEbdWOmkwTx2zm6uFd+HUYgiMaazzhC6coO/pIts9fgis1ND1APTS+R34FbVSovczc+Pra53Hz70zgssKMGtxMv4GCbIk5aOLDGYJ9ohBnsKv+OgmLKfWvSVBkunQ6tzWLFLNr/9A9pW7r2USfZhFVeYmiHPgSpswAlY1uo5jIFB+OoGQGvob3EZV9C9L0jbhcDmUQgvOu5eHaIbuodThZOlsMYmZbgtsU+V0hqw0ZtHaClngf77J6smrwAt4mUaGbZf24gcmsXvCbS7JVZuRxoboyQCCEMGGydbtZLOFOJECjuMhe5OBWB/3Wl6MbLMN/ciFgIlpW+/zmXiiooJkKsXbJ/E/npMxm9vFHkQWYL4T4RbcR6gWg5PWZmtPEFjL8l1umYqs6+Rp8wqoR8lLe2rdu3zTKU3o8DuGiVG4Yp3TX9MP6PtWvuxYhI/lW3w+r6NhBaYtculQpbGLstm7KkMbTMVNRXSap+GGnJ4pyRSfK1fMpTVB0/6/0fLaA4b8Lr5/7UDClzkdT9og1t6BE9nakc0QjjhqGSi+pVoDZTnCfzlqabqDVJwOO8kMSIJd1XdPBZ07x8vA5+oN4kYdGT9g b4JpN4WU Lu0/upLhwVC68x6lvz22V8BaX7aOzvLMoIB3Nji9tVAVTdc5cGVTs+BKijWkVQ6dPNuAN29pQFYvPVfAbtjZFOrNT1U8YbGg6bNg1GzJTZIV+KGScxFxWxJgJV8g8QHUwMga8Xs0N/b+mw3Q3+Pi68uWZLbovsVOWTSTZNW7tvOBzLeuIrIfbnYs50kX2zMYhaHgR7Djcy+yqqJHqjzKwX5mo0NBunayi/qyCpa8u6cWdV/EIflzJnSkBzF3gdxZ3j4908qrjXetcXNWLJoMp0wr7KuP1QG3tyO4NzVCGWiM9QYxPi3SfqOMOxgGjKu8xUZigCZayhXTm4z6whrXHcrzpK+Hqms7FkRfe0z13Fz+NigF11oF21kV42lALoRCS5Q8KrD6huDRBIg69Hr4X8hm3R7hwsuu3ZEiSNluYOxEMNdxvl1YGVi+OJIysbZEY/Nzpc3dJPRfEgJLe1OSDW+Vh1hGUCs03TWUW1aTXJnjLuTpoM4Dn6GBrTbGwdW97MbRa5vKIIlaDnuFzzQrCNEpZBqr0mGgl0XFc5FKtEvyUut9jqtGAwG+i2t64G3rRUocnOwlMTEn535M/nUdAZMrD64tPBVtlu6IS8TmURRQN1ZVc4Tbw9q4zlnfneX/hQ/rCZzAcx2zMx9DoFbc1DcBcMms4NMYTMlXgeFFq6ElK1qP7EqJ+QzInW1lBM+b2JhprMOqU1tM9bkhc+/lCU1JIqySC/3LZKr2/ 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 Wed, Jul 19, 2023, Vishal Annapurve wrote: > On Tue, Jul 18, 2023 at 4:49=E2=80=AFPM Sean Christopherson wrote: > > ... > > +static int kvm_gmem_error_page(struct address_space *mapping, struct p= age *page) > > +{ > > + struct list_head *gmem_list =3D &mapping->private_list; > > + struct kvm_memory_slot *slot; > > + struct kvm_gmem *gmem; > > + unsigned long index; > > + pgoff_t start, end; > > + gfn_t gfn; > > + > > + filemap_invalidate_lock_shared(mapping); > > + > > + start =3D page->index; > > + end =3D start + thp_nr_pages(page); > > + > > + list_for_each_entry(gmem, gmem_list, entry) { > > + xa_for_each_range(&gmem->bindings, index, slot, start, = end - 1) { > > + for (gfn =3D start; gfn < end; gfn++) { > > + if (WARN_ON_ONCE(gfn < slot->base_gfn |= | > > + gfn >=3D slot->base_gfn= + slot->npages)) > > + continue; > > + > > + /* > > + * FIXME: Tell userspace that the *priv= ate* > > + * memory encountered an error. > > + */ > > + send_sig_mceerr(BUS_MCEERR_AR, > > + (void __user *)gfn_to_h= va_memslot(slot, gfn), > > + PAGE_SHIFT, current); >=20 > Does it make sense to replicate what happens with MCE handling on > tmpfs backed guest memory: > 1) Unmap gpa from guest > 2) On the next guest EPT fault, exit to userspace to handle/log the > mce error for the gpa. Hmm, yes, that would be much better. Ah, and kvm_gmem_get_pfn() needs to c= heck folio_test_hwpoison() and potentially PageHWPoison(). E.g. if the folio is= huge, KVM needs to restrict the mapping to order-0 (target page isn't poisoned), = or return KVM_PFN_ERR_HWPOISON (taget page IS poisoned). Alternatively, KVM could punch a hole in kvm_gmem_error_page(), but I don't= think we want to do that because that would prevent forwarding the #MC to the gue= st.