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 F21C4C54E76 for ; Wed, 4 Jan 2023 21:05:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 110D98E0002; Wed, 4 Jan 2023 16:05:17 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 0CF188E0001; Wed, 4 Jan 2023 16:05:17 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id ECA788E0002; Wed, 4 Jan 2023 16:05:16 -0500 (EST) 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 DD54D8E0001 for ; Wed, 4 Jan 2023 16:05:16 -0500 (EST) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 9CACBA04D1 for ; Wed, 4 Jan 2023 21:05:16 +0000 (UTC) X-FDA: 80318347032.20.3F0EEB6 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) by imf11.hostedemail.com (Postfix) with ESMTP id E470C4000E for ; Wed, 4 Jan 2023 21:05:14 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=CKZNVdeD; spf=pass (imf11.hostedemail.com: domain of lstoakes@gmail.com designates 209.85.128.54 as permitted sender) smtp.mailfrom=lstoakes@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1672866315; a=rsa-sha256; cv=none; b=WnYxW9Z1AqhbZRTf8A1vedkuorW5xRSc4H3XrX6EJNJOy8SmlekRJAADAQGHaSe8JmYgF3 QRz3iEbtUAF0vCSakjcpW+95ubS2HJ3ER6TyX/uIucbm7OpQat6lbt0TZfJuB2rEMNU/sd a2BN4j4YJnuQ3q1XEZzj6WxYAjaIBxM= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=CKZNVdeD; spf=pass (imf11.hostedemail.com: domain of lstoakes@gmail.com designates 209.85.128.54 as permitted sender) smtp.mailfrom=lstoakes@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1672866315; 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=7LzfQSUgvIM2I1IWlBk0x0ciKpBQbVvGJGMBc1nzev4=; b=hSqI12zEt+aT3q3U3M2mfvpkMC9g/IXQkAneqR+zU1o7STnvJ04L2942USA559voEI/SPt mM2T60pe94ejQejazz07PjbkK1Wye8zQCPv9xwTzs8S3xOB+ONxftwPWaaAoNfgzwiGeuf KyM+YfSX5DvkdaHgeurA3LhGUrUbQ38= Received: by mail-wm1-f54.google.com with SMTP id ay2-20020a05600c1e0200b003d22e3e796dso27582870wmb.0 for ; Wed, 04 Jan 2023 13:05:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=7LzfQSUgvIM2I1IWlBk0x0ciKpBQbVvGJGMBc1nzev4=; b=CKZNVdeDs4r35ksAkhFEpBHpUwkIwLnb9DiSNaCXEv5nMhReah7VqeZYh3zHlcwS3t SEhJwIerynaFPS3ynBI2L1RmpPRYUcVopwCJkYTqNgR2+368zyhqDD2+2jQpEw8yfA+3 FNpHZIuYIlH8IFV7b9LnRA26Fbu2VoMTnwikMLKxS5l0YDxhMqI3HXDcJtgbHW6+lcNW PvHB1HPUtoTsK1rlRJvLT5uZPD2tS2WPLQVNy36ZwWo2P0h0nyHQo0KUKLaJOfQrGSv4 vmgKgCM4rJMuZfdKj7q4bMyC3XICYVS/0zhd2fgSvAjGHVWb4b09vitSpFwfwLogUDCC +k3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=7LzfQSUgvIM2I1IWlBk0x0ciKpBQbVvGJGMBc1nzev4=; b=Ks8YzxrivcjekT0fL+1jYWYSu6//x4xklvagI1lsMdhDv+qZ7USh8+/NZUOVC2GaAx u0H+BwT8zmabD8DaqUpakrgrnFYd8Y8FHXHRqx4VBM9HPJgJGA87lZFWRIe63OulvJx4 gfImHMPmTOOGREbjtLNt48mep9yVAWvMuf2zEjxoUU4cdOvPO9zgHZDdDESWumoH8SAC KY+8xhNF4qULDnxV26xdxpLKNal4cB+zEtXQm2y0BOxdp1zuXzXpmPKIpgRqEfcdZxbY vhxZ8LN8zceEvOK17Pvz/BuRnmUNkiW3nX4GcYJWL6I7BRlbGwbedpTRhxJKdg3XGi7z 3pdA== X-Gm-Message-State: AFqh2kqV4CSQcg+pe3GjtNhsqZerHYc2BaMmIeR7Z8BaUrXUAsFLRLLl RF7/YkarDlr7DmvPxqRRkmU= X-Google-Smtp-Source: AMrXdXtY7SKetrw41QqpZ6faUFEwlJ+P2rnGpc4edC+fz40j8dJ2YXXeoEioUhj1wc12FK+dknyrEQ== X-Received: by 2002:a05:600c:3d1b:b0:3d0:6a57:66a5 with SMTP id bh27-20020a05600c3d1b00b003d06a5766a5mr34002357wmb.0.1672866313536; Wed, 04 Jan 2023 13:05:13 -0800 (PST) Received: from localhost (host81-157-153-247.range81-157.btcentralplus.com. [81.157.153.247]) by smtp.gmail.com with ESMTPSA id z25-20020a1c4c19000000b003d1e1f421bfsm30078wmf.10.2023.01.04.13.05.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Jan 2023 13:05:12 -0800 (PST) Date: Wed, 4 Jan 2023 21:05:11 +0000 From: Lorenzo Stoakes To: Alistair Popple Cc: "Yu, Fenghua" , Vinod Koul , "Jiang, Dave" , "dmaengine@vger.kernel.org" , "Zhu, Tony" , Andrew Morton , "linux-mm@kvack.org" , Christoph Hellwig , "Shankar, Ravi V" Subject: Re: [PATCH 09/17] mm: export access_remote_vm() symbol Message-ID: References: <20230103163505.1569356-1-fenghua.yu@intel.com> <20230103163505.1569356-10-fenghua.yu@intel.com> <87tu16rdea.fsf@nvidia.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspam-User: X-Rspamd-Queue-Id: E470C4000E X-Rspamd-Server: rspam01 X-Stat-Signature: aaebisf5ft617p7aiij4sqcqye4saqfh X-HE-Tag: 1672866314-817633 X-HE-Meta: U2FsdGVkX18Gu/zuua5yUX0nwySqM07iOypGhGsXux+bOpvm7ccNf1Wl00Mh7LEUaVmy+DZHJ9PwnymURSnySwCkH5J484/pMllaxRBXX7yajiflh2SCkQEgSm6R/MQLDPO/iA7ks5lKyBAwk4f4JfKwLujkDT4zEXXEA/jLpvz2fuWt3Gqkhrfu/zqSsT97iItG27MZUdsQbC5zCBNSPhtuCbgCqlcbvCC0lkysUK2v/w4E1xLuypEhJr0pHElq+xsyLGaS7+DRl6fX8y64+d7EHqVZuzzeYvct2RrDm7N6yGPWcjQlfazGFvWVcF6ahgVao5p3sENv5mJDLPC3zU3FBMWLJc3sDJf4PpuUKEehQy2XOwoElQn6klRUQ10Q/SCUwOFUChd32I6tMUNPwXC8bK6byigpvZfXiaFZ0OH0oS9mIIcriVEhRrLh6WQhxxOR5mMF98Ltx3RuXwyPRJslF0IsudU7WT5r+Qzp08Kl6x/EU3REJCb3iaYIzLqFAAMZC4YopCcGKMEXjfUM5SdGrOydQHBfVorutbZRfwnDBPOoQH/3N4rJgyoZ+W14BZ1pvD1MLWlNjZjT1Eq3ikk6LfTw/eXj0VqRJdCbwHOxBy6zXahK+eI5AvsBXFMI2+aa28Zl54mN4ONXOmkiKoCrQSAf2N7yeH6aalouVGcr5SxWYEjJBQxUv1YJLRpJA5sAc7NHyAe0yrmV2xXbo9J+9SeRAAtnZMErDRlkCE32YDxI5+LPM7YE14d1jPdVisGX+TsjnSz04l/Tag4VbYx5ZXg3IgMz6hPFM1Gr6hi5C+sNqWzO1Nkwvdm4r4twNydmlI5ImpwswXlm4u4YUGvJe1+wUsTaRKoqbTtsa4RTWZLDvid5ijcC13YGIqmwVo3zpkyBgdMzCau4DsFDTgThKotm2lH6isq/Zij6XKzcrH8O/fJMs1a5QMdcw1W/8WdUj0WmkCxVeyucuIt 1vJxSDPG XDLmpSr+SgVqV/8J0bCTDbnMY0P8hcwDFI0SrdjVJedciW5m/gDz6aMQlGyEpo+OYvveT9H1+jVHHlIPfnFz7bQGOqFQMkvW5SHXuZroEtLKRvko6lRNDLq5RyD+FBd3zCE/IgDMBoO8VYwNKbbFxVirwwdbN3S0jJvSsU2taus71KiE= X-Bogosity: Ham, tests=bogofilter, spamicity=0.011112, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Wed, Jan 04, 2023 at 07:56:35PM +0000, Lorenzo Stoakes wrote: > Another question is - why can't we:- > > 1. mmgrab() [or safely assume we already have a reference] + mmget_not_zero() > 2. acquire mm read lock to stop VMAs disappearing underneath us and pin pages with get_user_pages_remote() > 3. copy what we need using e.g. copy_from_user()/copy_to_user() > 4. unwind OK looking at __access_remote_vm() I just accidentally described exactly what it does other than step 1 :) Perhaps then the answer is a wrapper that gets the reference before invoking __access_remote_vm()? I guess we could assume grab there. It strikes me that access_remote_vm() being quite literally a pass through to __access_remote_vm() means we could:- a. change all callers of access_remote_vm() to use __access_remote_vm() b. Update access_remote_vm() to be safer c. finally, export access_remote_vm() e.g.:- int access_remote_vm(struct mm_struct *mm, unsigned long addr, void *buf, int len, unsigned int gup_flags) { int ret; if (!mmget_not_zero(mm)) return 0; ret = __access_remote_vm(mm, addr, buf, len, gup_flags); mmput(mm); } EXPORT_SYMBOL_GPL(access_remote_vm)