linux-arch.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: "Joseph S. Myers" <joseph@codesourcery.com>
Cc: Chung-Lin Tang <cltang@codesourcery.com>,
	John Stultz <john.stultz@linaro.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Christoph Hellwig <hch@infradead.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ley Foon Tan <lftan@altera.com>,
	Linux-Arch <linux-arch@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	LeyFoon Tan <lftan.linux@gmail.com>
Subject: Re: [PATCH 00/25] Change time_t and clock_t to 64 bit
Date: Thu, 15 May 2014 21:18:29 +0200	[thread overview]
Message-ID: <4706636.rTYoqSXXOR@wuerfel> (raw)
In-Reply-To: <Pine.LNX.4.64.1405151748430.3155@digraph.polyomino.org.uk>

On Thursday 15 May 2014 18:01:37 Joseph S. Myers wrote:
> On Thu, 15 May 2014, Chung-Lin Tang wrote:
> 
> > > c) glibc may or may not provide a way for applications to use
> > >    the extended interfaces without a user space ABI break. My
> > >    impression so far is that this is going to be too hard and
> > >    it won't be done, but this is for the glibc developers to
> > >    determine.
> > 
> > glibc does version its exported symbols, so provided new/old syscalls
> > are both provided, haveing a new version of a routine (using 64-bit
> > time_t and new syscall interfaces) and the old compat routine co-exist
> > should be possible. Of course, old binaries may still not be saved when
> > 2038 arrives.

How would that work for ioctl? There are a lot of device drivers that
have data structure with time_t or struct timespec in them.

> You could do it with symbol versioning, though my guess would be that it 
> would be natural to provide _TIME_BITS like _FILE_OFFSET_BITS (with the 
> combination _TIME_BITS=64, _FILE_OFFSET_BITS=32 not being supported at 
> all) and then later transition the default.  (Discussion of the 
> possibility of moving the default to _FILE_OFFSET_BITS=64 suggested that 
> in practice most libraries in distributions where this affects the ABI are 
> already built that way, though noone has followed up on that discussion to 
> try to reach a consensus that we have enough evidence to change the 
> default now.  There are a couple of issues with the way 
> _FILE_OFFSET_BITS=64 is implemented that should be avoided in any 
> implementation of _TIME_BITS=64: (a) _FILE_OFFSET_BITS=64 maps functions 
> to corresponding *64 functions in the user's namespace, when it should use 
> reserved-namespace names; (b) it's not a no-op for 64-bit platforms - it 
> still remaps function names and types.  So _TIME_BITS=64 should only map 
> to reserved-namespace names, and not do any remapping at all on platforms 
> where time_t is already 64-bit.)

Earlier in the thread there seemed to be a rough consensus that
_TIME_BITS=64 wouldn't be a good idea because we wouldn't get everything
changed to use it. For _FILE_OFFSET_BITS=64 that's ok because most
user space doesn't ever want to deal with large files.

Can you elaborate on how the switch to the new default would work?
If it's easy, why hasn't it been done for _FILE_OFFSET_BITS already
and what's stopping us from changing the default as soon as the interfaces
are there? If it's hard, what would need to happen before the default
time_t can be set?

