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 27018C369CB for ; Wed, 23 Apr 2025 20:22:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8435B6B0008; Wed, 23 Apr 2025 16:22:04 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7CB3F6B000A; Wed, 23 Apr 2025 16:22:04 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6456C6B000C; Wed, 23 Apr 2025 16:22:04 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 468B76B0008 for ; Wed, 23 Apr 2025 16:22:04 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 8B69D1A01E6 for ; Wed, 23 Apr 2025 20:22:05 +0000 (UTC) X-FDA: 83366430210.20.9884DE0 Received: from mail-pf1-f202.google.com (mail-pf1-f202.google.com [209.85.210.202]) by imf10.hostedemail.com (Postfix) with ESMTP id D0648C0005 for ; Wed, 23 Apr 2025 20:22:03 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=g5E3fD1i; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf10.hostedemail.com: domain of 36ksJaAsKCO0PRZTgaTnicVVddVaT.RdbaXcjm-bbZkPRZ.dgV@flex--ackerleytng.bounces.google.com designates 209.85.210.202 as permitted sender) smtp.mailfrom=36ksJaAsKCO0PRZTgaTnicVVddVaT.RdbaXcjm-bbZkPRZ.dgV@flex--ackerleytng.bounces.google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745439723; 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=lb5Hj4079cmmz08gkncfU6HRHYwb2cTW68BpAu1pjpA=; b=skuEF8n1tw+B6PoYs0wev9ZJB7Mm1XWqyp0kyU68k6bQZs73a2gpWVqlPdfQPbNN5umxKg TQOEZ+UCzUEnEE9vejoHTA0EX13Zl+Gg6UldqQ5B7kbQKEhvjSBBkYyq/+3kI/9MOUrLae 4H4CYOjvzV4TDtx7xIZ+2JbwB4FzOAg= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=g5E3fD1i; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf10.hostedemail.com: domain of 36ksJaAsKCO0PRZTgaTnicVVddVaT.RdbaXcjm-bbZkPRZ.dgV@flex--ackerleytng.bounces.google.com designates 209.85.210.202 as permitted sender) smtp.mailfrom=36ksJaAsKCO0PRZTgaTnicVVddVaT.RdbaXcjm-bbZkPRZ.dgV@flex--ackerleytng.bounces.google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745439723; a=rsa-sha256; cv=none; b=uKZ6UTVZQAckSKnra43/FutxYmuZUHxKZYgpDo1vPfnBvdFCtAhSh0wUB7srfkdIsXdmYm tJ++0q/iSgqt/wczVvoosRLc6Pl3LJa7Ncqw/CMUjAZ7jXnmicriZWFSMYncHrxHRB9UQY DsZVcKq7BGasJGpAkiuvemuJFTz9dDw= Received: by mail-pf1-f202.google.com with SMTP id d2e1a72fcca58-736c7df9b6cso221427b3a.3 for ; Wed, 23 Apr 2025 13:22:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1745439723; x=1746044523; 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=lb5Hj4079cmmz08gkncfU6HRHYwb2cTW68BpAu1pjpA=; b=g5E3fD1iNpZBykEnPypO4SMHcYkMWkJy97mSMZjRUfQh6ObRhcssc2rGx0KW7mtyut N4nBJdb+Wti3fAoggure6E7a8HBd4/lSIIOpISuYM89BZ6VNW+FRYJzXiGcRUEJzldBR zdHI0WzTCjq2KnVBU8AZ2IQ3w6qIZkB5qRDt19izZdQWR7LZ6X8xTZu+Si/OwMhmGVXK ZxxTqcSqSMPPscciPSIKscBiPNbNnC4mXcbVUt5+JzPgpcGRc2tXRzi3BKP/Qr+UnU6L 2LJKOKQViWWsB2WOTqDtpP6zbLsqYI1FvNhbJGXRvckiqBCIBKi1JcVdNrh/BEvGLBqR MOKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745439723; x=1746044523; 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=lb5Hj4079cmmz08gkncfU6HRHYwb2cTW68BpAu1pjpA=; b=OI2iM6X4sqz9O3j2c7LKefKSUxrluCzNMDTUm000MrxEQ/xxeDzUeM18WoXnT9HGGH qRRiV9Der4lvg7Mvq8tKkHh8+nLqgf/ra1fgqlde+CF4+wEk0SQdhuvbWTUBRInzL1UG TnSbUt0ORBJJH6I4eAVSlWNKvTJ+NKPze35NWnp0tkbXsNLhdl9YShEXWo7AXeF/5cNg 3PTI6Whi7Ky+zMVBxcgM+gn50/671qLDlmOZhHKJcwUbWp/0wbbOc7IMCKa3NkOwTATc kixDGgkadN9L7KKOCw4LXGXPviWvugVkbfLxvsWiwO59ik/KBDkipdOdoL3x5lV9z97b ytbA== X-Forwarded-Encrypted: i=1; AJvYcCXcQe+8X3M4Z2dbJXbyhW+pSxzuPbPIRJiKWMsgh0f2i+cTBg382A+0JjCGoaU1U+GLBTZJOFsGsw==@kvack.org X-Gm-Message-State: AOJu0Yzv2kYCXHqVdCPS9cXi9CZUI1jfCsUXvWJQvWM8NoCG8Ki/HBKY ey8h5rhtUDfg0hS8kHzxI3Xsi4TzdFsLBS1+4NEPTRjdQevlpN8rFL9bl18rRBJmQjguJdTCAra P7rQBQb8G1OR3lVzGUAa3LQ== X-Google-Smtp-Source: AGHT+IEZQzaRzavelSAVxJna7z3rzv2eWOXWrhC8lNuigMph7H21lihWm3EaY9BgIQuvCBgTk8eHqn8ZKABOoog4TQ== X-Received: from pglc21.prod.google.com ([2002:a63:d15:0:b0:b14:9718:f939]) (user=ackerleytng job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a20:ce48:b0:1f5:709d:e0c6 with SMTP id adf61e73a8af0-203cbd418efmr30504920637.42.1745439722591; Wed, 23 Apr 2025 13:22:02 -0700 (PDT) Date: Wed, 23 Apr 2025 13:22:00 -0700 In-Reply-To: Mime-Version: 1.0 References: Message-ID: Subject: Re: [RFC PATCH 13/39] KVM: guest_memfd: Make guest mem use guest mem inodes instead of anonymous inodes From: Ackerley Tng To: Yan Zhao Cc: tabba@google.com, quic_eberman@quicinc.com, roypat@amazon.co.uk, jgg@nvidia.com, peterx@redhat.com, david@redhat.com, rientjes@google.com, fvdl@google.com, jthoughton@google.com, seanjc@google.com, pbonzini@redhat.com, zhiquan1.li@intel.com, fan.du@intel.com, jun.miao@intel.com, isaku.yamahata@intel.com, muchun.song@linux.dev, mike.kravetz@oracle.com, erdemaktas@google.com, vannapurve@google.com, qperret@google.com, jhubbard@nvidia.com, willy@infradead.org, shuah@kernel.org, brauner@kernel.org, bfoster@redhat.com, kent.overstreet@linux.dev, pvorel@suse.cz, rppt@kernel.org, richard.weiyang@gmail.com, anup@brainfault.org, haibo1.xu@intel.com, ajones@ventanamicro.com, vkuznets@redhat.com, maciej.wieczor-retman@intel.com, pgonda@google.com, oliver.upton@linux.dev, linux-kernel@vger.kernel.org, linux-mm@kvack.org, kvm@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-fsdevel@kvack.org Content-Type: text/plain; charset="UTF-8" X-Stat-Signature: tx7wh1ffwyqqn4d5ywhznhip1k1nqtyx X-Rspamd-Queue-Id: D0648C0005 X-Rspam-User: X-Rspamd-Server: rspam05 X-HE-Tag: 1745439723-915555 X-HE-Meta: U2FsdGVkX1/bAKW5DbrtXAOrZWfls/67NM4nfQu5iVfxshrImVoCkhmsX7CgKLMZ15cMpd3VSpOsmyPtCZqu4mAjbqMuYHTPHJXJyFXyKDZbHI3TEw4myt2GPx4WIz1Z7kA+znzHBwmnqrpt8JD0kI9AJNr7vd9R6Lgv0i3K0YOXjbFC4iZhFzY5qDqlKRb1FLfKSh6MUHzyKpFCJa8HNO/S1SkQpkb0AeIQ2Q00MVT8xey36FbLxuKRf13g/U7Cy2FaAbjkCOPpsyfE0ZsLt9Lly1miEAI/c+U7yFcFT/Nnupush3syYNnzf+sA64NGVfLKb6bygOFjbdyWWADpXW/W+wm97mcYge810KacXNvHDeLH0QaovJvOjFE6VgyzkrzIdIHXpD/Q6h2kyGy7SAhdq0pvhescmg2hI8VHF7bzPg1KpdlUL9eo8q3VUnfi9RzEX4Pug362M8rVZyOuxSOpWdWM5WwLlkLPMjLk9koFB00JL50S3Jz8VnOe/qQu6z/ExyLC2lqjr3pjSKD685Oso1OL32xo0DEr9YFhHO0BSdn/HdsmvMh6tpQTt9e0n4WvUZm4ABUZHynx++WooCe8/ALzQVqed3A6Ru+p4F82u6rdsTUVggV8IJ0YIvW3oE2ZAN3bqZAp0iT4BXrduJSuIAzmoaVSt/TQDGdKa99o5oms0Rlpv/ddgA2gU3uufFTMttorxNlNPnTrqqO8bVyvHEA7qfmizQ1oo2tf6FvWB7ylyND96TunsVbjm+venFWhHU/hH7/Et+EDeW7g2pIQREkzqyQ3WKpSHbUz4labdgNLju/bERA+mXyqvt0esJrdkzH8djkhsBRyKsR2SfxI7STOzV2NbXsaNrKRU7VKX+bcIj9WYQo0P+2gWy1t24wRv3IlkVubyjM8kc4ywOLOolS0JoEdyU0Hbl+M1NPe4oej9qEoIEP637PlBHkxGG3g0a+BilBDvR0lh1E jOMqoaao itRQXWagNsIg4IZaSnJhjbPf+361CszfwIJMVFagJyMkoD8gRQWUkCGDHg7WHVfVrC0kkQLdEai5q+JaoKZAEWpOu1qwgzoimAFlEcrk4eWRkwEND7o6LcizDT58Y4W9HGNS5t6VK6Qun0mzW76c+oZeSFgZiqE6zlR2XWIY+M9vT4ofGE3X0lzWv60yAPJlfvjp4cMmNTn6ZNylKJaOREbe/FpBWvKJnoGQnoR2BTf/mY/enADRutPRkU0gyGPTkXYWYZC3lerXJ/GbXVh+wMAFzoDpK6jY5mP83ZYQozucYTNEeXQ/Co8HsmhEgMxfaC6Y7jjmE5m4KZYr/gy0u0gmvM8tmtLNlqyivUy9fd4SHgXmtA3s2DWdIGvuojk5aFjFZjdHgHBnoviqKNDF0IXoDggbs9uVVS0hXt+H6rfdAoQ8UAqOOrihfpoLVrzUJiPop3zhiEMPxLVB1B9I1lpjL794jBw7F4iIq+W2u0asjllHnxSnA3UbRmYB+8W1B9cunpy4VT2+iAk85BMZEZsanGMgEMSnj4VOgze/cOUm/5NsBwUt+8S2DxUHqu7kRKbTzwRh4kA5RLBLNcDtJQ0s9naETVOt1tQ0S6VFiuHhZX4pN4i8PMPdBTj0m8yIGe1X9hkFdWpOdtkG93FFRvufEdtiy91YX0iUYuTMeiTxxsBQYV3EZKrdhuuFmrD+rOz5NpH5nL4ws6CbZvAeyB5+BpwqjCw0Wx6ZB 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: Yan Zhao writes: > Hi Ackerley, > > Not sure if below nits have been resolved in your latest code. > I came across them and felt it's better to report them anyway. > > Apologies for any redundancy if you've already addressed them. No worries, thank you so much for your reviews! > > On Tue, Sep 10, 2024 at 11:43:44PM +0000, Ackerley Tng wrote: >> +static void kvm_gmem_init_mount(void) >> +{ >> + kvm_gmem_mnt = kern_mount(&kvm_gmem_fs); >> + BUG_ON(IS_ERR(kvm_gmem_mnt)); >> + >> + /* For giggles. Userspace can never map this anyways. */ >> + kvm_gmem_mnt->mnt_flags |= MNT_NOEXEC; >> +} >> + >> static struct file_operations kvm_gmem_fops = { >> .open = generic_file_open, >> .release = kvm_gmem_release, >> @@ -311,6 +348,8 @@ static struct file_operations kvm_gmem_fops = { >> void kvm_gmem_init(struct module *module) >> { >> kvm_gmem_fops.owner = module; >> + >> + kvm_gmem_init_mount(); >> } > When KVM is compiled as a module, looks "kern_unmount(kvm_gmem_mnt)" is > missing in the kvm_exit() path. > > This may lead to kernel oops when executing "sync" after KVM is unloaded or > reloaded. > Thanks, Fuad will be addressing this in a revision of [1]. > BTW, there're lots of symbols not exported under mm. > Thanks again, is there a good way to do a build test for symbols not being exported? What CONFIG flags do you use? >> +static struct file *kvm_gmem_inode_create_getfile(void *priv, loff_t size, >> + u64 flags) >> +{ >> + static const char *name = "[kvm-gmem]"; >> + struct inode *inode; >> + struct file *file; >> + >> + if (kvm_gmem_fops.owner && !try_module_get(kvm_gmem_fops.owner)) >> + return ERR_PTR(-ENOENT); >> + >> + inode = kvm_gmem_inode_make_secure_inode(name, size, flags); >> + if (IS_ERR(inode)) > Missing module_put() here. i.e., > > - if (IS_ERR(inode)) > + if (IS_ERR(inode)) { > + if (kvm_gmem_fops.owner) > + module_put(kvm_gmem_fops.owner); > + > return ERR_CAST(inode); > + } > Thanks, Fuad will be addressing this in a revision of [1]. >> + return ERR_CAST(inode); >> + >> + file = alloc_file_pseudo(inode, kvm_gmem_mnt, name, O_RDWR, >> + &kvm_gmem_fops); >> + if (IS_ERR(file)) { >> + iput(inode); >> + return file; >> + } >> + >> + file->f_mapping = inode->i_mapping; >> + file->f_flags |= O_LARGEFILE; >> + file->private_data = priv; >> + >> + return file; >> +} >> + > > Thanks > Yan [1] https://lore.kernel.org/all/20250328153133.3504118-2-tabba@google.com/