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 A51F1C369A2 for ; Tue, 8 Apr 2025 16:58:29 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DCBBB6B0031; Tue, 8 Apr 2025 12:58:27 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D7A1C6B0032; Tue, 8 Apr 2025 12:58:27 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C40FB6B0082; Tue, 8 Apr 2025 12:58:27 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id A764C6B0031 for ; Tue, 8 Apr 2025 12:58:27 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 7B7AA1CCE83 for ; Tue, 8 Apr 2025 16:58:28 +0000 (UTC) X-FDA: 83311485096.01.8971FDB Received: from mail-pj1-f74.google.com (mail-pj1-f74.google.com [209.85.216.74]) by imf13.hostedemail.com (Postfix) with ESMTP id B5D2A20014 for ; Tue, 8 Apr 2025 16:58:26 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=3iDLk1Ra; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf13.hostedemail.com: domain of 3sVX1ZwsKCHgWYganhaupjcckkcha.Ykihejqt-iigrWYg.knc@flex--ackerleytng.bounces.google.com designates 209.85.216.74 as permitted sender) smtp.mailfrom=3sVX1ZwsKCHgWYganhaupjcckkcha.Ykihejqt-iigrWYg.knc@flex--ackerleytng.bounces.google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744131506; 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=4/cspsRoH7mgvJKsLmS0oN+FfcvZOZE3BpLLUKAvOl4=; b=NTVVpA2ABULGo3CLfrYQKRCmFqYBpj68K+Alwi18kyDAyPjBbX2yj2IEbArNWB15dZoBuD Pol0dBSQOJE9PG7G26Fw0L/VX0Wgjpw5QcOkH1HTVAndJqeuRl16GpoiwBvmewdS095mkV EwfayqHb+VmyMzwwaCu6amtAE6Qo5HY= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=3iDLk1Ra; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf13.hostedemail.com: domain of 3sVX1ZwsKCHgWYganhaupjcckkcha.Ykihejqt-iigrWYg.knc@flex--ackerleytng.bounces.google.com designates 209.85.216.74 as permitted sender) smtp.mailfrom=3sVX1ZwsKCHgWYganhaupjcckkcha.Ykihejqt-iigrWYg.knc@flex--ackerleytng.bounces.google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744131506; a=rsa-sha256; cv=none; b=Mh7b0tDIlm3y/VbMWhxHnkts1pWPiuzoStEvXaKusnwXRolkiqSaR6ZKdWM8KwU/RbNGfh 310BEwQzXWdTrrxs62j/TS6lQ9VgMBdVBuHr4arE9xoTR4QTCkMMDZxvkYDwgbi8uVdMkl e8jtsPFX7rc0R56JMVlC5tfqUldLqVg= Received: by mail-pj1-f74.google.com with SMTP id 98e67ed59e1d1-306b51e31c7so2714062a91.1 for ; Tue, 08 Apr 2025 09:58:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1744131505; x=1744736305; darn=kvack.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=4/cspsRoH7mgvJKsLmS0oN+FfcvZOZE3BpLLUKAvOl4=; b=3iDLk1RaAhCKFRzDioAImlxC9i64gvVfZgS5e7w0V1JpBRoZLbIipLpqQGjTDpg0L8 Bf30JTOVegwTKiYe4AxpACrlJwXLQOH9dVgfFvF8RSFrNb87vi+3kdy4HSPo2aw1eovP 4Fkveewqq5CG6G4jxU4/zXX6k198s7uXyQavSWMdsHBNH+OXTl6tJqUT0ysDak0KCUW+ azWkqeVxSbDnMErqO77HAZrbyFbwCpWyTFEFXpqaEyPRizAsj73oNThUA24W27M69fGb hOumQ5O9Lcde0mYXsFlq68DIRRBoy72/yi57t9r2Tm4JgHoybuGwD04IyhwGneOBdGKp 52JQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744131505; x=1744736305; 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=4/cspsRoH7mgvJKsLmS0oN+FfcvZOZE3BpLLUKAvOl4=; b=wFsmgO1f6yJ4dS2PVBtCHVEqZrVM3fFEO08jNMcPpxwOAgxALniSze3nLs/nnZ04NG nPvqUtKI/VPGZ190go5BXmeFYXbFpNGh4Yofqb5N6DsvPbIG9bf9Sm2Dw3UzbmYqJxGS QqLLG27+a2Vz3ay+UxtK1S/Hi2cuHQNfHIVjn8Pv7Rm40eWyQ5kij1heWldJ7WmPZzP8 QzTi9RdiiT+Ym/A2tKcQJn1nHLItYPLJCc10KQPKss7JkTe66oVtTFRmYNKwmAC0C/rp Ti+SAQmVCZoBh2CNhXHaYAyh68yO+SfwteKmrl7X4tbEkzROOFeZ4uhIV3JBlSch3cHN ewrA== X-Forwarded-Encrypted: i=1; AJvYcCVBYIuxCCY5KpJonN4sW45mVcg5PB3W+heT0UXHKrh8JfcT7ZRXRWgZZGi5RhXJO15jlHBJL8k43w==@kvack.org X-Gm-Message-State: AOJu0YyhykT1dfGqEiywomjHDywHivsf76GjPoLE+Jl/qYDsHeRcYJhb Y/F4wZmmQVs9CgowMHBm8LPAeU1SP77jJbK9TOV/z3LvwvNe8M502DTYo4xnBWvNOSg98uuijCK nwe6CJCWdsRSvp9RWhy+ArA== X-Google-Smtp-Source: AGHT+IHhG5hSB3aOnKu/HHrAmMFRLsHAG6Yf/NLT6GaoqAr+8hqPxs0sYHiqY17BjjeR0rXHNDk0o7C4Y+BsIOeodw== X-Received: from pjbse3.prod.google.com ([2002:a17:90b:5183:b0:2ee:3128:390f]) (user=ackerleytng job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:51cb:b0:2fe:861b:1ae3 with SMTP id 98e67ed59e1d1-306af7178cemr18710322a91.8.1744131505344; Tue, 08 Apr 2025 09:58:25 -0700 (PDT) Date: Tue, 08 Apr 2025 09:58:23 -0700 In-Reply-To: Mime-Version: 1.0 References: <20250318161823.4005529-1-tabba@google.com> <20250318161823.4005529-4-tabba@google.com> Message-ID: Subject: Re: [PATCH v7 3/9] KVM: guest_memfd: Allow host to map guest_memfd() pages From: Ackerley Tng To: Shivank Garg , Fuad Tabba , kvm@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-mm@kvack.org Cc: pbonzini@redhat.com, chenhuacai@kernel.org, mpe@ellerman.id.au, anup@brainfault.org, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, seanjc@google.com, viro@zeniv.linux.org.uk, brauner@kernel.org, willy@infradead.org, akpm@linux-foundation.org, xiaoyao.li@intel.com, yilun.xu@intel.com, chao.p.peng@linux.intel.com, jarkko@kernel.org, amoorthy@google.com, dmatlack@google.com, isaku.yamahata@intel.com, mic@digikod.net, vbabka@suse.cz, vannapurve@google.com, mail@maciej.szmigiero.name, david@redhat.com, michael.roth@amd.com, wei.w.wang@intel.com, liam.merwick@oracle.com, isaku.yamahata@gmail.com, kirill.shutemov@linux.intel.com, suzuki.poulose@arm.com, steven.price@arm.com, quic_eberman@quicinc.com, quic_mnalajal@quicinc.com, quic_tsoni@quicinc.com, quic_svaddagi@quicinc.com, quic_cvanscha@quicinc.com, quic_pderrin@quicinc.com, quic_pheragu@quicinc.com, catalin.marinas@arm.com, james.morse@arm.com, yuzenghui@huawei.com, oliver.upton@linux.dev, maz@kernel.org, will@kernel.org, qperret@google.com, keirf@google.com, roypat@amazon.co.uk, shuah@kernel.org, hch@infradead.org, jgg@nvidia.com, rientjes@google.com, jhubbard@nvidia.com, fvdl@google.com, hughd@google.com, jthoughton@google.com, peterx@redhat.com Content-Type: text/plain; charset="UTF-8" X-Rspamd-Server: rspam01 X-Stat-Signature: eayc5sptspdiydey33hn6aiaipwick9d X-Rspam-User: X-Rspamd-Queue-Id: B5D2A20014 X-HE-Tag: 1744131506-531923 X-HE-Meta: U2FsdGVkX1/FuF1Gniz/dtXfDqKKhkxwV6ELM1jGP/NwIeCt6XvNEV9DOC46EMkR2Bbq99QyVSgVplRlUd+7tIDttAx/APMt7uROd/3SYMkPnU+/xCnFa6Q7tM5IUn6tj1ndlVXb50StHaXu0cqz7VDoBvb6Kp2AZPMFShZ/dOz1Nw++U3jDFipD+LCj5SSDUxjf3md9O9gxoGE53UkHONP0jA90QU/zWjOS5bfuWNCDsWBopVFAAn28FzbDdvLVFtbyGmwmwOWf57DT5h+DqTvMrSKlCXzaaomlYyeBRtIR7n3RPMOc3hjnO7A6CD1EJK3sXJVBuGa4hvXH0euDUaIeMHRzL8bep7KRrhUnE3BA8tADxBYzEW+IX/J5kUkKmLwgYnbz1DTkASgXG5FeL6Dw5N+G9yZGvsICuj/1KPmR3nifDm0iMOJ0QhowdPVJxtkTM9o8RzsHS/qThbk7Kk9BzVFRynGjrIKUqt2EfgtjCNaIjG6/4Vd6E0vyTMGQeICBBtMnLuA+c9m968XmoD79K4kRtoucY1XNTZIAY/nEzp8wZpjIKc31y9A/qtenf+S8UQlthdaugc1V3P+rqh0Pv39XYoZa+/tpk0qpmlH/BRbJQbVUhaezG3MgohXQagytu4H6/9yX12ioW7sm85ZtE1kwmdxessT3mSwtMPBYXGAhLq0Ugsbgp23DU9L/NeJBsOg9YdDA7nmqJIGg9jrhM/5N2oU6BfDgejde3gvWKD2tcI7El7wahjgugS2nElybizti/ue8CkQbDvaLcU9ZYXfRKS+rjyOYU2v6UhhseDXqRBppLTX1jFwSw4sJMz6gaHOMUrdodcAofVVN0q5j8bJ73CC1k4cV9C0iOzjGXyptFfPqfXzPGbTrxUwSD6iBEZM59EG1NcES6W2nfzhlh9S+OpKZ7LUIfuV1jmEblQm6dkOIVBOwlS76c7OXApkzqwpsnqxMTVt2Dle 5fTDth9K bsmTRP5LQYBeR1fU2PaadCB1zURCDyVZEi3k2w8Yy6t0G1K8Klqvf9GVM2Wn6FMkB9GkETlUQDrWhTbORIXUTcXfxyPvDNlvuGPVcWPcOF4J4rCfozf7RDcNJIkd9OXnhJwvWtnxjwOJjzyTnTCCn/ThUZjCMl3kSzHe7YdIz9P2/vdLPl3/u0vdGG0G5dp8fOhb7ztAhOg4UtFl0bpPhRFsAk3JSJ36san3FMmp9WEZt7/OEOkwF+ngcBHWkkt3Kjwent7Vx7xtq7VXDonwX0C0c8UMjPjf7cTn6yx1feAZKirUpbFCnhsDYfWcuSPsCVdcJJaziNXcpWnC8E7JRclALLWofrVJeNxGxWa8MgFFnicWynaEiXPOh3re93gtR1h9xpxf/AMHzO/jdQipSrhbDaFm/0ERRa+UW8V2QXrLl7hY2yyCv2RW31Vpk9QZbxOHqi+x7RjefQtyEQ4305SUmf/JPOYIhxe0dDSuojDf7VZlH5GpBFgeN6pBllCat4sSqHeWj+7Rds0nF6rVxhzrHG5Ims9YolrdeUv9Q30ZgYoyPTU4jnalyA+ag3uFm/jZmFfh6mYPlJTEBx453upVL/aMUF1vlnAvoWsQ2ag5QZnhV0x1RiqZF85lAGSOAykpSUxxlnGOQwerQUWPG5+F7Fu3uXgRoF2gh3Ez8jujziwagzpfW8Blqmu0fjLsp5mG98tMnY5LCvSU= 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: List-Subscribe: List-Unsubscribe: Shivank Garg writes: > Hi Fuad, > > On 3/18/2025 9:48 PM, Fuad Tabba wrote: >> Add support for mmap() and fault() for guest_memfd backed memory >> in the host for VMs that support in-place conversion between >> shared and private. To that end, this patch adds the ability to >> check whether the VM type supports in-place conversion, and only >> allows mapping its memory if that's the case. >> >> Also add the KVM capability KVM_CAP_GMEM_SHARED_MEM, which >> indicates that the VM supports shared memory in guest_memfd, or >> that the host can create VMs that support shared memory. >> Supporting shared memory implies that memory can be mapped when >> shared with the host. >> >> This is controlled by the KVM_GMEM_SHARED_MEM configuration >> option. >> >> Signed-off-by: Fuad Tabba > > ... > ... >> + >> +static int kvm_gmem_mmap(struct file *file, struct vm_area_struct *vma) >> +{ >> + struct kvm_gmem *gmem = file->private_data; >> + >> + if (!kvm_arch_gmem_supports_shared_mem(gmem->kvm)) >> + return -ENODEV; >> + >> + if ((vma->vm_flags & (VM_SHARED | VM_MAYSHARE)) != >> + (VM_SHARED | VM_MAYSHARE)) { >> + return -EINVAL; >> + } >> + >> + file_accessed(file); > > As it is not directly visible to userspace, do we need to update the > file's access time via file_accessed()? > Could you explain a little more about this being directly visible to userspace? IIUC generic_fillattr(), which guest_memfd uses, will fill stat->atime from the inode's atime. file_accessed() will update atime and so this should be userspace accessible. (Unless I missed something along the way that blocks the update) >> + vm_flags_set(vma, VM_DONTDUMP); >> + vma->vm_ops = &kvm_gmem_vm_ops; >> + >> + return 0; >> +} >> +#else >> +#define kvm_gmem_mmap NULL >> +#endif /* CONFIG_KVM_GMEM_SHARED_MEM */ >> + >> static struct file_operations kvm_gmem_fops = { >> + .mmap = kvm_gmem_mmap, >> .open = generic_file_open, >> .release = kvm_gmem_release, >> .fallocate = kvm_gmem_fallocate, > > Thanks, > Shivank