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 0C099C001B0 for ; Mon, 7 Aug 2023 19:06:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 800206B0072; Mon, 7 Aug 2023 15:06:02 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7B0F36B0074; Mon, 7 Aug 2023 15:06:02 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6786C6B0075; Mon, 7 Aug 2023 15:06:02 -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 591F66B0072 for ; Mon, 7 Aug 2023 15:06:02 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 21C5D1A0BB7 for ; Mon, 7 Aug 2023 19:06:02 +0000 (UTC) X-FDA: 81098238564.09.FC31782 Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) by imf28.hostedemail.com (Postfix) with ESMTP id 69300C0021 for ; Mon, 7 Aug 2023 19:06:00 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=linutronix.de header.s=2020 header.b=gj3nH2fk; dkim=pass header.d=linutronix.de header.s=2020e header.b=cg24wm8Z; spf=pass (imf28.hostedemail.com: domain of tglx@linutronix.de designates 193.142.43.55 as permitted sender) smtp.mailfrom=tglx@linutronix.de; dmarc=pass (policy=none) header.from=linutronix.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1691435160; 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=XE+xkxc7MqAeqi2WNOczKsEjs+HO24cEE9rzWwhJY/8=; b=Cwv4CbXtHtdCXVq2Z7RTpIoQY1ZPAfimaR9axhhzQyESThcZdn2r52C9tH0pkZ9G1b7CiY FTmwG4LZQ/zPx29ZUn3RfppyqEFF6fiWrtIHcbeKfmcTaxwlsniH13gpv52dVSmhCOlUMt 7/etPOJOhcBzdOGsj3Vawh3WX40g3H8= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1691435160; a=rsa-sha256; cv=none; b=2Hg/mBK/MZ+Bc8rfysnnn8Gw4nJ4kos5xC8UFGZpbf1bV55QhMskbfuuXh/T5WSunRlPIv ftNxiNXr81y0/iD/hZBO4vNNn2CGewaOyayDlt/18rr96adtlHKbUIJAFaVHVJ9yURSF/V crapJ9MMmPlHAwIMaoL/hDDulcjtnx0= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=linutronix.de header.s=2020 header.b=gj3nH2fk; dkim=pass header.d=linutronix.de header.s=2020e header.b=cg24wm8Z; spf=pass (imf28.hostedemail.com: domain of tglx@linutronix.de designates 193.142.43.55 as permitted sender) smtp.mailfrom=tglx@linutronix.de; dmarc=pass (policy=none) header.from=linutronix.de From: Thomas Gleixner DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1691435158; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=XE+xkxc7MqAeqi2WNOczKsEjs+HO24cEE9rzWwhJY/8=; b=gj3nH2fkJD6ThcHJcDddPqLTvYM1VNgj+38jw6QezNf5fAMN0NFjxgAHtzrQNntzafmhmc I2QsY2aQXRPaqMaHrb2M0hq9YH/yPkXNJM0RqFzCUYNAHIet4/d7J68eUgFzomIbaAxK/S vlv1d/K4ltnEhP4JF7vzKbEeWWCpxFqravmbbnDqCL/KwcGk9Kc69duc8x5F+2Xul5Cp4u hbOOM2lCEjvMTAIz95+yAOoPgD3U/Vc99ufeWbGroyogSsqgRWwaxoc+gMSMbuc6gEhfUT gmFRHvEgsTE1/f5vzO+8wBfbnwL7lkTYHydFZ4KsTMamtwVNykfdOrOTlqk1Kw== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1691435158; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=XE+xkxc7MqAeqi2WNOczKsEjs+HO24cEE9rzWwhJY/8=; b=cg24wm8ZuaKLMq6RUWNishxoPbqAtoBygzwGgzFZhlfN1ARCNFRh+/OhvpXAx2aTohFIlT /gDANCgZO6ir/PBg== To: Peter Zijlstra , axboe@kernel.dk Cc: linux-kernel@vger.kernel.org, peterz@infradead.org, mingo@redhat.com, dvhart@infradead.org, dave@stgolabs.net, andrealmeid@igalia.com, Andrew Morton , urezki@gmail.com, hch@infradead.org, lstoakes@gmail.com, Arnd Bergmann , linux-api@vger.kernel.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, malteskarupke@web.de, Geert Uytterhoeven Subject: Re: [PATCH v2 09/14] futex: Add sys_futex_requeue() In-Reply-To: <20230807123323.366498604@infradead.org> References: <20230807121843.710612856@infradead.org> <20230807123323.366498604@infradead.org> Date: Mon, 07 Aug 2023 21:05:58 +0200 Message-ID: <87il9qu0yx.ffs@tglx> MIME-Version: 1.0 Content-Type: text/plain X-Stat-Signature: 81tojij38zijmxrzz4b53ztscy68az9k X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 69300C0021 X-Rspam-User: X-HE-Tag: 1691435160-846249 X-HE-Meta: U2FsdGVkX19r95Zdirpc9CKgCdB+HwtJde+rpvZAgqOFgAlBeilChTAXKQT9JCY6lWBN54SGA/8UDoat8BLqwQsM1quIAYVxUQsa+gifwQAlezyYowb4HUtlllvjuFCN1+ZuZSTSBGl8lf4neuG3zexFXpEDxbkL/mxWzNfAFvTHMQajzz7H/VMfhLStqAa3ssE1+Pw2HIKx2onSYi66eDLjtKovQxxUDqPBAM2dvXK1jnFfFqJBR2qkX5ricn0P8r+ocL8wrFrT9Gd8uC4g2mlM5uzgoKTwke0RbU6OK42HE6H/0FuIKgrPp3jpMBMYZKUkE9IexwJXFbFG+lM5c1WnLtpZW8gUKx2SmPzJAodd9GYLrn2pQPa4qogKS1/6OcioO7821hb3V9XXsw3y3KxdHBvYVsexnqWj7OT4YbYXi0oQX8HpYgsLclZjGFPJTkMKJuw0uSLGtNZ3VE5/cCxPeTHApzcQtiVLvGPUr69LS65hfUPvA49XaZLXwUMIFz3mHbZeYWqEonOM1gP0aV/B6nd2gK7cxbf8LG5KRJs+NYH91DZIMqpn/UssZ3AiO+stXrUWIVzTGUyWseBaMUEPGGlUpDFbsCAkY5XX3TTBCLgmJ1Ce/4QABsXsH3FCcZg5eAS9UnQ7dW4f7EJqaFLfUy69xwBUQ24lCJ+KdmE7cRFoVLyRWfP8+H0tyInYIAh6Dz6PxY/toAKmONPIbO9Hxq7B8G6RVuAwnU+f5pwNQfZMV59kqGXg0n4yTL9dGj6ut1+CamMM3KerpdB98blu9ZuSe9VdG377zRNSQDaR70WKIWvM5aIMquEKaRtxmzXBCGaFSIGk3/bMHsk9xSlM7wCtelhas2m9+627C3/6X9xRLbkysoYz5XyABfNQokrt356HLCxLdBoSwuF+QpUj8pvzxUbghw0+7wYBOWlmY5hosYwltiPQKxzFCod3TQTjvOq7+rJraUGCyqd y7fuNnUy xTxVI11q1YAE4AQFcfZkhvPqMiTrSVm0i6Ivwe1F5fNktJbuy7Zzho3T6ErycZXy4EeDMx1g/iG0XxFzhegaOP7urxFNn+REhaEWM 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 Mon, Aug 07 2023 at 14:18, Peter Zijlstra wrote: > Finish of the 'simple' futex2 syscall group by adding s/of/off/ > sys_futex_requeue(). Unlike sys_futex_{wait,wake}() its arguments are > too numerous to fit into a regular syscall. As such, use struct > futex_waitv to pass the 'source' and 'destination' futexes to the > syscall. ... > +/* > + * sys_futex_requeue - Requeue a waiter from one futex to another > + * @waiters: array describing the source and destination futex > + * @flags: unused > + * @nr_wake: number of futexes to wake > + * @nr_requeue: number of futexes to requeue Tabular format please > + * > + * Identical to the traditional FUTEX_CMP_REQUEUE op, except it is part of the > + * futex2 family of calls. > + */ > + > +SYSCALL_DEFINE4(futex_requeue, > + struct futex_waitv __user *, waiters, > + unsigned int, flags, > + int, nr_wake, > + int, nr_requeue) > +{ > + struct futex_vector futexes[2]; > + u32 cmpval; > + int ret; > + > + if (flags) > + return -EINVAL; > + > + if (!waiters) > + return -EINVAL; > + > + ret = futex_parse_waitv(futexes, waiters, 2); > + if (ret) > + return ret; > + > + cmpval = futexes[0].w.val; > + > + return futex_requeue(u64_to_user_ptr(futexes[0].w.uaddr), futexes[0].w.flags, > + u64_to_user_ptr(futexes[1].w.uaddr), futexes[1].w.flags, > + nr_wake, nr_requeue, &cmpval, 0); > +} Reviewed-by: Thomas Gleixner