> Obviously 64-bit time_t syscalls would be an appropriately narrow set of 
> syscalls like those in the generic ABI (so glibc would implement stat for 
> _TIME_BITS=64 using fstatat64_time64 or whatever the syscall is called, 
> just as the stat functions for generic ABI architectures are implemented 
> with newfstatat / fstatat64 rather than lots of separate syscalls.

This assumes that we'd leave the kernel time_t/timespec/timeval using 'long'
and introduce a new timespec64 using a signed 64-bit type, rather than
changing the kernel headers to the new syscalls and data structures with
new names for the existing ones, right?

	Arnd

  reply	other threads:[~2014-05-15 19:18 UTC|newest]

Thread overview: 132+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-13  8:57 [PATCH 00/25] Change time_t and clock_t to 64 bit Ley Foon Tan
2014-05-13  9:02 ` [PATCH 01/25] asm-generic: " Ley Foon Tan
2014-05-13  9:15   ` James Hogan
2014-05-13  9:30     ` Thomas Gleixner
2014-05-13  9:30       ` Thomas Gleixner
2014-05-13  9:32     ` Ley Foon Tan
2014-05-13  9:32       ` Ley Foon Tan
2014-05-13  9:50       ` James Hogan
2014-05-13  9:50         ` James Hogan
2014-05-13 10:17         ` Ley Foon Tan
2014-05-13 10:21           ` Arnd Bergmann
2014-05-13 10:21             ` Arnd Bergmann
2014-05-13 12:07             ` Thomas Gleixner
2014-05-13 13:11               ` Geert Uytterhoeven
2014-05-13 13:38                 ` Arnd Bergmann
2014-05-13 14:37                   ` Thomas Gleixner
2014-05-13 10:22           ` James Hogan
2014-05-13 10:22             ` James Hogan
2014-05-14  3:47             ` H. Peter Anvin
2014-05-14 10:44               ` Geert Uytterhoeven
2014-05-13  9:02 ` [PATCH 02/25] arc: Add 32 bit time_t and clock_t Ley Foon Tan
2014-05-13  9:02   ` Ley Foon Tan
2014-05-13  9:02 ` [PATCH 03/25] arm: " Ley Foon Tan
2014-05-13  9:02   ` Ley Foon Tan
2014-05-13  9:02 ` [PATCH 04/25] avr32: " Ley Foon Tan
2014-05-13  9:02   ` Ley Foon Tan
2014-05-13 20:19   ` Hans-Christian Egtvedt
2014-05-14  1:54     ` Ley Foon Tan
2014-05-14  7:44       ` Hans-Christian Egtvedt
2014-05-14 21:39         ` H. Peter Anvin
2014-05-13  9:02 ` [PATCH 05/25] blackfin: " Ley Foon Tan
2014-05-13  9:02   ` Ley Foon Tan
2014-05-13  9:03 ` [PATCH 06/25] c6x: " Ley Foon Tan
2014-05-13  9:03   ` Ley Foon Tan
2014-05-13  9:03 ` [PATCH 08/25] frv: " Ley Foon Tan
2014-05-13  9:03   ` Ley Foon Tan
2014-05-13  9:03 ` [PATCH 09/25] hexagon: " Ley Foon Tan
2014-05-13  9:03   ` Ley Foon Tan
2014-05-13  9:03 ` [PATCH 10/25] m32r: " Ley Foon Tan
2014-05-13  9:03   ` Ley Foon Tan
2014-05-13  9:03 ` [PATCH 11/25] m68k: " Ley Foon Tan
2014-05-13  9:03   ` Ley Foon Tan
2014-05-13  9:04 ` [PATCH 12/25] metag: " Ley Foon Tan
2014-05-13  9:04   ` Ley Foon Tan
2014-05-13  9:22   ` James Hogan
2014-05-13  9:22     ` James Hogan
2014-05-13  9:28     ` Ley Foon Tan
2014-05-13  9:28       ` Ley Foon Tan
2014-05-13  9:05 ` [PATCH 13/25] microblaze: " Ley Foon Tan
2014-05-13  9:05   ` Ley Foon Tan
2014-05-13  9:05 ` [PATCH 14/25] mips: " Ley Foon Tan
2014-05-13  9:05   ` Ley Foon Tan
2014-05-13  9:05 ` [PATCH 15/25] mn10300: " Ley Foon Tan
2014-05-13  9:05   ` Ley Foon Tan
2014-05-13  9:05 ` [PATCH 16/25] openrisc: " Ley Foon Tan
2014-05-13  9:05   ` Ley Foon Tan
2014-05-13  9:30   ` Jonas Bonn
2014-05-13  9:30     ` Jonas Bonn
2014-05-13  9:41     ` Ley Foon Tan
2014-05-13  9:41       ` Ley Foon Tan
2014-05-13  9:06 ` [PATCH 17/25] parisc: " Ley Foon Tan
2014-05-13  9:06   ` Ley Foon Tan
2014-05-13 20:17   ` Helge Deller
2014-05-14  1:57     ` Ley Foon Tan
2014-05-15  0:34     ` H. Peter Anvin
2014-05-15  0:34       ` H. Peter Anvin
2014-05-13  9:06 ` [PATCH 19/25] s390: " Ley Foon Tan
2014-05-13  9:06 ` [PATCH 20/25] score: " Ley Foon Tan
2014-05-13  9:06   ` Ley Foon Tan
2014-05-13  9:06 ` [PATCH 21/25] sh: " Ley Foon Tan
2014-05-13  9:06   ` Ley Foon Tan
2014-05-13  9:06 ` [PATCH 22/25] sparc: " Ley Foon Tan
2014-05-13  9:06   ` Ley Foon Tan
2014-05-13  9:06 ` [PATCH 23/25] unicore32: " Ley Foon Tan
2014-05-13  9:06   ` Ley Foon Tan
2014-05-13  9:06 ` [PATCH 25/25] xtense: " Ley Foon Tan
2014-05-13  9:06   ` Ley Foon Tan
2014-05-13  9:10 ` [PATCH 07/25] cris: " Ley Foon Tan
2014-05-13  9:10 ` [PATCH 00/25] Change time_t and clock_t to 64 bit Geert Uytterhoeven
2014-05-13  9:23   ` Ley Foon Tan
2014-05-13 15:24 ` Christoph Hellwig
2014-05-13 15:33   ` Thomas Gleixner
2014-05-13 17:46     ` Christoph Hellwig
2014-05-13 18:10       ` Arnd Bergmann
2014-05-13 18:24         ` Geert Uytterhoeven
2014-05-13 19:32           ` Arnd Bergmann
2014-05-13 20:35             ` Geert Uytterhoeven
2014-05-14 11:00               ` Arnd Bergmann
2014-05-14 12:21                 ` Thomas Gleixner
2014-05-14 14:01                   ` Arnd Bergmann
2014-05-14 14:01                     ` Arnd Bergmann
2014-05-14 14:46                     ` Thomas Gleixner
2014-05-14 15:48                       ` Arnd Bergmann
2014-05-15 15:47                 ` James Bottomley
2014-05-15 16:36                   ` Arnd Bergmann
2014-05-15 21:07                     ` One Thousand Gnomes
2014-05-16  7:48                       ` Christoph Hellwig
2014-05-16 23:06                         ` H. Peter Anvin
2014-05-16 23:06                           ` H. Peter Anvin
2014-05-14 21:33             ` John Stultz
2014-05-15  0:14               ` H. Peter Anvin
2014-05-15  3:32                 ` Nicolas Pitre
2014-05-15 11:08               ` Arnd Bergmann
2014-05-15 11:18                 ` Christoph Hellwig
2014-05-15 17:11                 ` Chung-Lin Tang
2014-05-15 17:12                 ` Chung-Lin Tang
2014-05-15 17:12                   ` Chung-Lin Tang
2014-05-15 18:01                   ` Joseph S. Myers
2014-05-15 19:18                     ` Arnd Bergmann [this message]
2014-05-15 20:10                       ` Joseph S. Myers
2014-05-15 20:38                         ` Arnd Bergmann
2014-05-15 20:38                           ` Arnd Bergmann
2014-05-15 21:05                           ` Joseph S. Myers
2014-05-19  8:08                             ` Arnd Bergmann
2014-05-19  8:08                               ` Arnd Bergmann
2014-05-19 14:46                               ` Joseph S. Myers
2014-05-19 17:22                                 ` Arnd Bergmann
2014-05-19 18:12                                   ` Joseph S. Myers
2014-05-19 18:20                                     ` Arnd Bergmann
2014-05-16 23:11                           ` H. Peter Anvin
2014-05-16 23:47                             ` Joseph S. Myers
2014-05-17  0:32                               ` H. Peter Anvin
2014-05-18 13:46                                 ` Joseph S. Myers
2014-05-18 16:10                                   ` H. Peter Anvin
2014-05-18 18:18                                     ` Joseph S. Myers
2014-05-14 10:13         ` Ley Foon Tan
2014-05-14 10:33           ` Arnd Bergmann
2014-05-14 21:04             ` H. Peter Anvin
2014-05-13 18:15       ` Geert Uytterhoeven
2014-05-13 19:14       ` Thomas Gleixner
2014-05-14  3:36 ` [PATCH 24/25] x86: Add 32 bit time_t and clock_t Ley Foon Tan
2014-05-14  3:36   ` Ley Foon Tan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4706636.rTYoqSXXOR@wuerfel \
    --to=arnd@arndb.de \
    --cc=cltang@codesourcery.com \
    --cc=geert@linux-m68k.org \
    --cc=hch@infradead.org \
    --cc=john.stultz@linaro.org \
    --cc=joseph@codesourcery.com \
    --cc=lftan.linux@gmail.com \
    --cc=lftan@altera.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).