Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752116AbbKPNRh (ORCPT ); Mon, 16 Nov 2015 08:17:37 -0500 Received: from mout.kundenserver.de ([212.227.126.130]:57665 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751627AbbKPNRf (ORCPT ); Mon, 16 Nov 2015 08:17:35 -0500 From: Arnd Bergmann To: linux-arm-kernel@lists.infradead.org Cc: Joseph Myers , Rich Felker , Catalin Marinas , Chris Metcalf , Yury Norov , Philipp Tomsich , "Kapoor, Prasun" , Andreas Schwab , Alexander Graf , Andrey Konovalov , Mike Frysinger , Andrew Pinski , Alexey Klimov , broonie@kernel.org, bamvor.zhangjian@huawei.com, David Daney , Paul Eggert , Nathan Lynch , LKML , Andrew Pinski , Jan Dakinevich , christoph.muellner@theobroma-systems.com Subject: Re: [PATCH v6 13/17] arm64:ilp32: add sys_ilp32.c and a separate table (in entry.S) to use it Date: Mon, 16 Nov 2015 14:15:58 +0100 Message-ID: <4164423.46Jfedud5Y@wuerfel> User-Agent: KMail/4.11.5 (Linux/3.16.0-10-generic; KDE/4.11.5; x86_64; ; ) In-Reply-To: References: <1446507046-24604-1-git-send-email-ynorov@caviumnetworks.com> <5753873.3bKWvUrKmj@wuerfel> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Provags-ID: V03:K0:vZpaAQ9qZO706hvgDx8AklxHE+6bwuHf/uc+ZzdKvyBLSZq9k6f N+q7CqvE26Y84ykGFpEbjLJy0GvyzbRrD0RmQsICLEWxac8RJs2+JV3cXStd/Cy1SFdv+vc 0vGj2W5zOjuEGxZgJPOisDZWf0emlDdVp5OS2W5P5YJPfN5uvnjTXl97jSfRInxVnFuP35q /4lIH0vi/XMLbOEQNy1cw== X-UI-Out-Filterresults: notjunk:1;V01:K0:7+/RnmcB1bY=:BAItkwl+IXxuO3lTlKfbq0 otLx5lwxs1hv2l88AzYgsTKSUir8VQ+dKln/MOeRQV9+VmeW+HvA4LnBb4SWHDxO69V2GNfHN R9LMVHyGpU/kxyFlHBrCyZVsEq6kXch7zf1Q0sJbdL/UfRJu0P7t9ZZWWeBRYk7kKIJ790gWB bnYhKVN055sfkOdmewe57KIXW/0qPnebitKDynJIR+K5g50SodsJLcvolXayjmVUq41hgniJS 5hYx4WQC3r+EsTgxcxS7B4tIXDMxOqow0pmzuN0lS8rVpqCOEOOT8WAjg8Uq+jKhr9lQNywgl KPcdaMGp6nD9oMclGYhhszktTR6JdnvGLAQz8WskkKw9kC7CvniYNoQ0oHX1P7IDP07IJ6Tcf RfyMX7n96IJtTbp16mtnELjvxc3sHbIIA6l5u9Bof72oFZC5vwI4q0vqPAu0XMJ6B0wAqUT1G aymrCTolsBPH2DkULXH9LrTNLHRGlgK9XrS+Sif8wJDqebvZc0ayWEIXbQliff5Nqe5mBfms9 hRupZAVBY8dkI2f8kH7t2LtOR09npTs4WxU5O3tFKIKEFm5ISbliKpj5YHl20becz6CfJTwab 470VtRlpYF49ddaCCU5GJxtsen5xl0Cn55DlysOUW9ycccPIqUs6b2uobGddebEcrn92qfl43 e17iVe7rgTQTbKqGCgZM3Vs5ThCrIi0mqRFJUFhpaqVzjJqya+zzZmsjju3f/6PIe5ljvx+pn vgk7KUbEF2Pw3T9e Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2677 Lines: 56 On Monday 16 November 2015 12:34:55 Joseph Myers wrote: > On Mon, 16 Nov 2015, Arnd Bergmann wrote: > > > > It's not a matter of leaving anything out - these would simply use 64-bit > > > off_t (__off_t and __off64_t would be the same type) and the *64 versions > > > would be aliases, exactly the same as on 64-bit architectures. (And > > > _FILE_OFFSET_BITS handling would also be exactly the same as on 64-bit > > > architectures.) I see no reason for the set of off_t-related symbols that > > > exist, or which symbols are aliases of which others, to vary between pure > > > 64-bit systems and ILP32 ABIs (for 32-bit or 64-bit architectures) that > > > simply happen to have had 64-bit off_t from the start. > > > > Ok, fair enough. So we just change the global __OFF_T_TYPE definition > > in bits/typesizes.h and override it for all the existing 32-bit ports, > > correct? > > Well, it's sysdeps/unix/sysv/linux/generic/bits/typesizes.h that's > relevant - so if future generic architectures will use 64-bit off_t, I > suppose the existing file could be cloned for existing generic > architectures with 32-bit support. Ok, got it. > And all the types involved in struct stat are affected (e.g. ino_t), > not just off_t. ino_t seems to be the only other type in 'struct stat' that depends on _FILE_OFFSET_BITS in glibc. On the kernel side, we don't care about __kernel_ino_t any more, we just leave that defined as 'unsigned long' while using a plain 'unsigned long long' for 'st_ino' in struct stat64 (and don't use __kernel_ino_t anywhere else either). > And getting the aliases > right may involve disentangling the different meanings of wordsize-64 into > different sysdeps directories. ("off_t is off64_t" and "stat is stat64" > are not the same thing. See MIPS n64.) And the design work needs to be > done on libc-alpha, not in a random discussion elsewhere. Sure. For the moment, we have all the information we need for the kernel side at least: we will keep using only 64-bit __kernel_loff_t on the system call side in new architecture ports and let you figure out how to work with that on the glibc side whenever the next 32-bit port arrives, which I assume will be arm64-ilp32. The 'struct stat' discussion will of course come back soon when we get to the 64-bit time_t patches, or when we introduce the extended stat syscall, whichever happens first. Thanks a lot for your help! Arnd -- 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/