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 8F13AC4167B for ; Mon, 6 Nov 2023 15:43:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E50678D0022; Mon, 6 Nov 2023 10:43:25 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id DD94C8D0002; Mon, 6 Nov 2023 10:43:25 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CA1CA8D0022; Mon, 6 Nov 2023 10:43:25 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id BCF7C8D0002 for ; Mon, 6 Nov 2023 10:43:25 -0500 (EST) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 8B6561CB231 for ; Mon, 6 Nov 2023 15:43:25 +0000 (UTC) X-FDA: 81427948770.27.120BA6C Received: from mail-yw1-f201.google.com (mail-yw1-f201.google.com [209.85.128.201]) by imf10.hostedemail.com (Postfix) with ESMTP id D053AC0006 for ; Mon, 6 Nov 2023 15:43:23 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=ocPufi+U; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf10.hostedemail.com: domain of 3mglJZQYKCAMvhdqmfjrrjoh.frpolqx0-ppnydfn.ruj@flex--seanjc.bounces.google.com designates 209.85.128.201 as permitted sender) smtp.mailfrom=3mglJZQYKCAMvhdqmfjrrjoh.frpolqx0-ppnydfn.ruj@flex--seanjc.bounces.google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1699285403; a=rsa-sha256; cv=none; b=3g8mUJ4FZbrYIuSzSOvKDyIWDVRaum9z+NwghOwJc1NhPU5Ms98x3OThZIe3TVgtxftTHk Ie678ysh5gE7QvtW2qQyP0I5EYzDiph9V0XB32KDWiFuC3M3v8/W6yWejqKF4QPfGBqrdm yVr4CV5uhOM2LzaHFlUT871XFHT+Rd0= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=ocPufi+U; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf10.hostedemail.com: domain of 3mglJZQYKCAMvhdqmfjrrjoh.frpolqx0-ppnydfn.ruj@flex--seanjc.bounces.google.com designates 209.85.128.201 as permitted sender) smtp.mailfrom=3mglJZQYKCAMvhdqmfjrrjoh.frpolqx0-ppnydfn.ruj@flex--seanjc.bounces.google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1699285403; 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=ABS8rPoBy1ITQ62kUEvxWovIfmSWeQOAvNCpebOJLoI=; b=tWbAl1AGdd5hyqvlkQ8cz9b2FwYy704yZLg2Ig44ENbuagKoECrWA6e2lAgAU01fU0lZ0t wn6Q7sEfpIS20zeEB12XFCTbl3AxLOec5c9M2X011g5eWjz2HFglpT/tp37O4fA3YK550a 4/wJw51N56032C85g5B1/0PblSGucwU= Received: by mail-yw1-f201.google.com with SMTP id 00721157ae682-5a8d9dcdd2bso93832587b3.2 for ; Mon, 06 Nov 2023 07:43:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1699285403; x=1699890203; 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=ABS8rPoBy1ITQ62kUEvxWovIfmSWeQOAvNCpebOJLoI=; b=ocPufi+U6goifQI1VGMzWC8/fdNPoDXTg59UDkv8FkT+InZON/vowBbMkUh+K8YorD nEIPxgJMVp+EifHZ9ekA+9hPLfPbNlJ3nKBw5/H+EkmBEUt0bj125BW8AHmZnxei9K8v VEEppUGrSJEYqdTfBiT6LkGp+K/cAam34iUxlx3Pb43+6jvJT86pp2Ua/LMCLyNS55eZ XdBNO0gVbGaCjDwNWh8sCy5YCpVyumBA2zo6SqW7udnxiKf78hFLQWDRe6qiVynfL8Kk xxjZj5t3C3ohPbP3V9kwjCrW7qbYBYhfUIaqJ532S+5ZGF1K9B6Xn5fc0RMRuAW8fJK7 y6nQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699285403; x=1699890203; 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=ABS8rPoBy1ITQ62kUEvxWovIfmSWeQOAvNCpebOJLoI=; b=S+ziy08g92oZvvIN/LZu8s/zGHv9jY1E5XjcQmssMbygtNYiEAs7F9likZA/gfb4ne nzGS4w2+4GYy2OgQvv9N/q1OvagAmGbQY+9ZVbbwMX0+hsyTCPsYkKNVmi44hYYPs8F9 2wUfQUkWZ0RR5h95qZfSh+5kVoFBtzPJFNB107A1UT17fhsQtktL+rCRQHJP80fDiBA4 cvYBcVFHqgaaHhN77tGZMuszXXst9e7rnD8UrE8hFIY6goqtsuVZ1fNoaUgx+jQN9rl2 Uw1Vjd5XxVX36tqevNZjCyCRYx2bi1H+3Xm1hiXQ20v6MrfIw7NSd+rOrrnOtlPojm6U lAzQ== X-Gm-Message-State: AOJu0YwdPXQToQnm8ICQcbHFtzrZwFUjZ/VewoTnbsqFfsbDrNG6SFF6 FMvupcGuWuxYrodIdfhQNANWD0Pceyc= X-Google-Smtp-Source: AGHT+IFZU6oilNAmMp5GLulg+dwoZ1zspXQbywwTDejvG8kP1K7yDCwH0QkLRrw/RyNVPmFev9uMuH6PQSU= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a25:ce94:0:b0:da0:3bea:cdc7 with SMTP id x142-20020a25ce94000000b00da03beacdc7mr527390ybe.2.1699285402751; Mon, 06 Nov 2023 07:43:22 -0800 (PST) Date: Mon, 6 Nov 2023 07:43:07 -0800 In-Reply-To: Mime-Version: 1.0 References: <20231027182217.3615211-1-seanjc@google.com> <20231027182217.3615211-17-seanjc@google.com> Message-ID: Subject: Re: [PATCH v13 16/35] KVM: Add KVM_CREATE_GUEST_MEMFD ioctl() for guest-specific backing memory From: Sean Christopherson To: Xu Yilun Cc: Paolo Bonzini , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexander Viro , Christian Brauner , "Matthew Wilcox (Oracle)" , Andrew Morton , 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-kernel@vger.kernel.org, Xiaoyao Li , Xu Yilun , Chao Peng , Fuad Tabba , Jarkko Sakkinen , Anish Moorthy , David Matlack , Yu Zhang , Isaku Yamahata , "=?utf-8?Q?Micka=C3=ABl_Sala=C3=BCn?=" , Vlastimil Babka , Vishal Annapurve , Ackerley Tng , Maciej Szmigiero , David Hildenbrand , Quentin Perret , Michael Roth , Wang , Liam Merwick , Isaku Yamahata , "Kirill A . Shutemov" Content-Type: text/plain; charset="us-ascii" X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: D053AC0006 X-Stat-Signature: 9y7cwbfpraf5b7aa9mb7zg9b45oayjuj X-HE-Tag: 1699285403-797146 X-HE-Meta: U2FsdGVkX1/6OpHw74tR6XA/pwGY3SYf6wMDkN0MdejsF51o9b8wDGif64FVoU7xC8DbGvijkq7geiL2t6+cZLQp1tVnuuKjgfqeGBEODTNmqn7RCsya13p4dIp36hEWpb4dj0gh7O51YO9S6RWQFK6ZuFntPUUPTGdPXVhjDL0v1IUToII2tAC5S6ayLvIY+E3LJ7Q+Lm/cFq6VnZXcqxGRZqYcVMwQfnfB/mFbnkloYelcxa+MbEBD0YHESXobICsPA3XL9PbK+SXz0HEJtcm86Qcda1aFUJf94QjbKHucmRU+Y+fKHVz2hm6EiP/nW9xakOd5iCC+QBC0qJ0tlSxmQBwUtnwdkFnjl1KxJnvc1FHLwEUn0L7gXuXl1xY3JxC4IcOGE3bjPL2BUNjz5Di9RskwoqCPgKqXh1ftUeuge39+vy4G+eRfMDNM8kGmIlm0+boVl4+zV5uMmEHjQoukhyw3eGkS2RY4gAA+z71NWbbBoC+0t3eK/TT21rs7GBynx8syNjlJ6iwKDNgejycwgFfIfUpCey7z6zLLBbgCoDKxn/H6yXQi9D00quuREHGcDsKp1o+swHjeSlzZY/KCYvXDjTCwJnUHue7aUCpXqGbNirWsfoMSWQPDB7dtTl7qM9YuIKwk1teGkdfNZKwCwu9CHYY0u/NVgOqBpGgDwRqngZPE7Egt4ZRCV30JuPvZITCutHHPjcZ6gqIW3ms0oqa6d47ihL8w4LCSTU8zzc9jg3DdtzZQIkJGEmIblPcaXwU/lnQ4q09++1uKQViP4H+T5ZREQVtCdtJjy/WLUoi/rPW1ZWle/3mhwnvobl2xbjbSWL0fguNMy/Xm+3QoQUTcy7TvmJv1/PPTYKb4NE3+wwntF6DCGySNsWxItbu/hzT2NiiDb3ubNtJLQgM9Fhb/xlxbn9Ozpqa3/dXji5PFdskhce//82BJiEYeb80Aj/ef5yqg8Y6UWx4 elM+5Dx5 PzsXRcb9vwnc6wZ6OtMx0mo8eqnWkopFICWjBKhx8h4/mRbDWcaHz7qXg+DN9qZ6Wr/Ia9FwtDDzkKx+OBn4XTRnqfRw3PULYbaKcXWiIM/kraMHhSQwpeSlUvHxKjUADKj5xIn0/8OFT+BHaQOuqlje+B9YNTg/a8fUiIDpBD1HQVJkXPDfSBmTkCRjSgf+QZXGCAhBE/nygNlz4PB+jrB/lipKXeno9bPC5bI1/ymqKhYUxNFsGClcF1YopBxvARxeZn83E5uTpybpm8PRp4ecv9AliUw619wva03rZvXqEI/WnLUNUZO76UvECv9br3kwwgt0058mdIodm5zM/IZhfrQs0lsKSjaaSNXF5oDGYZAYnLirg1YvSF0C4F5W2b+PiAuYt+VOmF6XTX3KVZewizG3O95QAzy6wINpVusoAG9phTpYD6d+v3B8NLFM6aF73v6a6zOrGfQmdPmlsJZRBngAaaRPV/Pldgmn+SQxqsUXhXj2AbjBWlfPgyh9M3uakr/o7rL30ZKUAYc9TRvsXowdR1MqZVgoBE0xw6AonsWOccZCET9hZZq84Nu7XaU8ppuopoMK2ZhGxqMnS4G30gmU8TmnYdnq1Uz8kVzXxQaDdMwqsaY5RN96VPKk1tyxwd8uJ+3XizmaJC0N5HIyCLQ9qOaN+Q1aUq2oilXI+ffba3bgRYe+45vVGhw+UUjlWSmtQs54AI8U= 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: On Sat, Nov 04, 2023, Xu Yilun wrote: > > +KVM_SET_USER_MEMORY_REGION2 is an extension to KVM_SET_USER_MEMORY_REGION that > > +allows mapping guest_memfd memory into a guest. All fields shared with > > +KVM_SET_USER_MEMORY_REGION identically. Userspace can set KVM_MEM_PRIVATE in > > +flags to have KVM bind the memory region to a given guest_memfd range of > > +[guest_memfd_offset, guest_memfd_offset + memory_size]. The target guest_memfd > ^ > The range end should be exclusive, is it? Yes, that should be a ')', not a ']'. > > +static int __kvm_gmem_create(struct kvm *kvm, loff_t size, u64 flags) > > +{ > > + const char *anon_name = "[kvm-gmem]"; > > + struct kvm_gmem *gmem; > > + struct inode *inode; > > + struct file *file; > > + int fd, err; > > + > > + fd = get_unused_fd_flags(0); > > + if (fd < 0) > > + return fd; > > + > > + gmem = kzalloc(sizeof(*gmem), GFP_KERNEL); > > + if (!gmem) { > > + err = -ENOMEM; > > + goto err_fd; > > + } > > + > > + /* > > + * Use the so called "secure" variant, which creates a unique inode > > + * instead of reusing a single inode. Each guest_memfd instance needs > > + * its own inode to track the size, flags, etc. > > + */ > > + file = anon_inode_getfile_secure(anon_name, &kvm_gmem_fops, gmem, > > + O_RDWR, NULL); > > + if (IS_ERR(file)) { > > + err = PTR_ERR(file); > > + goto err_gmem; > > + } > > + > > + file->f_flags |= O_LARGEFILE; > > + > > + inode = file->f_inode; > > + WARN_ON(file->f_mapping != inode->i_mapping); > > Just curious, why should we check the mapping fields which is garanteed in > other subsystem? Mostly to document the behavior. The vast majority of folks that read this code will be KVM developers, not file systems developers, and will likely have no clue about the relationship between f_mapping and i_mapping. And in the extremely unlikely scenario that anon_inode_getfile_secure() no longer sets f_mapping, a WARN detects the issue whereas a comment does not.