Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757369AbbLAXfo (ORCPT ); Tue, 1 Dec 2015 18:35:44 -0500 Received: from mail-bn1on0093.outbound.protection.outlook.com ([157.56.110.93]:29236 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1757302AbbLAXfd (ORCPT ); Tue, 1 Dec 2015 18:35:33 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Yuri.Norov@caviumnetworks.com; Date: Wed, 2 Dec 2015 02:35:03 +0300 From: Yury Norov To: Arnd Bergmann CC: , , , , , , , , , , , , , , , , Subject: Re: [PATCH v6 14/19] arm64:ilp32: add sys_ilp32.c and a separate table (in entry.S) to use it Message-ID: <20151201233503.GA23156@yury-N73SV> References: <1447795019-30176-1-git-send-email-ynorov@caviumnetworks.com> <3754277.KmO9Nk3XLD@wuerfel> <20151201212904.GA14442@yury-N73SV> <12844690.Yr8y3jA010@wuerfel> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <12844690.Yr8y3jA010@wuerfel> User-Agent: Mutt/1.5.23 (2014-03-12) X-Originating-IP: [95.143.213.120] X-ClientProxiedBy: HE1PR03CA0006.eurprd03.prod.outlook.com (25.163.170.144) To DM2PR07MB623.namprd07.prod.outlook.com (10.141.177.148) X-Microsoft-Exchange-Diagnostics: 1;DM2PR07MB623;2:3MA9WTsQaxAwuyz/twiJOvlOIAdLu3ZQG1FjRzKcl3CpjKx9sFKQBDb/3K9bwwWBOTT9SDvU17sEFvNRRrkIDHumD9feHmteJ+T76YTY14inTnqnEU5TESFLLusK/Urp4Nx0/W18x8Ts7/2bCvTPdw==;3:/sdGmlHym732w352Pjkc6/CT7PytjQ20EMlIU73/6ged3ND0aqwIKS6YrBVUEBRc1gL12Der9Ey3t1R7sC7P2xxN20V7oKz5dN5g9Syj5U8vDau+cvcGWjEaKbrYxFjK;25:qa0VzgJHV+EPPDlY45SjfOR48dvR6d5h9cm19hDMCiUkXo/0qptCUxoxoNFKUAhLKf2st6Bzske645xmc6pIF/WMyQVN9qIe+oTP/D6S679wL05ZhX4GpkxuTAON6/sB5yFIEAabS42UL+a7ukE+vMEwHJzBxao8ls4M1sdnrIqQN3Xvr6QRQPsRlrgSOkHAxAC6mk2PoD8WTx2Jwuoc/DXVs9MrdQZkzvf6jwbYOGPfNrHRjWKfdB83DfuUT//e2unk006vNW71ObM1RpalQQ== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DM2PR07MB623; X-Microsoft-Exchange-Diagnostics: 1;DM2PR07MB623;20:IiF71woWG9crvSaeWRCg2r4IZo2qN08Bl8wmf6tYn2rj4Hhm34Pa9mvN4V0+C3kBxj5kY9twQMOkxafL/IHklhWpU7Gl60Z2AOsDCotGZHGQ7WeSdazU/tr1j4cMErmoOmS4Ul0TGBy9i7KRZBqBTP6uOWpmkZ8j/y04LYqrtnivkX7+EUEoulw9YakHmYAPtW5BkNvioXsRD5zbVu/Xh1WQYXGT7lY7wPZcZqrVpsFJ6xMyiD+Jn1TfzZ297c1kNp7L4jBgimwiDiXFybQb2QKzPH2IQbTmXxSdigw4fkOsCwMr+t7JnLb+qEzEKH0ijjQZUEt2r9RuAMnMJvX3PWfYkblcKGmuHIQfDbDufOw9SrGZ2qb/mKQnP/O+LyZ+FpuhuEJ9IQfMwM/9c0Dk8dxcYHsvtsbC3KomcyyaRSTB/foJMxDVbet2MWXwj1dfiaVdxLlIqVZf72/NFsU52gRPgfHTysaQFA2W/4AFGx/Umforhk8PBKWrjR73WyzlmgyfgSCq2DX6DdQiK+aY/YYlsQWUM2hhKdw024AaQbTpFVeeCXKFrG4Y/9tEkN6jeBhuaQXSV/H9FwgkfbrYCrUeg9A+NZDVybbm+8/Pwg0= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(5005006)(520078)(10201501046)(3002001);SRVR:DM2PR07MB623;BCL:0;PCL:0;RULEID:;SRVR:DM2PR07MB623; X-Microsoft-Exchange-Diagnostics: 1;DM2PR07MB623;4:lYBIxJE55X+1SajJa9ywmr8RvQyGFluSJLcMVCBcjKc96uesDChXID8eCgs4v/WdKq9L1wzl6czt9c6k+qWKHEWwWfAr8rq0eITVjmZS6haejBdD2FO8TZQcoziah7iztcjEYQL6cjc/ukN9ZDlu3PX2WCRem5YMKfAqYv7akvzw5gZh5dcAEUc97Bkip4yXcZr2PqFc6bb9FHUwQs+WgeBJYO1cVlOqfdXSovj7hJqTZJb0ORsUZQElWGTcMcJS7xD+jW6z3bD2+y5LRYSxye/3BbVwiUmYTy3VTt4qv0zneCy7M7bS5YnMT1V3FT4TQIeu094ic2bC73vXDggD9kzkjIwxgtJEba2eFm4jE5atdL1jtH2aP8kREQT9Rk2Y X-Forefront-PRVS: 07778E4001 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6069001)(6009001)(57704003)(199003)(24454002)(189002)(77096005)(23726003)(110136002)(87976001)(46406003)(40100003)(189998001)(76176999)(50986999)(1096002)(586003)(4001350100001)(5004730100002)(1076002)(6116002)(122386002)(3846002)(5001960100002)(92566002)(33656002)(93886004)(33716001)(47776003)(97756001)(83506001)(81156007)(54356999)(76506005)(106356001)(66066001)(97736004)(50466002)(5008740100001)(101416001)(105586002)(42186005)(2950100001);DIR:OUT;SFP:1101;SCL:1;SRVR:DM2PR07MB623;H:localhost;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM2PR07MB623;23:TOucxqiPAdAX3FOIi/pPUocIifr9rxllShzKTmn7mD?= =?us-ascii?Q?nLoU+VYL/IkqclcE5LyKt+KIoqdHudWWzJj/GhTv0ezT6ZCDsTA0K+wkSroa?= =?us-ascii?Q?YAfKZarszumESlPQgpjENxndYg6ooj389yXxizevetOyeM1k0os/rhrjf1Da?= =?us-ascii?Q?icNsR9BfsrjP+KwI1ZTy4NMOVVd9VQiBF1/YcLHFhFAeawMtFDEVtVhrivHG?= =?us-ascii?Q?7hGNOr/Jn34mDGW8g9quEMXJH/hdrxsVxCHNAEKUlDybClpUBh5uFu6chhQy?= =?us-ascii?Q?3Eg2aSlZfeBME9HhVqy9AOTYPbXC0D49IdWUNnByAaCis97Kk1QJEI3Z5NHu?= =?us-ascii?Q?T92TFM7zzs7chD1WOB24ZUODXEVKkDW0Xi7QG9zXwBi4WNM/zMAnXZzPZBru?= =?us-ascii?Q?FrQZBdwrKMC/ppq66guKSRPO3z6aLbhmVwHvIHZMOTkR+gztbS6A9Bg1fS2p?= =?us-ascii?Q?1339r3GpabMQrUBrhByLCvrPnueLJogFEmCJH9CEkYTvxS9qi5B50KGQ4tXO?= =?us-ascii?Q?CTQFm49r/49XdaTf9e6SFdi2wTOR6YJl3GKhVfTmocjUvWzhrB+Jp6bezgv9?= =?us-ascii?Q?0ARB0eM+LwobjG8cfEficXy+PToQuLSD0+9xRNfj7F0KPgtz/KZhMlazrqsl?= =?us-ascii?Q?KJQaj2Q5qXW/ya2TiE0a8I66ZIlk4En3d5xLOnrItT51TW99f/51wAJKocm6?= =?us-ascii?Q?kL+mMtJtQoNvT7DjuQ6uBuiLsBpCEwH4jdsIslptRftwjRwcS74KMzc/jjpR?= =?us-ascii?Q?Jm0mq9fKeeZK3dvP+GdiGfY17puAlG3dsyaWsW7T/lPwOSa/Go8E5diXfjW0?= =?us-ascii?Q?dxPJmLYAv0M+gDq9ym+wJYgbgPc+AL7q+BlMATlwaKdguT3RoYPKLfd6e4NP?= =?us-ascii?Q?y/jjYYhZmx9tlQKbVdgxfQM+47zlccfk3qvU09igSiBraOacgjMI+36IFxqS?= =?us-ascii?Q?mx5PZIlGd3ou4QpMACqC2RZAMEq/qoEmX7X5PdgMl1StBE9gk+Yx/ahm2Hxx?= =?us-ascii?Q?ErPFsgsFwHNSVWjvurrRfG7oZVrZ+npe3/WoAyez6ZXmRMGgdI6DV3+Kdf1e?= =?us-ascii?Q?bOUHLmEagAjRi0wtSAxV9Hheob4+eDVRaCLaoBcURxjsE01dTxoYNz/mcVWY?= =?us-ascii?Q?ryIIHx/h8=3D?= X-Microsoft-Exchange-Diagnostics: 1;DM2PR07MB623;5:tSWkX64Bjp+8JUMS/+5egz3DiMsyJroZ2T7RKsGNUKmQ7OHzrIQDCgj6FcqV7UhUfJFahizvDR5ZCGKFhZ3QHWTH3167C45wZj2Q2wOki65JRM2u3HGGAdb1K5ipCSsecwptbyeVI751JSqna3BurA==;24:DDmQMnWGLEdYgPq6TUWWJxmePGuiKdpQYDgEsHlf6vNS9xDNWECTkxxwvXg7C0e7zp+EQwAwX9PME5DsauSmCXBGkI31h9DIB6pqHoWVHz8= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2015 23:35:30.1363 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR07MB623 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3195 Lines: 79 On Tue, Dec 01, 2015 at 11:39:42PM +0100, Arnd Bergmann wrote: > On Wednesday 02 December 2015 00:29:04 Yury Norov wrote: > > > > +#define compat_sys_shmat sys_shmat > > > > > > What's special about compat_sys_shmat? > > > > > > > It's about definition. > > For aarch32 glibc defines it as (__getpagesize () << 2). > > For ILP32 there's no definition, and so generic one is used: (__getpagesize ()). > > Ok, got it. > > > In kernel, for ARM64, COMPAT_SHMLBA defined just as 0x4000. Both > > compat and non-compat shmat syscalls pass identical arguments to > > do_shmat, except shmlba. Effectively, library expects shmlba to > > be 0x1000, as sys_shmat does. And compat_sys_shmat expects 0x4000. > > > > I think, both kernel and library parts are to be fixed. In library > > we'd use definition identical to ARM. For kernel we'd use compat > > syscall. > > I'm not sure I understand this part. What changes specifically do we need? > For kernel: diff --git a/arch/arm64/include/asm/shmparam.h b/arch/arm64/include/asm/shmparam.h index 4df608a..e368a55 100644 --- a/arch/arm64/include/asm/shmparam.h +++ b/arch/arm64/include/asm/shmparam.h @@ -21,7 +21,7 @@ * alignment value. Since we don't have aliasing D-caches, the rest of * the time we can safely use PAGE_SIZE. */ -#define COMPAT_SHMLBA 0x4000 +#define COMPAT_SHMLBA (4 * PAGE_SIZE) #include diff --git a/arch/arm64/kernel/sys_ilp32.c b/arch/arm64/kernel/sys_ilp32.c index c5bc712..877bedf 100644 --- a/arch/arm64/kernel/sys_ilp32.c +++ b/arch/arm64/kernel/sys_ilp32.c @@ -42,15 +42,12 @@ asmlinkage long sys_rt_sigreturn_wrapper(void); #define compat_sys_pwrite64 sys_pwrite64 #define compat_sys_readahead sys_readahead #define compat_sys_rt_sigaction sys_rt_sigaction -#define compat_sys_shmat sys_shmat #define compat_sys_sync_file_range sys_sync_file_range #define compat_sys_truncate64 sys_truncate #define compat_sys_sigaltstack sys_sigaltstack For library - just create a header in ilp32 directory that defines SHMLBA exactly as arm: __getpagesize () << 2 > It sounds like shmat is one of the cases we an override makes sense > and we should use sys_shmat with PAGE_SIZE for aarch64 ilp32 mode. > [...] > We normally assume that the page size on ARM is fixed to 4K, so > there might be user space that just hardcodes 16K SHMLBA It means that we should use compat_sys_shmat because hardcoded userspace may have a chance to work for 4K pages. If we'll use sys_shmat (and so 4K SHMLBA), we'll definitely make hardcoded userspace broken. Non-hardcoded userspace will work anyway. We can describe in documentation that 4k pages are prefferable. Yury -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/