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 35E9DC38142 for ; Fri, 27 Jan 2023 20:30:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 720366B0078; Fri, 27 Jan 2023 15:30:36 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6A9866B007B; Fri, 27 Jan 2023 15:30:36 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 522646B007D; Fri, 27 Jan 2023 15:30:36 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 3CE486B0078 for ; Fri, 27 Jan 2023 15:30:36 -0500 (EST) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 0AD1E1C60FD for ; Fri, 27 Jan 2023 20:30:36 +0000 (UTC) X-FDA: 80401722072.13.C3B5280 Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com [66.111.4.26]) by imf14.hostedemail.com (Postfix) with ESMTP id 1B74F100014 for ; Fri, 27 Jan 2023 20:30:25 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=arndb.de header.s=fm2 header.b=HYmH0QcR; dkim=pass header.d=messagingengine.com header.s=fm3 header.b=YMo8npnV; spf=pass (imf14.hostedemail.com: domain of arnd@arndb.de designates 66.111.4.26 as permitted sender) smtp.mailfrom=arnd@arndb.de; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1674851429; 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=nsKMujgHaLY06Z60XDpE/49QHk0wefW3Lo/F1Xp7zUM=; b=qLodTMBicYr8jIKGw2UAPKpTvSq5kHEycHGOp8deT49EUyz5JIMzzFpbJntUrA/0Hz44CQ 3uGsltZ79JEPBGBLirVtpCN24tdCxDi2tR4l+XtSM91//qzbe+VqYJ2YZDNkUuZf8TCUWg ELiW9H0qHHFiMO0hlaiQBe50YgOBUG8= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=arndb.de header.s=fm2 header.b=HYmH0QcR; dkim=pass header.d=messagingengine.com header.s=fm3 header.b=YMo8npnV; spf=pass (imf14.hostedemail.com: domain of arnd@arndb.de designates 66.111.4.26 as permitted sender) smtp.mailfrom=arnd@arndb.de; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1674851429; a=rsa-sha256; cv=none; b=lPer/iDHlUy6gHE7i6InU59Dh/AgHuQeXNUJr/sJ0lXErMGrmurpY97NCEmkz+AGTDhRPJ spCijigqIIprXvdZhyyDV//nax5QTPKbPUcNfSOOS5woOsH7mLyjJ+/JGIEKCJSo/jPI8G ZxpWmcGS/Alt0j4E/iLgZIz+zeq6Khg= Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id 5ED415C01A8; Fri, 27 Jan 2023 15:30:08 -0500 (EST) Received: from imap51 ([10.202.2.101]) by compute6.internal (MEProxy); Fri, 27 Jan 2023 15:30: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=fm2; t=1674851408; x=1674937808; bh=nsKMujgHaL Y06Z60XDpE/49QHk0wefW3Lo/F1Xp7zUM=; b=HYmH0QcR3/psxkBhw/EvTML6hq 0Pd/OBAtd8I19c/COnq5q+qaLRSSB1T1IpY0ChCtx5uMrN+ORzFynxWf2CrioiKC ITaJWEPjNs9lrnGrN/66KSqrVlBjbnAXQl1TFIRaqjljM9SWhh5Fwcest3HMZwCL l/PxWiKD3oUQAXk/vcJQXe8qjV1AGgXX7hzsgzgusJSN6yQ8735ZugCC7Xt8jqwa zik/nhOUACV2FCT9CqbLAaKWWPxf/NprfbVX4sdvLqJhuI4O5PYGMO5cXSF/ip0P 1TJuwA9yKi1AeqkbVw5YjeqFe8Pq96a/MjB1dAim9w9UTT0DumbxEvGWdH3A== 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= fm3; t=1674851408; x=1674937808; bh=nsKMujgHaLY06Z60XDpE/49QHk0w efW3Lo/F1Xp7zUM=; b=YMo8npnV8lH5He9UCVqTG4ts1Mfe7ZkfgOOYZ8NTxhkA FBIGM7ncQeToyt8tRxwBYTy2Tam83W6RY/v9TSx1sDxBvy1BaV9HDxBuTsrs4SV/ jkpmq+FnyXo01fD4DDAiUUprCTDaE364HyslOTvZgdsmKVIUxmWsthCs9FKRcvY8 b0j81RMWpMwR4QqjKRmlUyDazvhVoRlR7qevhjXSPs+DtLKZ12eS+r1FS/ZTbCPV MkyOYqKYgvz6eUEYrrvYBIAS/SLr4n6JABW0iAz2z67uv9q9OjoqRqGSMeuxsCww 7IdirA2qTAYj5h+1dGcY8u5I6Hz+bCVw6xKG/Tneiw== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedruddviedgudefkecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecunecujfgurhepofgfggfkjghffffhvfevufgtse httdertderredtnecuhfhrohhmpedftehrnhguuceuvghrghhmrghnnhdfuceorghrnhgu segrrhhnuggsrdguvgeqnecuggftrfgrthhtvghrnhepffehueegteeihfegtefhjefgtd eugfegjeelheejueethfefgeeghfektdekteffnecuvehluhhsthgvrhfuihiivgeptden ucfrrghrrghmpehmrghilhhfrhhomheprghrnhgusegrrhhnuggsrdguvg X-ME-Proxy: Feedback-ID: i56a14606:Fastmail Received: by mailuser.nyi.internal (Postfix, from userid 501) id AE676B60086; Fri, 27 Jan 2023 15:30:07 -0500 (EST) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.9.0-alpha0-85-gd6d859e0cf-fm-20230116.001-gd6d859e0 Mime-Version: 1.0 Message-Id: <12e9afc8-cec4-4fce-ad81-09790cbe3938@app.fastmail.com> In-Reply-To: References: <20230126175356.1582123-1-nphamcs@gmail.com> <20230126175356.1582123-3-nphamcs@gmail.com> <54c8ecbd-1d6e-40f1-af30-7efd04c63a7e@app.fastmail.com> Date: Fri, 27 Jan 2023 21:29:47 +0100 From: "Arnd Bergmann" To: "Johannes Weiner" Cc: "Nhat Pham" , "Andrew Morton" , linux-mm@kvack.org, linux-kernel@vger.kernel.org, bfoster@redhat.com, "Matthew Wilcox" , linux-api@vger.kernel.org, kernel-team@meta.com Subject: Re: [PATCH v8 2/3] cachestat: implement cachestat syscall Content-Type: text/plain X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 1B74F100014 X-Rspam-User: X-Stat-Signature: o6gp61cgb6631mncsm9j56aegnqiyunu X-HE-Tag: 1674851425-136399 X-HE-Meta: U2FsdGVkX1+DrNVWsCTU3n1Nn9Ym7IHw4B1yE2olACv4lQq7XItcSdXfXlrnkGv6+oOUsh15sdWX6E/hK7az/r8oGDkN/mzJQB/osPASNbmvyG7IWkgGQjGgNpG2XT0JyVgPWZqGmkWymqbU37yJgLgGDydH3XImK5H86Q2lyZmlFb7A3kyUVaVYhKSgPFu7wzKHtWueMwc4Vbr2O2bXGSkdnQhfTD95zPs2/GAZsQNUAJMuBVCjyFH2PQFdaa7S0Z4OWTk51dWScrgbP0hoeJushi0pl39wkoaMOr7NtzDh9zmEvm6KSJRxdJzf03PrhLd1wYbZPYV2ItNofWv7gGWZ8hx88EvDn18YjmRMieXl2mWRpXdhcj2RduPxsXITgkFYZSgr6DsgnYrRH4CQ3K1zn10IwcEZNmXQqgVxN64sdEqjDYs4RHHzrupCDiu8Ew33lKZMNC9iUU93atA44o8pLtkymkXaR31NHlSpeLqc5kOJ5WMbaIDL3b1UFz3Y2juvtWlUKD1H7YWJYXi4hKMBlmek93u7/hfcWgJcCGyM/x5UE3hISTiO6i5i0bfT37R5hYm1jWxwQhsdIOhrTqc44SYL4UMiS8M2MEALwTL0KEdEhY8FiqOBq/wTw2whJ4n2fWev1sMlJwCWJrGPlzHVhGgtxG9IAw2PcESbHWk9UrfnRQBO6Pb06yZXYdy+DJ9ug28UXXjcjTzNXzqG34eL0Amf22KiUs+CxKg2ljZooXi33evMUWMLl5ziR7APgKm6MjwMRAKpRH3zvT/fC/ZITiu9pnbjduTEeeotPsDMifu20/oL2B23CXfa0v0zRSXQZXGo4FiwWuIzR+jk+wuL513XxVY0y7En0qeqHY4coOc1mNZ/TFPI5xfp1oMf5qM0zZmhFE7WUe3Alk3BUTcsMyPLvH9yv67GKa8ID7vwTV9efkA2K6+cqSbObEXOR6MFH0fKLoclLNUvmut tjUrVmQ9 N8sWxt1k2zvMq4gX6THuiraA4eENynk4slJSmxWlpAnJLQdKwKQCY/5JRy6fN2IcIaJ//xbXy8sZndy7psTg2YifIE7fjxJ4ShWA2JZMMTxt6w7SLIDA9PveXz62YXdzYsZtqa4BRMfgMRcGttUS453fjTG+udY0AD2V6pDgUMyDxIhyR/OO22VqErHoF2eEnSW51uPD5rZ2ZT4Kbbd4IgozLBjOzq+A4AZtsAoWJWJ+XIaQjQtvUFPmyHCkh+eeDNI7fQo79XDfd9eKooncT+ecy3ITwp/TAedeThmPy3VogbqkKiN7dA2gCSZ2BK0SaQt6501CB2/K5Rwc= 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, Jan 27, 2023, at 20:46, Johannes Weiner wrote: > On Fri, Jan 27, 2023 at 04:46:38PM +0100, Arnd Bergmann wrote: >> >> - if you make it a 32-bit type, this breaks calling it from >> normal userspace that defines off_t as a 64-bit type >> >> - if you change it to a 64-bit loff_t, there are three >> separate calling conventions for 64-bit, 32-bit with >> aligned register pairs and other 32-bit, plus you >> exceed the usual limit of six system call arguments > > That's a good point, thanks for raising it, Arnd. > >> A separate problem may be the cstat_version argument, usually >> we don't use interface versions but instead use a new >> system call number if something changes in an incompatible >> way. > > I suppose from a userspace POV, a version argument vs calling a > separate syscall doesn't make much of a difference. So going with > loff_t and dropping cstat_version seems like a sensible way forward. > > As an added bonus, versioning the syscall itself means the signature > can change in v2. This allows dropping the unused flags arg for now. > > That would leave it at: > > int cachestat(unsigned int, loff_t, size_t len, struct cachestat *cstat); There is still a problem of incompatible calling conventions: on architectures that require even/odd register pairs, this would end up like int cachestat(unsigned int, long unused, u32 off_low, u32 off_high, size_t len, struct cachestat *cstat); A more portable way to do this would be to pass the offset by reference, but that makes it a bit awkward in userspace. Or the arguments could be rearranged to put the low/high argument pair first/second, third/fourth or fifth/sixth argument, at least on the kernel ABI to avoid having another situation like sys_arm_fadvise64_64. > and should we ever require extensions - new fields, flags - they would > come through a new cachestat2(). > > Would anybody have objections to that? If there is room for another argument, I would keep the 'flags' as a way for extending in a compatible way, that is pretty standard now, just not flags plus version. Arnd