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 08CE9C636D7 for ; Mon, 13 Feb 2023 07:00:14 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 81B686B0071; Mon, 13 Feb 2023 02:00:13 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 7CBBB6B0074; Mon, 13 Feb 2023 02:00:13 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6BABB6B0075; Mon, 13 Feb 2023 02:00:13 -0500 (EST) 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 5D2266B0071 for ; Mon, 13 Feb 2023 02:00:13 -0500 (EST) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 366F31C6BB3 for ; Mon, 13 Feb 2023 07:00:13 +0000 (UTC) X-FDA: 80461369506.24.81DA0EB Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com [66.111.4.25]) by imf26.hostedemail.com (Postfix) with ESMTP id 71274140005 for ; Mon, 13 Feb 2023 07:00:09 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=arndb.de header.s=fm3 header.b=pwbeMXK2; dkim=pass header.d=messagingengine.com header.s=fm1 header.b=eJ61mCKG; 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=1676271609; 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=MYUhSAwp6nJgwmtSsWCxNN4aifIdwOQy7DHsVCaQUmc=; b=QUVSHtPH08zPk+6a2/0H022kBDYv0IyiVr7nIc8KJEdI/6mBmjZ/VfnzkS+oGf/HEjMFso gHb5UemX7wF34gLNWypiJscJpC5UsbSvHBXXNZlBxRECWPo4B+XSsIF9IqKDjylBKi1Sdz VYV5GRBr2Ard+AsrlWriQ+6CsCYaSGA= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=arndb.de header.s=fm3 header.b=pwbeMXK2; dkim=pass header.d=messagingengine.com header.s=fm1 header.b=eJ61mCKG; 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=1676271609; a=rsa-sha256; cv=none; b=6eqfo+kRINumlrKC3ffLnEhNXEX7TQYIB58Y8hWOvZCb2GxmpN8F0GUlPA+OI1xfUa2ZZY 0J3oa61KEEkmVwvG6IfLTJbaZpV0YQPhRw0sFioj/tJ8njtZuIIGItDa88A+ujlMiAnzXv FNMW5EYi8WfF/RW1XNpqJ2LJ3IEUbD8= Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id C7B495C0113; Mon, 13 Feb 2023 02:00:08 -0500 (EST) Received: from imap51 ([10.202.2.101]) by compute6.internal (MEProxy); Mon, 13 Feb 2023 02:00:08 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arndb.de; h=cc :cc: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=fm3; t=1676271608; x=1676358008; bh=MYUhSAwp6n JgwmtSsWCxNN4aifIdwOQy7DHsVCaQUmc=; b=pwbeMXK2JIaejs3NfA1C33stmx bPPtO+OnYD3GWAEolZGQP1vbxQnTIAjBpRRVIal68apAQv9I7qtJj4dcsXEmf7PI Uz0hWokK2LQbYL7wy289RlwoMXqMbRhtPIKNGKMLpHRtrQWf8/S/zg7OncATv/Kx qOeHiAjiVXmeP4vPdFZzM6GbIq+N5Rvy449MnVtJ+3Dyr2G+1n7/69l0GcoYFLo1 aS7tTZ7TDrwJrr4ZA1xp/YQ3/K3WCf1VQSm8HUYhYY0765OBgm630+/nPZHzI3SE so3tN6hpcDWKTpksOXoCBSzzU1NlJJrqrhlh0JDNx6VGSb/mNTQMka+EAAQw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc: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= fm1; t=1676271608; x=1676358008; bh=MYUhSAwp6nJgwmtSsWCxNN4aifId wOQy7DHsVCaQUmc=; b=eJ61mCKGo43fuBwMWnjDdu7AmtpD6lE3eVIddHrwj9AT qNWM28a58XeGQzKAyyeoAXvEPhTnCbtwmomnSdQ4KhzMiRh3yMsfik9EPvPgA/+r RWOGI/0V2qWKPhEUceMva4u6yJGpBkZUOZyfuEjIl4zsdnrl+2TGXjJx6G/qkGGf H8+64MOXPNpOo4ak+3TqyEBTMrWAZiHCU0Tuo52i2TVajplElYszxBURIFh8xoPo VOUuZlnrp9bkq4irzAIHLmRVRsHx6DsCB/0HJIURyjZ9gUMjQJpzXUFF7yGKFZHa P6BjQFmYCYT2gjdnSHvEeBw7Q+irUzWgI+M6G5XVew== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrudeitddguddtudcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecunecujfgurhepofgfggfkjghffffhvfevufgtse httdertderredtnecuhfhrohhmpedftehrnhguuceuvghrghhmrghnnhdfuceorghrnhgu segrrhhnuggsrdguvgeqnecuggftrfgrthhtvghrnhepffehueegteeihfegtefhjefgtd eugfegjeelheejueethfefgeeghfektdekteffnecuvehluhhsthgvrhfuihiivgeptden ucfrrghrrghmpehmrghilhhfrhhomheprghrnhgusegrrhhnuggsrdguvg X-ME-Proxy: Feedback-ID: i56a14606:Fastmail Received: by mailuser.nyi.internal (Postfix, from userid 501) id 32E94B60089; Mon, 13 Feb 2023 02:00:08 -0500 (EST) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.9.0-alpha0-156-g081acc5ed5-fm-20230206.001-g081acc5e Mime-Version: 1.0 Message-Id: <3f70f54e-206f-438e-9ef4-2cd514d3a690@app.fastmail.com> In-Reply-To: References: <20230203190413.2559707-1-nphamcs@gmail.com> <20230203190413.2559707-3-nphamcs@gmail.com> <834254e6-a9c2-440c-9c67-fc5fa5ca43bc@app.fastmail.com> Date: Mon, 13 Feb 2023 08:00:06 +0100 From: "Arnd Bergmann" To: "Nhat Pham" Cc: "Andrew Morton" , "Johannes Weiner" , "Matthew Wilcox" , bfoster@redhat.com, kernel-team@meta.com, linux-api@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH v9 2/3] cachestat: implement cachestat syscall Content-Type: text/plain X-Rspamd-Queue-Id: 71274140005 X-Rspamd-Server: rspam09 X-Rspam-User: X-Stat-Signature: 6j88cikrrw48bqk3au55ciupzt7dcap4 X-HE-Tag: 1676271609-791502 X-HE-Meta: U2FsdGVkX18jdqaN56e46Q+EG2fkK3Mp6ErRtKKuIFiSEzlViwb2kZTajmCkJ7diJV9G6N85cbiXMihpfBZKeDQMQSh6gO0Hi5U/m/wdvkSPAmU5GO42Kww9GLStQXKVskqWzY7FikvgmIqk2xLvMsH9UVDdUEJD4lwYH4u98zPlAsC4aTT6+o27pHtU3blNLwpQwQ0Cpa/cPl78TDslZCW1Xb4jURW+IttBsOk6mN/+F/uCiWLhUjZbWskQ5iNLkGJnhLJb1z158GcjnvvTld020mUTY8J6FH0bQUODeG+45RVFSo0ty8nQlM/tHfzX1LpQ1na6Fm7YuMgNDJ4crjOCEAJP6lnMDyRoIMDPM7Ad6o/f+RnAZIvvPge7Dli4137lSEeFYvsCu/adn2k9IClxge98lMDrjAudbGCU4yA0U66ZwpqRjHk7zRznbb2Ow8OVcAzKxe2Rckkcp9N/4sSjJg5QLtWuetfzeKcQEFDbHLBPJQ2DWCmuB8B3Ux4ZuEmlZ4EmHPBKXdNxM/yC8RCMmJjtNmRbALI5CvU8zWFzSy3OpmJKHEBN5Kveoj3nGfO8nfCK5AEA2ZZf4yBtdWFuYBWdgCKzs1TWbYisHp39lJFA0j+NcvZXt8e8/NeSRjDxc4JbXGyO1tlYgp3NwD5nmwYNKt6sYpU3Hfi8KMLXPC+V9TVxy0H/FfPrAIn0ShzrDZ2VCoBzNZyrqbQosh2X+GoYOvAxZXxXPqFi7jQfWvl86pbRudjfRmVjsr4TzR/bnigDN6Tq1LBK+0uPLs3ZMXNab+ZNLVjAu0E9HRRC7uB94KpoateVpuPX1g2TOe9eXJ0kIvQ8suMizfAxiYlThelker1gAyo7OecOzd7PdBmCOiKfPwDBoGmQiFRp+kW68KzZyo2Nqljz4KyB+xgj90c0Ywg05ww8WfcIOd0fQoUTq5FuWjZJ2eNYm4XtyVLkMtbbcGMIdcw/tZI Al65fY1S pSNt8YbUf+8WJdfKYx6M0oxF3IhgXgkN3X8ytlvJORDgYga013+c2+SRdrfMABQM0QjxgYkIV7wN7LUSKyQn7ml7qhE/kgBJGKOp4D8Hb4FSwc6IP6MrGlWt2ywvpcxy5dD3ttFzMtwI7ypC55OlWlARa+w== 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 Sun, Feb 12, 2023, at 07:58, Nhat Pham wrote: > On Sun, Feb 5, 2023 at 4:56 PM Arnd Bergmann wrote: >> On Fri, Feb 3, 2023, at 20:04, Nhat Pham wrote: >> >> > +SYSCALL_DEFINE5(cachestat, unsigned int, fd, loff_t, off, size_t, len, >> > + struct cachestat __user *, cstat, unsigned int, flags) >> > +{ >> > + return ksys_cachestat(fd, off, len, cstat, flags); >> > +} >> > + >> > +#ifdef CONFIG_COMPAT >> > +COMPAT_SYSCALL_DEFINE6(cachestat, unsigned int, fd, >> > compat_arg_u64_dual(off), >> > + size_t, len, struct cachestat __user *, cstat, unsigned int, flags) >> > +{ >> > + return ksys_cachestat(fd, compat_arg_u64_glue(off), len, cstat, >> > flags); >> > +} >> >> This still looks wrong to me, as this compat definition does not match >> the native variant on architectures that require 64-bit arguments to >> be passed in aligned register pairs, such as arm, mips or ppc, but >> not x86, s390 or riscv. > > Oh I see - thanks for pointing that out! And the last bit means this > is a non-issue for x86, s390 or riscv right? Right. It still requires the separate compat entry point that we generally try to avoid for new syscalls, but it's probably still better than passing the offset through a pointer. > And iirc from the last thread, this is fixable via a simple reordering > of the args in order to properly align the 64-bit arguments, for e.g: > > SYSCALL_DEFINE5(cachestat, loff_t, off, unsigned int, fd, size_t, len, > struct cachestat __user *, cstat, unsigned int, flags) > > ... > > COMPAT_SYSCALL_DEFINE6(cachestat, compat_arg_u64_dual(off), > unsigned int, fd, size_t, len, struct cachestat __user *, cstat, > unsigned int, flags) > > > It looks a bit odd to me that fd is not the first argument, but perhaps this > is an acceptable sacrifice to avoid unused arg and keep the flags... > > Let me know what you think about this! Right, this should work. You can also move the offset to the third or fifth argument in order to keep the fd one first. I would actually like to change all the syscalls that have loff_t arguments to have explicit '64-bit' and '32-bit' versions rather than 'native' and 'compat', to make it more obvious what is going on even on the architectures that have no 64-bit variant. That is something to do later though, you should definitely keep doing this the same way we do for all other syscalls. Arnd