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 0251BC001DE for ; Fri, 14 Jul 2023 20:10:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6913C6B0071; Fri, 14 Jul 2023 16:10:48 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6412A6B0072; Fri, 14 Jul 2023 16:10:48 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5099C6B0074; Fri, 14 Jul 2023 16:10:48 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 446E66B0071 for ; Fri, 14 Jul 2023 16:10:48 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 207154038F for ; Fri, 14 Jul 2023 20:10:48 +0000 (UTC) X-FDA: 81011310576.22.C793EAE Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com [66.111.4.25]) by imf26.hostedemail.com (Postfix) with ESMTP id F3171140026 for ; Fri, 14 Jul 2023 20:10:45 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=arndb.de header.s=fm2 header.b=UiKsC+oQ; dkim=pass header.d=messagingengine.com header.s=fm3 header.b=CEpTsjWA; dmarc=none; spf=pass (imf26.hostedemail.com: domain of arnd@arndb.de designates 66.111.4.25 as permitted sender) smtp.mailfrom=arnd@arndb.de ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1689365446; a=rsa-sha256; cv=none; b=jkObrGfrunHi+eU+cE6adqFnqVRdDCE2tVCF48jYJvIFx1Elb6nEqI5Bm8+P6pi0ilxJlB bvbgBrT1H+LIImLG7ByQRoMJ+2nIusp4NX8WC5aBntBc68LXG10g8FDrcF8eadu0c3HIIp UDO6SsXYyTMqnBJmvCWQWKbKwZLr8JU= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=arndb.de header.s=fm2 header.b=UiKsC+oQ; dkim=pass header.d=messagingengine.com header.s=fm3 header.b=CEpTsjWA; dmarc=none; spf=pass (imf26.hostedemail.com: domain of arnd@arndb.de designates 66.111.4.25 as permitted sender) smtp.mailfrom=arnd@arndb.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1689365446; 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=gaPAQwdntztGOLiPMplHfdyiMwn46B6kS3SDmZfmT/c=; b=cAd9QD55PNhT31Nf7CnPQCv2jW93kUohUV5R+CWWVTS0xcgQvRxSOn6a/ME+TDWloGpmDE tHNJfnJh5pVPM1kUP5zwv7bN6F1CC5NiJduzwWgu13rwY0e/tkeNW83nXqhEDQx4dVa3a1 9Nj8+/Gj8oUNnP2gmLfjnQvOAM6jwnU= Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id 30F825C0079; Fri, 14 Jul 2023 16:10:45 -0400 (EDT) Received: from imap51 ([10.202.2.101]) by compute6.internal (MEProxy); Fri, 14 Jul 2023 16:10:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arndb.de; h=cc :cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:sender :subject:subject:to:to; s=fm2; t=1689365445; x=1689451845; bh=ga PAQwdntztGOLiPMplHfdyiMwn46B6kS3SDmZfmT/c=; b=UiKsC+oQ9U1WlYM6OM gjGTV5NlSKJ22DSJQxmr+HBVOSOGXloGZmwlhzDuax0qJokzwunmP/B0LXXBU+IB O5GHqtXClcmby/8dk1dOt0wDSE0YCwEdNKUw85M12ayhrJvwI/XFd7L8fB0r0KLW 6ppr3flC4Ohao7nTDQi4zDjOfZhI/he1yFCvFyLbPaI1cabqFLsnmA8R4B7xN5Kf st6Veg2HjO79Rmtw9ck4kxHWASjyJpi3VE0pP8UFCF5mFL+tXMZzJl8/3WXgBmhM rSWQsuu9g/6Ag5BiIk1+k9nd0WBulErAF1X6M1/QwMrnHYUrt4NAxO5IMdSQvwFx 12yg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm3; t=1689365445; x=1689451845; bh=gaPAQwdntztGO LiPMplHfdyiMwn46B6kS3SDmZfmT/c=; b=CEpTsjWAXMkWHu/nvKovCbJVDQqHv zREI/E6uIabljXUQ8ZBMe8VuLogoRgEpRyaXQz6qKWmHeLqZkNs1ieI/wwknAGcT QhbGPjoBnW67h8jwrl+z5PnArYZxRPB0JvQ62X76k77L0DCNXD+gUdeoTES4+zFL bx1yFpIovfcz0MXJak4v50wzu4iaIrYCDf/XN+vu4wIdTyz83PLUZdsTl2uicc/8 OgkJ+Qvl3fXHOAMjg2BLTFb4VVhqdHTl1qGVDS+2D3YyrlXPOekL7bHBDd8Xixrp 9LkzBLAGHWNvVMo/v7+aqnnsOXzEA+aJ9N3iNjhgReKxm622an0xo8kdg== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedviedrfeeigddugeeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepofgfggfkjghffffhvfevufgtsehttdertderredtnecuhfhrohhmpedftehr nhguuceuvghrghhmrghnnhdfuceorghrnhgusegrrhhnuggsrdguvgeqnecuggftrfgrth htvghrnhepffehueegteeihfegtefhjefgtdeugfegjeelheejueethfefgeeghfektdek teffnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomheprg hrnhgusegrrhhnuggsrdguvg X-ME-Proxy: Feedback-ID: i56a14606:Fastmail Received: by mailuser.nyi.internal (Postfix, from userid 501) id 9D4C8B60086; Fri, 14 Jul 2023 16:10:44 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.9.0-alpha0-531-gfdfa13a06d-fm-20230703.001-gfdfa13a0 Mime-Version: 1.0 Message-Id: In-Reply-To: <20230714144749.GA3261758@hirez.programming.kicks-ass.net> References: <20230714133859.305719029@infradead.org> <20230714141218.879715585@infradead.org> <20230714144749.GA3261758@hirez.programming.kicks-ass.net> Date: Fri, 14 Jul 2023 22:10:10 +0200 From: "Arnd Bergmann" To: "Peter Zijlstra" Cc: "Thomas Gleixner" , "Jens Axboe" , linux-kernel@vger.kernel.org, "Ingo Molnar" , "Darren Hart" , dave@stgolabs.net, andrealmeid@igalia.com, "Andrew Morton" , urezki@gmail.com, "Christoph Hellwig" , "Lorenzo Stoakes" , linux-api@vger.kernel.org, linux-mm@kvack.org, Linux-Arch , malteskarupke@web.de Subject: Re: [RFC][PATCH 04/10] futex: Add sys_futex_wake() Content-Type: text/plain X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: F3171140026 X-Stat-Signature: uhefyze83u9sxxrxjxmdmuxqwiees7rz X-HE-Tag: 1689365445-554925 X-HE-Meta: U2FsdGVkX1/3Ijv2TG7ANkwEHY/DNBUP7k/F9pvJUQ+zktiCxpQuuCQlyIaGk81Xv0iwlmMm74MfCYyu5dHkMGYwHIHgfYXy54rdPMrtqAKVaDjJAn39Jl4VOCdYMXgdem57JMdZlYHZq2XQIvOZAlspVJM+JemTKgwsTbdXZ5acOJpOo0VdBa7XZl9SWwV9EiwoZ6Ur+QL62Xg/9KCRPoq/TZUuBVcmwBwPO05K0s31/Rfvij/rIoc4NTWuRztPz4UC8rLZctGKp/Qk2JyoXaYHuLO+F9Ndt5lB9G9SVl23lNwQxU5gOcRFadBT7lPCfJ+S4hlG8CLfq/MnrJZOPtBYOXi+9c+UP0GyK7rrWrGARK+5EowohdCraQ4cuiKBToywmgTymZue03u15eRt7VOFMDbJWFEf6i7FHzKqyeUrwE0mGzpjnU3XnexTLAXzN2oLXF7Hz9Tat1HS5m7mVXITviMC7XQ67Ozj0+m5JJeKuJPIyeAtfo1PGK+7w94oBjDu+LjxtGNuW4XIrqzP3JoDQEy7zR+hKbpHytgNLWAQQINktLeWRxVl+7XWb1v68NQmPIkJ0I6BGERjY6WFcgCJ+7V7UX27o8WEg3VFPmpfu0FfPN9Lad6voAWm/ymhfa47UqqYxnfHCPn7fUDjw8JBp5V1PRlf64m1x8CxV73tBmgz1f13xOm/9CnZreTDnWeaL4mDEhYR47J+LhotkHPW5aoCoVS7Wuq82pdP5HNxn66KhnZ8A/HqlBkitOoQGct9SSlrx9c8LB2/q/Cu0LQG7r7jvbO/IjvHUu/i9QP/OtR97K37HP3DODDmzWy+D7LBm9gd9NBT4Y1PvbkNvmEw2r8Lx4eXqJ6xaU2g6qF7KhC/kCUWuMv8lOJtIZipGNbN2aYI/NbC0zHvr+y1agp/35WyVN7yXmkK07Exj8CXjhV4gAlUj+7lZ0aI68y+GFcb0y32227W7N5XjBz VJRtrlpP vxOHSGyUKqRFtN70V4G/Mz8MEdXZodzHNlmqTsUDlx19sTXSoFNZBHnuE+ttVWNMReJb8vigry1h2GxoDLim1f7c/cdAE75AEAqUHPe6eKF/4SImBLE2awmZryjFEgw3QWNJ5TQW0ZZRvZSUeu+e+6Jo5Ub9cm5ibCOcW8huroMlzygx3XBslNh/Lp6myVZHRBQ5a+2/CaTWz73LFtkq1NHULU1KgaMGjwWAw 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: On Fri, Jul 14, 2023, at 16:47, Peter Zijlstra wrote: > On Fri, Jul 14, 2023 at 04:26:45PM +0200, Arnd Bergmann wrote: >> On Fri, Jul 14, 2023, at 15:39, Peter Zijlstra wrote: >> > >> > +++ b/include/linux/syscalls.h >> > @@ -563,6 +563,9 @@ asmlinkage long sys_set_robust_list(stru >> > asmlinkage long sys_futex_waitv(struct futex_waitv *waiters, >> > unsigned int nr_futexes, unsigned int flags, >> > struct __kernel_timespec __user *timeout, clockid_t clockid); >> > + >> > +asmlinkage long sys_futex_wake(void __user *uaddr, int nr, unsigned >> > int flags, u64 mask); >> > + >> >> You can't really use 'u64' arguments in portable syscalls, it causes >> a couple of problems, both with defining the user space wrappers, >> and with compat mode. >> >> Variants that would work include: >> >> - using 'unsigned long' instead of 'u64' >> - passing 'mask' by reference, as in splice() >> - passing the mask in two u32-bit arguments like in llseek() >> >> Not sure if any of the above work for you. > > Durr, I was hoping they'd use register pairs, but yeah I can see how > that would be very hard to do in generic code. It kind of works to just use register pairs, the actual problem you run into here is that: - depending on the architecture, the register pairs need to be even/odd pairs, so there are two different ways that 32-bit architectures handle it - The compat handler needs to explicitly name the registers that are used, so to make your version above work correctly, we'd need three entry points, for native 64-bit, compat 32-bit odd/even pairs and compat 32-bit even/odd pairs. > Hurmph.. using 2 u32s is unfortunate on 64bit, while unsigned long > would limit 64bit futexes to 64bit machines (perhaps not too bad). > > Using unsigned long would help with the futex_wait() thing as well. > > I'll ponder things a bit. > > Obviously I only did build x86_64 ;-) I suspect that restricting the futexes to native work size is ok since many 32-bit architectures don't have 64-bit atomic instructions anyway (armv6k+ and i586tsc+ being the obvious exceptions), so userspace code that relies on it becomes nonportable. Arnd