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 150D2C001B0 for ; Wed, 19 Jul 2023 17:22:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 89DF4280078; Wed, 19 Jul 2023 13:22:10 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8276428004C; Wed, 19 Jul 2023 13:22:10 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6A0FB280078; Wed, 19 Jul 2023 13:22:10 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 56B3528004C for ; Wed, 19 Jul 2023 13:22:10 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 1A5AE1C8CF5 for ; Wed, 19 Jul 2023 17:22:10 +0000 (UTC) X-FDA: 81029029620.01.DBCCE2A Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) by imf18.hostedemail.com (Postfix) with ESMTP id 3831F1C0017 for ; Wed, 19 Jul 2023 17:22:07 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=yA9Vox81; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf18.hostedemail.com: domain of vannapurve@google.com designates 209.85.218.42 as permitted sender) smtp.mailfrom=vannapurve@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1689787328; a=rsa-sha256; cv=none; b=Yfj7IvUXMwXPjovYj76UjOPR4+ZdgTZ2BrZ9lK8GO1vmIsDAzROiNQJ9B+aOv9ZknA0eHk 5EVTTmovJj0u1L0M0lbnMUlVxxFejIOX+qQKOM8bHdu5Rlk/AkW2DyLJReyHF3Zj+pGjIj nExVQ1Uhc+Q8TQOTEvdzvQOE/SJAOhI= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=yA9Vox81; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf18.hostedemail.com: domain of vannapurve@google.com designates 209.85.218.42 as permitted sender) smtp.mailfrom=vannapurve@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1689787328; 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=muf27eIntjXr3Sa3gdcQLPN4y9AYfVWt2TffDnLSMcw=; b=WhGcL4d1pHTg8hXmU9Zb+bTbwgpp6VjU00YCQMNkQyRKrtsgziuyzdo2r892nTOOUqWGTW KzCxIebSxmvGDb7RNdryGdwy1q7UVgv0Epjt3bd4U1njZrsdDPGT+T0bRggi45BRtAaBG/ B/G8BNkc/1BPRuCulpe6BQgeCAhstUQ= Received: by mail-ej1-f42.google.com with SMTP id a640c23a62f3a-98e39784a85so225953566b.1 for ; Wed, 19 Jul 2023 10:22:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1689787326; x=1692379326; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=muf27eIntjXr3Sa3gdcQLPN4y9AYfVWt2TffDnLSMcw=; b=yA9Vox816zD+aJ/FVd+gHS1eUUrpLebV0UPRWoTOQXRhwbDjiEzKfZKLt7ZPO+mtvH SaibLGPqQv8DRVnknibkmwFWbPPfcXmr6c+ujgDGBFuCW/F/BitDoK4IVXsvCkVTbM2a UUXFrIHyb9EtmF0G0jSo223YyW0H9eb4QyBBeSzBXy3UqItMc2tyGgaUGUFrdupt+8A5 dLZgmELLzzoUW2SKSL+4MBdgHsq0BaZC4v7p3QuLBtrY+JwzHEa0w4RaSfJgn6bTpTvs oKq8cg7sWg40yA0HzTTcfPzlRvV46kkywbP49vwd3eHSPLgVvqkoTlu6Tp2eaYz6GzrZ sQlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689787326; x=1692379326; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=muf27eIntjXr3Sa3gdcQLPN4y9AYfVWt2TffDnLSMcw=; b=DCya7KLUkBpAwcG2KFtvzisHm4I2aSu/vAuM0jirPUrdMWk9FliC+Y/a9ThE0JwXBL XQutqCz4KxDhN57qJhCHFnphdf6ix1Auo+NWPaJCP5QBhIWcYo7o9BrpnP4xQsG02Nxs CAC4NIkfZzygPzOo4TpfXavx6p2hs4fhdNO5nP5uHI6ac7ZRoiKbKWb03P3oUFk01e3D zvGKOrXuBE6gO/CCV4ofh4zYG4pRzbGFVUQ8W4AbFZ1ec3cw1yspAHt6tA3AbP/iBUXy 28W0zrUZfrIR1VNt+m+mLCtSM5EGa9ZOn2B+tZ7BPzyS1BUhc4wb8UlrmCgAyvzJQxxI ijNQ== X-Gm-Message-State: ABy/qLZEB4Uv+eNRUnrPS/ySojgapO2FK4R1BqPQCFcZMGwtBV2fKjTd z6EBuw0WIowtedeNbl6hs5cW538AObafbp/IxTbfew== X-Google-Smtp-Source: APBJJlHLONYvTW7m5Fbx16RlTb/fOqinzIvyTzihLXJQXLhrTmtvBuSogp90ZclD7PbARqJZdKXYR/WVY9tuMb+Y5tE= X-Received: by 2002:a17:906:292:b0:97e:17cc:cc95 with SMTP id 18-20020a170906029200b0097e17cccc95mr3045374ejf.36.1689787326540; Wed, 19 Jul 2023 10:22:06 -0700 (PDT) MIME-Version: 1.0 References: <20230718234512.1690985-1-seanjc@google.com> <20230718234512.1690985-13-seanjc@google.com> In-Reply-To: <20230718234512.1690985-13-seanjc@google.com> From: Vishal Annapurve Date: Wed, 19 Jul 2023 10:21:55 -0700 Message-ID: Subject: Re: [RFC PATCH v11 12/29] KVM: Add KVM_CREATE_GUEST_MEMFD ioctl() for guest-specific backing memory To: Sean Christopherson 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-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 3831F1C0017 X-Stat-Signature: biy8n8bweus9uhttejf5e9cydtjq143h X-HE-Tag: 1689787327-468151 X-HE-Meta: U2FsdGVkX1993mbRVNqTBPBRx7jn5g/yUz7xHI4497+R2Umzu0i/3pAg47SwxWl2DyVvEe9JPOujjG0cJ3iM16m4qnATXlhhCi16rmDC6k+lJYPYk7ppytmD12WP/g5D/qsZN0thZW7WOFTKlyH0+nWj+oSi/78myPuK20+WQrDeYeRkaJoIC7P60zqGlgDL+a0YW6Vug5SxPvChOmjjQkTetsrGplkcs7kPcnRa8EDgKZWZCEZx+bgigjpuuxkAFm9phdByRfqy0dE+owZSWj/b6xoH/RJYPOe+34yDihzlW/6ilmNrSl+WFw9oO7eYFnlPPGa0kBJnzjdw47U34prrFhrqWgj7li99y2hfYfnb4sbT8OBjOjHoKYVEle+hI5kPvnLpLj/VDYI5DJHmeAhrH6GqJ4Bo2KJyO/QmJieYNeA5G24upK7hFsxhKNruveakyfJG1mw9wKAgh6GLga18j/LL70EKxRmS7kmj3zmFtm7gDP+IWQAsFGmtOmD/If4cGZtZLevywR0QmFM3EC2rWlK/XiIOF7TOuVX5fVKLlX1JYDu0s6beBdzOZoL9aLaR2rzKfTB8iUflYeTsWdF3bC6fuTtzfWVnWNROwRpE4I9Z9G1gQcTsqaiFY5sYh3HTuDzp8PbhBwqwXlvvsuuBYqPA26LWZmLd1Roa6CSfS0o0t0dwKqwR0uzLSm+Phx+6DdqDUwoZqpJD/jMCUfVxktvuBWOnapNs4zaBI/0S+t3KOzb2YVqLCcs8GNfB8Wh+HbIrCmLY5lvnx/8N+vTVpsSgWy0JnJqL/uHiaS16CfwM+T8a2I8Q7nKTtNN2GekmK0OSY2+rVnKClGiPAzvBygeWvLrHYyUJYqvqSNkKREJHd/1dIImz+dgYkzCzfxRejsFl1cT1kWJDVXYFdd4dapyh5nE9zegOGkVzPMTUSOsVKYE3gCNqR6Snl+sw7lTd1zYWSFW8RyV2Y+J c9gB30+u VzZn78TW0DiA4tXd1DSxg/UPfqwnWaLmyPggT3y4WoTGRoR8nEhu/UbT4Yc/pqEalFAz8bHpYIzB1XOAumtEolJdV9mOdZ4lBkBAyDDcI9vlAPf1SAVEuLRroKlrqGtG35lV5Ots0ad0jsy5M+Pgfc8yPa3dIsW9usM1DdMzsizJI/qx3t8QzbLODyYrRfOXwlFP3J88wBicSgBiezi3RPYahAYhy/pye4O61DjpJ/W/l2O/TOI64v1M+UN5Jctlg5GxKTxYbJ5nK17EEgr9nToc1lZlGUWfrKauCKk7VZVv7UmeOYtf2GB3LoiY0Kdv9Z6UwecaL0gfhYjVeN/VooMTx/TTiH61z9UJ5A/O+e152Utg= 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 Tue, Jul 18, 2023 at 4:49=E2=80=AFPM Sean Christopherson wrote: > ... > +static int kvm_gmem_error_page(struct address_space *mapping, struct pag= e *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, en= d - 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 *privat= e* > + * memory encountered an error. > + */ > + send_sig_mceerr(BUS_MCEERR_AR, > + (void __user *)gfn_to_hva= _memslot(slot, gfn), > + PAGE_SHIFT, current); 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. IIUC, such MCEs could be asynchronous and "current" might not always be the intended recipient of this signal. > + } > + } > + } > + > + filemap_invalidate_unlock_shared(mapping); > + > + return 0; > +} > +