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 EFFD0D1AD29 for ; Wed, 16 Oct 2024 08:16:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 827566B0082; Wed, 16 Oct 2024 04:16:33 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7D7B26B0088; Wed, 16 Oct 2024 04:16:33 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 69F876B0089; Wed, 16 Oct 2024 04:16:33 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 4CD896B0082 for ; Wed, 16 Oct 2024 04:16:33 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 2D7241C73C5 for ; Wed, 16 Oct 2024 08:16:22 +0000 (UTC) X-FDA: 82678758372.26.FA15F1E Received: from mail-il1-f171.google.com (mail-il1-f171.google.com [209.85.166.171]) by imf27.hostedemail.com (Postfix) with ESMTP id DF6D64000E for ; Wed, 16 Oct 2024 08:16:22 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=3m1e9UCq; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf27.hostedemail.com: domain of surenb@google.com designates 209.85.166.171 as permitted sender) smtp.mailfrom=surenb@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1729066474; a=rsa-sha256; cv=none; b=LJ9s23gL2nctK1XljPNsiUSGb3bDp6qG3Ygbbmkw5qAfo53dWKm5231mUsps8fBkbz69Ap 8BSSZSDF/tTOQAoNBfURBGu/164mSV9lquHdRLT32lsAwFaIyGP31a/Pprw1lfJzCpJy3l 8rdg/CENd5btg/Cev5/h4OXLSpE14WA= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=3m1e9UCq; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf27.hostedemail.com: domain of surenb@google.com designates 209.85.166.171 as permitted sender) smtp.mailfrom=surenb@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1729066474; 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=kgkFDlG4Cc94tDRNFfU395wBqz91HSfYstCHnXlDxso=; b=v9WrbLijYxrqbKwq8hs/J6nb/a0VWkhEUfHMtmvW4A+Ml43YrIJCpQa9cU8xaGd87iWUA1 Dm4wjkr/liR6ZIukgPg10st8EPChyVpdtEfEqzkBrjrcntMGdv3wMveHt0JoCGFhW8lWRm FOn/EjF0wYUOxGpMy4MlGk7vZtF+YNE= Received: by mail-il1-f171.google.com with SMTP id e9e14a558f8ab-3a3b3f4b599so176835ab.0 for ; Wed, 16 Oct 2024 01:16:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1729066590; x=1729671390; darn=kvack.org; 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=kgkFDlG4Cc94tDRNFfU395wBqz91HSfYstCHnXlDxso=; b=3m1e9UCqotspTijwqN7lNf3+d4cnhTDQ/wlzXlGAlcntXGhhIt3bYUGPvjH58b6G9m H/5z6jebLySmlI4x8qa1eGiK+5JNmBPk7VqiHlhKUB+cRlOvxbcgtWYt5LdgN5bpu1ks Vh5YVLqPZ8PjibDbdtvkUJW1U3TBGIlS3zArVZSREr22kRcd8NNtRBkTbe0bSAw454cx 2YTJExsnbJ8wcODacHkJnZGMX+huilKSuBH+rvXcs7W+Tkg6viehf8BlSu4ai7YAaGPA riDIUcN9Peby4AhunsFn5yjwDQ/1Exy691ZFGWcCRbjXNaIq+455m3un92R/qqg4vWU3 N63Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1729066590; x=1729671390; 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=kgkFDlG4Cc94tDRNFfU395wBqz91HSfYstCHnXlDxso=; b=Ycdek8oWrWHNDtATqWzPtT8VH35w8Xqq8hA1tvXZOQY3J2yO84pIJOWKKwc/KH+3GP 9cJBle8W43a37KzsvXHKK/RNsGk/PfL65OAlE4+pgRye9nkrK53ZZUj7bBYAMK1aKLhq 0khiOgXqvw761MYuytBnp663Ms9B5E4zvWOonHRTV46C0Jux7nbYng5x30dHZoSd9KCK 7E749rp0aF9Evz/HGz/eTXcIxxWoQoL3z7V/Ss0EOD5VoxnuJmIO0yPK1/daq67or3VU 03U9vWdvlty5Hd4zz1B3RTxqGBrMmtF8Fy+hchg2HyUBu6VQPHZNJfmDieSeQden3Xtu 7HkA== X-Forwarded-Encrypted: i=1; AJvYcCUxUCaulvF5YjMgoD4xhMZCsi+QUOx1AbNzy8WGzD6E5g5rpVtMyXJurvtKXN6CwTQLG5Aw4yOC7g==@kvack.org X-Gm-Message-State: AOJu0YwzKYCZ45pRurGiumt1zBqks3IGhd22ae6oDt1xUrn5Dt7fZqnk T60J7rHVA4Bh2/2JvPBdTBBcV4+e5/PFBbdLKHK0Ygg1mwtRigHafyfN9qliguJT09kzEduHDer QhNEc0jy0OGov+z98zH0BgwGk8Qq12e7CZd+5 X-Google-Smtp-Source: AGHT+IHg8i8DFzH0lYUNHyBhvBQcinwiYGOJz+CRzHPKgnZGXVtSbC1G197aqoPM+MoZ1HbhHUg7l0fhpmH/BWsWz0k= X-Received: by 2002:a05:6e02:b22:b0:3a3:632e:efed with SMTP id e9e14a558f8ab-3a3ddec7c68mr3406025ab.26.1729066589889; Wed, 16 Oct 2024 01:16:29 -0700 (PDT) MIME-Version: 1.0 References: <8e7edaf2f648fb01a71def749f17f76c0502dee1.1728643714.git.lorenzo.stoakes@oracle.com> <8c75620d-8920-4c19-8ebc-0f2b056d49fa@lucifer.local> In-Reply-To: <8c75620d-8920-4c19-8ebc-0f2b056d49fa@lucifer.local> From: Suren Baghdasaryan Date: Wed, 16 Oct 2024 01:16:15 -0700 Message-ID: Subject: Re: [PATCH v2 1/3] pidfd: extend pidfd_get_pid() and de-duplicate pid lookup To: Lorenzo Stoakes Cc: Christian Brauner , Shuah Khan , "Liam R . Howlett" , Vlastimil Babka , pedro.falcato@gmail.com, linux-kselftest@vger.kernel.org, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, linux-api@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: DF6D64000E X-Stat-Signature: xonxdtyfzmm3crxxepwdx9f6hueptq7f X-Rspam-User: X-HE-Tag: 1729066582-907099 X-HE-Meta: U2FsdGVkX1+oJVbK7UMPnaSguvv06qDm4CvitPdMPW+UZ1Vn/w1yGZKiK4apqG/qNNpJLP2f6BeBvKRJEHyAEPMqPcb5M7ZwGKamUTLIw0KZSdJi0zkaV80PJLBDdXBJ2Wx9joBoWMHgfv8v06YC+iMJOjdzgMdgF9tkoiFlklIiSyVMY95Cu/P0VxR+M/N5+d5eNgrbAoR6Dv9KM+76ioS8zLeHboicnIBRAGKwBZlQosS83ajaawIjOluHsMfIOO7g3CMXwRCHMYKA6ojQOZaLN5WmE667v/N2WZUpzpcug/Ap4GQrk1FTfZzXr17bOI9slfevjdCUlWCNUVx1lWDSWAzQT3YId6cHgDyDQu/sZ48HwpbiJLCuzA6UMKlicvjYDS4ioOCLXmCPeI1BXiCNRKYJkmsBgHUQFZuckxtYHhEf4QkoVcGox7Q6uaj5FyvGFo+AosevuWeCV0b6+T9Q7Ft0PXuHL4KhSczRKrkUhMLU5EXjPRYbrly/OULSBw3gBoclU3Fnp5GyyNmcP2U7CEsb8muoVPo+H/tn9PpUhijH0J+Yc56GkYrewrcAVcaygj4oXxo/9blIbPWelkmtQsWxBGAUCcPlUH8zpjUOpjIJ/YFmXuzXy0UtKXfrB3B0h4k71G2kx2R7Je3rR9dJaICWjBUIUKtnWVtVLQwS6pzM0RO2uxcbXUVoigdVly60/oHc49Cpy95pM2JEoa+6vrHwA0H5B1Pu+IkdcLhzoUxs7Yrd0ZXe1U8IwtYTCRBiKr64nDw58Op6hVXaHByAYDatjlqgR9gnc9U3QK8t7WJwZymbIkKAe7NMAYognigVhEOZgbWOShxhYdaVp4RvPIJWj8SpdmtFYNFz2IfSvg0hLEr2SXuegNe0C6XEbP7DRbzgrXh/WO8uWTCw+WaJiOifRezFth3bRyau1bS8qN7KqxN7Kh8igy6lYYtUFRo+RGwyq8SLebbk92x sUPEzVTE xlQnLo8aHWkWQQ6F7dZalnlA0FSYSVO8Ni8LWuWbLzHylLIQMfG+Wl4aFf/gSQggEMF3Pm/4frZFTN3HEHcLK9npEHdf/mqQAWaIJ3ZyFa0ZgJFx+drPXjW36aBJ08iRQ6yhDV750hxh3aLT8TGus8kW76WZbIcGTh8GRFJbWQkaQ47HbtEEFCPQiZTw1mj8sazyw/6KtPJcJYMBcViP1x8sXdpPzTI6myBaajdNHFzvt2LXD5cOnbqSnXLsqf67huINyGC28kOTnx2npiqorcQlZ/mlClcSA/F9x1Rx5XyNT2YZK5QowTsfzfx6rxpn+8dmyGZnaB49g+u0y4ds9kWVG/w== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000440, 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 Tue, Oct 15, 2024 at 11:05=E2=80=AFPM Lorenzo Stoakes wrote: > > On Tue, Oct 15, 2024 at 12:40:41PM -0700, Suren Baghdasaryan wrote: > [snip] > > > -struct pid *pidfd_get_pid(unsigned int fd, unsigned int *flags) > > > +struct pid *__pidfd_get_pid(unsigned int pidfd, bool pin_pid, > > > + bool allow_proc, unsigned int *flags, > > > + struct fd *fd) > > > { > > > - struct fd f; > > > + struct file *file; > > > struct pid *pid; > > > + struct fd f =3D fdget(pidfd); > > > > > > - f =3D fdget(fd); > > > - if (!fd_file(f)) > > > + file =3D fd_file(f); > > > + if (!file) > > > return ERR_PTR(-EBADF); > > > > > > - pid =3D pidfd_pid(fd_file(f)); > > > - if (!IS_ERR(pid)) { > > > - get_pid(pid); > > > - *flags =3D fd_file(f)->f_flags; > > > + pid =3D pidfd_pid(file); > > > + /* If we allow opening a pidfd via /proc/, do so. */ > > > + if (IS_ERR(pid) && allow_proc) > > > + pid =3D tgid_pidfd_to_pid(file); > > > + > > > + if (IS_ERR(pid)) { > > > + fdput(f); > > > + return pid; > > > } > > > > > > - fdput(f); > > > + if (pin_pid) > > > + get_pid(pid); > > > + else > > > + WARN_ON_ONCE(!fd); /* Nothing to keep pid/pidfd aroun= d? */ > > > + > > > + if (flags) > > > + *flags =3D file->f_flags; > > > + > > > + /* > > > + * If the user provides an fd output then it will handle decr= ementing > > > + * its reference counter. > > > + */ > > > + if (fd) > > > + *fd =3D f; > > > + else > > > + /* Otherwise we release it. */ > > > + fdput(f); > > > + > > > return pid; > > > } > > > > There is an EXPORT_SYMBOL_GPL(pidfd_get_pid) right after this line. It > > should also be changed to EXPORT_SYMBOL_GPL(__pidfd_get_pid), > > otherwise __pidfd_get_pid() will not be exported. A module calling > > pidfd_get_pid() now inlined in the header file will try to call > > __pidfd_get_pid() and will have trouble resolving this symbol. > > Hmm hang on not there isn't? I don't see that anywhere? Doh! Sorry, I didn't realize the export was an out-of-tree Android change. Never mind... > > [snip]