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 ED09ED1AD2E for ; Wed, 16 Oct 2024 09:03:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7B1726B0082; Wed, 16 Oct 2024 05:03:11 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 763706B0088; Wed, 16 Oct 2024 05:03:11 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 629AB6B0089; Wed, 16 Oct 2024 05:03:11 -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 44EA36B0082 for ; Wed, 16 Oct 2024 05:03:11 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 8881CC1B04 for ; Wed, 16 Oct 2024 09:03:00 +0000 (UTC) X-FDA: 82678875762.09.57F86FE Received: from mail-qt1-f169.google.com (mail-qt1-f169.google.com [209.85.160.169]) by imf21.hostedemail.com (Postfix) with ESMTP id DA6291C0020 for ; Wed, 16 Oct 2024 09:02:52 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=GhAhvWiL; spf=pass (imf21.hostedemail.com: domain of surenb@google.com designates 209.85.160.169 as permitted sender) smtp.mailfrom=surenb@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1729069197; 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=xQzk1mC3owj3LLPZ/BCuWHHnPyypCT2nSfTPIIH7T8I=; b=W/3vZeCJwfMJWftTzAtbziSkN69T0XgClvxHfvUCLTnyR1n0K8wJgLMx/J7afkumcjqV0z INBGXv0+wbpntFz4VhtMymRXrLL3Jdib4ShjJhe2QneT4lWHVGtbBwkKApSFfV5cqGKq/G vH6fj8aC9W33L7E7PRDznnUJTS65bkk= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=GhAhvWiL; spf=pass (imf21.hostedemail.com: domain of surenb@google.com designates 209.85.160.169 as permitted sender) smtp.mailfrom=surenb@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1729069197; a=rsa-sha256; cv=none; b=3nk+XsydaQJEnPAigKblnn//9bmKnm7AYGGnuCz9sNw4QRvHJNYMERyQonux/xoVM9brcH J/rhwUjt0UlL3sDiH41oj0p//6WrHvtwRgY6RtYpKF9tzZjNFk28gTbF2AK7NvYWSvBJ58 ShGqdVEJePgIFv5VtRieuUL1GTWylOk= Received: by mail-qt1-f169.google.com with SMTP id d75a77b69052e-45fb0ebb1d0so121981cf.1 for ; Wed, 16 Oct 2024 02:03:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1729069388; x=1729674188; 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=xQzk1mC3owj3LLPZ/BCuWHHnPyypCT2nSfTPIIH7T8I=; b=GhAhvWiL1dhXBJfdUWtmJpKEM6FCGqsxI6kVNih+IZADSVAYM6J87YKwyiFtPOx9zM m3qW5zFg/yejD3lequfPjUyzydu+KHMvsv0g2G6dn9o8Rxbi2fzj+zW3B5GA2spP/0Uh HOPf92/3hU0UiyS5vf3ITOR32JYSDwroftkV2dfeoKRltj3G14l9u1ECmSXgC17+TpxR sMAWqC9a9T+mnzRDQS2jmG81IM5+h5sh0EeUOUIQFyiueHXmbOPPUyH7xMc4ajtRiSU1 zwA8O3V1lBBqFa4tsSyk2AuztV5epJAwzro6QSh+2f+0VAoURAwixSh3Xrc/ii6AnyiX 5Hrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1729069388; x=1729674188; 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=xQzk1mC3owj3LLPZ/BCuWHHnPyypCT2nSfTPIIH7T8I=; b=a2U0LAPMf+fAqAYm9bd/y77vxWVQTIui/1rGFRdnU4zimOKatnPiMH1o/Md8haxx9E BxY5HZrxZCm2KC4VRE8fT9J3LWr2ug2OBmNEERiwgY+GmuOswwWIcZ9vxzleZjcxqyvx YiWCCUtCfKK58jLgSDzyiXZ62fM2vNXHIcn5HyzOaosOhOa7RCKd/i/tEGp7JQWPhjza ub2hFUkfH5ZQJVLNNp68xrOBNVQr99l8CFwgUk2gjkU0vJynnbP5WGmrBJ2eD4hIy3qw D0eBPTNBLTKZ4iAd4Vm2/wvfmlUiU9n0bDbZkmaAXXc4G6GEOyn37/eLl/G5ViImRQNC k9VA== X-Forwarded-Encrypted: i=1; AJvYcCUhhsbbH0xceU6MLj/kIgxw6pnOsxHPgqDPHcyYGNZoReJEF3KDQsMkHzVkXXrtQ2cMTt3nQf7zWQ==@kvack.org X-Gm-Message-State: AOJu0YxFl1SKSlUIFWLZw6wSRoVLoW7OQqj8yBWaq2DlprvPQTRVV0Is 7zyKalZh6FZpEkHk29oinZpiltfCnjvjyXW9sa1j9tmFCPuxm7CgtLiT760nvL2GONVPRxto2do rK/HmnT/Q++ZDYcyj4bSFv5Q9mtHrrkufeMdO X-Google-Smtp-Source: AGHT+IGQwHZYMLkrq47J9La85UHo65QEVMsbmYO1OzZX/TON+QFYFXyDU/l6AztqtH0WBcKUZcDBByYr856yGpXnk9Q= X-Received: by 2002:a05:622a:2e8c:b0:453:56e7:c62b with SMTP id d75a77b69052e-4608db34c61mr3384901cf.12.1729069387837; Wed, 16 Oct 2024 02:03:07 -0700 (PDT) MIME-Version: 1.0 References: <8e7edaf2f648fb01a71def749f17f76c0502dee1.1728643714.git.lorenzo.stoakes@oracle.com> <8c75620d-8920-4c19-8ebc-0f2b056d49fa@lucifer.local> <2c783f7d-78d4-4d91-9999-12d7772b6272@lucifer.local> In-Reply-To: <2c783f7d-78d4-4d91-9999-12d7772b6272@lucifer.local> From: Suren Baghdasaryan Date: Wed, 16 Oct 2024 02:02:56 -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: rspam06 X-Rspamd-Queue-Id: DA6291C0020 X-Stat-Signature: tq4cytcezu5qh7cr8cxfytqyx3hmskaq X-Rspam-User: X-HE-Tag: 1729069372-687347 X-HE-Meta: U2FsdGVkX19ugB2rFeSURFqMjl2+qnC5IREZhIJoKadmaCqUc0oLyGuPwi24yGb/z4TOf41+/LiZ4YO3aXOb963jFDCBXrkgLv0qrcNkYdykB0YO/PjbisJA/YfG9KE/BsKNUGomgsG5sP7HQ3w26rFIGIhriZnxhfc3z0ZyNgRIoq810Dbbr/tZt2vuX+hD0iQ2BFPrHHajzFhIGkpBfVDLcNKxbKB3Wanu1XR1WLdT5EoFx+AIHKDs8B1DOOwrE34tnWOMaNnFEEu8Nq+thwL/Arr0dD7vm+4xxEcmDXPCNqo+Ce2Eltthuj0zLlEJXr2bz+6mtIWXxLcXXgBfhIq43eJXPiZP6P9jaKQwcI4N+ldA36Zoq0e4SEMpaGV0fFrFXWpV5h/T1FL8+NXPh7V+KodbgzM5+NylUR+vhZJrCyVxCLDmyuHsBYVZV+NxET9SLrtFVVhlJ2ULtjtXO+c0Io9j6bAZcAgwsf9xxAPaCmOlMxjFWVGYDVwI83mcb7k4AA1fJCQ3Lo034FSvXMlVFlbHH62kwT56leUNF5eEAsmkMsZo1MVMeGvVKjxeOBso5bq9+BR9WANmE7q7pR4Gbn26i5qK/RfgEtt2LNenEnmMRFevgswQcQPIjX+kYGwYHaaWjykvlH4YDkbyDV/4RcNdS7hmthXH58QptE4ONo6vFjBgzdx4asyjIsMq49ioG1W074o/4x6HvkaGRTYlb6g+OXpczTL9IqhdIHmHyHT/X1ubSECiP4S39v2aTjYTXkf4U3ouvmOH7v1D7QAQtw3I4jO9hz9SXFYe8afg67tRX5KKuIP6gtF433fczneLa/Ks1doDV70fIHFmQBKyKiED6vZXbx8m6dNNihnw0kpYB8NVEL3/mjoROeSyl9dvr8ICDpubnzOIkgy21eD30U79GP7pHA627bl2mNvz/5Wvl8/pae+lddcD4zXrVns6Z0A5kqNk5NJJkGx rN5NQujN EvfdVQ0E4qCJTHNsF0gw+TmdQdJRtpLT+BxgiWn1+RmdXEkf6UfxhLleQa4QReZeft4ezEd2zFhVVGb5YVFrDFc0M630aA3d59pUkAPSEMyxtoPS9z+Ib006jGm6tO5jvEzAdM3UpFEIFcA0hGET7wpQHCACkNF5RHhW77AqXiG/0Nm0V9vyjCLpNvnjj0Sj6Ft8vIU60njR8sF5ZWNYkPjPDXE97olhGNqcNXyh8F4WSkJUjzVXK7h9olWXgcgfjEjNfBdA0MmXOGokjW39rV3PEWSLQyFSoOTzThutlFq4xsq3iGfUgw971kfC7/wk/jv+3rOiyae5WqyUo076IZbqpvw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000130, 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 Wed, Oct 16, 2024 at 1:22=E2=80=AFAM Lorenzo Stoakes wrote: > > On Wed, Oct 16, 2024 at 01:16:15AM -0700, Suren Baghdasaryan wrote: > > 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 a= round? */ > > > > > + > > > > > + if (flags) > > > > > + *flags =3D file->f_flags; > > > > > + > > > > > + /* > > > > > + * If the user provides an fd output then it will handle = decrementing > > > > > + * 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... > > No probs :P just glad I didn't miss something in this series! > > Hey maybe a motivation to upstream some of this? ;) I wish... Without an upstream user the exports are not accepted upstream and unfortunately Android vendors often resist upstreaming their modules. > > > > > > > > > [snip]