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 8C59FC0218A for ; Thu, 30 Jan 2025 23:11:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EDC88280074; Thu, 30 Jan 2025 18:11:08 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E8CC7280070; Thu, 30 Jan 2025 18:11:08 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D7B3C280074; Thu, 30 Jan 2025 18:11:08 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id B8A39280070 for ; Thu, 30 Jan 2025 18:11:08 -0500 (EST) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 67906160360 for ; Thu, 30 Jan 2025 23:11:08 +0000 (UTC) X-FDA: 83065665816.02.0B75C4B Received: from mail-vs1-f48.google.com (mail-vs1-f48.google.com [209.85.217.48]) by imf06.hostedemail.com (Postfix) with ESMTP id 8866A180007 for ; Thu, 30 Jan 2025 23:11:06 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=f9FYtMI0; spf=pass (imf06.hostedemail.com: domain of pedro.falcato@gmail.com designates 209.85.217.48 as permitted sender) smtp.mailfrom=pedro.falcato@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=1738278666; 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=znFKl7btryDHSHgPOHjNvbE4o0Vi9WBPek7/nfXpsCI=; b=i9HBa/DQeNDEcoBxry+Gs138UI59hoo6xRrZJ4NwaXw7UUwoh8+HhRzoPejz3aOI1XKaQi EHTVfJ3lv/KNyqm1Di/RY81GNTg6DVBK1xzL2Fh4GdvU7QuGecXNbgqYbM9mmWOV7mbL6Y ObSCX02XCGflH8YV5GdtvGQzJwricS4= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738278666; a=rsa-sha256; cv=none; b=Ko4GAV7Z+4OrT/rNFvJMjc+JGM7y0SUWTmZeQjgIHDXBtk4yWUqdhdJnxRXkEHjktPCExr u4cyCAFRAqUAPNZtVHX6VB0oAx8D+AfjodAuGK2kIfBHlhlJ4B6VvTm3uRNTrdVTYJRqYD UpGIVqpsmCDQypJM+ARHXBEG3An0EUo= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=f9FYtMI0; spf=pass (imf06.hostedemail.com: domain of pedro.falcato@gmail.com designates 209.85.217.48 as permitted sender) smtp.mailfrom=pedro.falcato@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-vs1-f48.google.com with SMTP id ada2fe7eead31-4b60c221587so799222137.3 for ; Thu, 30 Jan 2025 15:11:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738278665; x=1738883465; 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=znFKl7btryDHSHgPOHjNvbE4o0Vi9WBPek7/nfXpsCI=; b=f9FYtMI08RBGB62Lyajpi/C4gaDbjBGhfxOz/0JwtyXbRcpv9qzt4wX0d0tDnLEQXd dNOYqPDlDfMIw64Mv1wsitVUz/DQsF52KiFAyStM2SFmIDGrHphVV/JSlFE91iU2lvvA BA7HOwyAYsBO6f0XliZvQ+N7kFjdZXLqqiuO2bpnhrc/lieOHMjPZh9hJacZwGaf6Ijg Cl94YavvvPB+L+NCvbkr5IwPvzVUKkIdkTIw4DMOgwmkh7mpGK0kgqKgzRUOrQKVSTps O2BU+C4EtUuaUxoEvWQN22Zhw/dXJ6WtPvvKwh/8qS3fbjMBTDLy/Z9RIU94x6uvRPu3 8tYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738278665; x=1738883465; 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=znFKl7btryDHSHgPOHjNvbE4o0Vi9WBPek7/nfXpsCI=; b=dqVYtrZ2kJvbtY5q1NuqODl5I9ldEb/Mtf0+QUEzJANTakdXLrlllUksZXW8gFvtms ndUK2zWb3+q5at/MgmJbLddS8iBLioQJe9ke0F8E8PFYH+GnR1OEue2HRFMm4Y+K8FYv nm2pU9ZlDybEmm4PQiSSu2T63iR50Jg86+6kaazTfuHyk57G76b6SNQspRLAqiDro5Xi qd2WytZjQFO7peA+9cGwKgFbaVtDKL4e7l+ZrSBuaSr4eov+YqRV7nIzGGgiW7xMaqCJ Jf/jheSD8gS6e7MV45GrPmorr1eWlNiuw2vYQk+VeDeEvQZ9KDUADQ5g+vI4y4iQq74U 4jHw== X-Forwarded-Encrypted: i=1; AJvYcCVBBMD5EtIqUr5mCn6LJl6N4cJdDxuTnE5Sh4Cg8FQnS3hOOXaLfggYKIIv3z4E0XMBivE6q/fVnQ==@kvack.org X-Gm-Message-State: AOJu0YwAEqxm7ux3561CLFkgYlMtJ6qrfVOv82BOLPki8XNSn86d+Mp9 z+Yi+yy/8coIXBObL21Qz2Y+crp+GivrJDOI9Su9DpmYky/1AO857ywjGY/WQyfAco1STLRqNEa J2frk1fP4ZhSQIZQolX22eCFYsnA= X-Gm-Gg: ASbGncv8UW8YjnT9/UzbKsP/wXhVyoDttvs9brJuQIC8+EBQdV29AGUjGt734x+Npeg tRXFkP3RW+eaUP00yNYYjYNbu4V0mPfLHvD8L7KxrnIBLN+rjt68Px3gq1+keGvLSpo4FN1V9hx di6kvbsAo2tSI6igVf8+QMKep16D0v X-Google-Smtp-Source: AGHT+IH321PwJ0JRe/TSN6Zq0CSS5XUFlEth0ZB5Qv/4uCWWpKVwiJAOQGxksILWCWGFRbYS1xxOd6AMeabTzOckwZI= X-Received: by 2002:a05:6102:800e:b0:4b2:5d10:58f2 with SMTP id ada2fe7eead31-4b9a4fc15bdmr8330026137.14.1738278665572; Thu, 30 Jan 2025 15:11:05 -0800 (PST) MIME-Version: 1.0 References: <20250130143754.1b8bb87bfb15175dd434529b@linux-foundation.org> In-Reply-To: From: Pedro Falcato Date: Thu, 30 Jan 2025 23:10:53 +0000 X-Gm-Features: AWEUYZnZZOqxt2g398Nfl9bIz1LO0I91OZyVTPzRfWiKq3aimpDNM3XoQZ6Iau4 Message-ID: Subject: Re: [PATCH v7 0/6] introduce PIDFD_SELF* sentinels To: Lorenzo Stoakes Cc: Andrew Morton , Christian Brauner , Shuah Khan , "Liam R . Howlett" , Suren Baghdasaryan , Vlastimil Babka , linux-kselftest@vger.kernel.org, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, linux-api@vger.kernel.org, linux-kernel@vger.kernel.org, Oliver Sang , John Hubbard , Tejun Heo , Johannes Weiner , Michal Koutny , Shakeel Butt Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 8866A180007 X-Stat-Signature: um6fc1wmg3x5ts5wny7yk9oy8wubj1qa X-Rspam-User: X-Rspamd-Server: rspam12 X-HE-Tag: 1738278666-951284 X-HE-Meta: U2FsdGVkX18Fc4N7Ii1tUPsXHG49uZXWUCT7+AFkNntv9T+mYpBXhWYui2zPwfg7p7JYLwZlGldP6B5f+BYR7pGRfQXlhI2SXmvPhqDauZRfsVpGMUMtZ28pzs1TF6lr9kY/ly/FN9eaYVj9Zo2wNdK0JjO3QWjI++xg6QZYj5tHMwUy62zIJAe6uTEyR5xoWDp3zw3ExrNP9wnA5AqW0iPcHewG+Na0iK0VB/iMT3pm6r27aiTU4jNzTYGrmhYgjLJV7UiNGuveLuoaNFIbFMtTHK8QpyDy0EmVKZZ5yIB4MYeyoBuZwKzuyWIOEl6gclxeps0C3PovrnWSUnwJwaoHy34LUdtZzsUAJeHczWuJwbUBBSTae09jzYV5eu3K97yqli6qaHRU7CQ3zgwpHiGTb7uU4P6tnYfk8SwbqEu2QpVFhv/4eim7FNg1hFcwV7KpaiEk5IYUPH7Z6Uawid7Z3PRmgW3YSKKysCiIszDo7YwnINHeUjh1ebcLxV/DdFKh+ve5PFKuEPNHRUnd2VdS8aukNJ5slEec9Vtxn5GAmj6Ux//6I1UPhpa2BR9EdsWdO/K4RONLq1S8zfVA4NlUzy+or6+so3O7iDBa8JVn/hQ8/zojociOt0wTlK7hf9bzGBCKdBEA3Kgg4xEDCMPjIQ3Z+6AgFocygSAIS15LUgT16lbLuVgBHNMfIryrldLsPjrLrwsH3VzpF1OwraHeE0BpnT57qvKdrYp7TeiDFadv1n26rgFwh2y6QXAKYDq1JK11Tw+sa0NdrCZSR3PWui3DmmATuyJrquyhzH8oi3wPntru98LIH66SJXahbgdoI3tCE8WV6DCC18Ms+FzpUcjfMSEROm0tUsuPcc9bJ01+2GUfSn/Mb6Yi7fUb6w/10vCfpUaZ2s/HOUwdXODQ6iDXV5bPJquwdfGFTT+JQZpJ8apB1z29ksmfS8eA2Xp9J75PKPaHp675o+d L0hAJy5n QQA1EDlsOuqXfzFu7mukl/vTEwR9omSg3jvux/3gxJEV5YH7cifCI4GjGAT/eTttxieUQ71Qxa7epCKfVVnaqY+Gs8T/etPQ/qigBiLthKgPpJAlC6HEH5N4qAL089VhvROfMIOYpMuxGtCBq+HK8J2G09/5nH4hZeMg8uez/z4Gvm2iimpNWqhqyjbvb3BPYLFa0vS9p2p3azK9MaTAsowqywxUERFF8g9qlEiOhr5Isob51YND+v4k9zltufD0QYcUjdgDkKVmrJ9jEVyZ6TO4PlPrQu5nUDjFxt8hI69qLjthVmtEijP8KOXxyKFwG0Ff0MXb/PSQ3j1dYCL4qRI+7gUfy1IjZ09PwOBZoOrV2sJznYE/CKQ3hzoc8G5MUxJr1O06JukgqX7iZH4zHoTLHpNHwdAEo4sHYpWsa70WKol8= X-Bogosity: Ham, tests=bogofilter, spamicity=0.205176, 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 Thu, Jan 30, 2025 at 10:53=E2=80=AFPM Lorenzo Stoakes wrote: > > On Thu, Jan 30, 2025 at 02:37:54PM -0800, Andrew Morton wrote: > > On Thu, 30 Jan 2025 20:40:25 +0000 Lorenzo Stoakes wrote: > > > > > If you wish to utilise a pidfd interface to refer to the current proc= ess or > > > thread it is rather cumbersome, requiring something like: > > > > > > int pidfd =3D pidfd_open(getpid(), 0 or PIDFD_THREAD); > > > > > > ... > > > > > > close(pidfd); > > > > > > Or the equivalent call opening /proc/self. It is more convenient to u= se a > > > sentinel value to indicate to an interface that accepts a pidfd that = we > > > simply wish to refer to the current process thread. > > > > > > > The above code sequence doesn't seem at all onerous. I'm not > > understanding why it's worth altering the kernel to permit this little > > shortcut? > > In practice it adds quite a bit of overhead for something that whatever > mechanism is using the pidfd can avoid. > > It was specifically intended for a real case of utilising > process_madvise(), using the newly extended ability to batch _any_ > madvise() operations for the current process, like: > > if (process_madvise(PIDFD_SELF, iovec, 10, MADV_GUARD_INSTALL, 0)= ) { > ... error handling ... > } > > vs. > > pid_t pid =3D getpid(); > int pidfd =3D pidfd_open(pid, PIDFD_THREAD); > > if (pidfd < 0) { > ... error handling ... > } > > if (process_madvise(PIDFD_SELF, iovec, 10, MADV_GUARD_INSTALL, 0)= ) { > ... cleanup pidfd ... > ... error handling ... > } > > ... > > ... cleanup pidfd ... > > So in practice, it's actually a lot more ceremony and noise. Suren has be= en > working with this code in practice and found this to be useful. It's also nice to add that people on the libc/allocator side should also appreciate skipping pidfd_open's reliability concerns (mostly, that RLIMIT_NOFILE Should Not(tm) ever affect thread spawning or a malloc[1]). Besides the big syscall reduction and nice speedup, that is. [1] whether this is the already case is an exercise left to the reader, but at the very least we should not add onto existing problems --=20 Pedro