Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754467AbbK3Oh4 (ORCPT ); Mon, 30 Nov 2015 09:37:56 -0500 Received: from mout.kundenserver.de ([217.72.192.73]:56814 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754384AbbK3Ohy (ORCPT ); Mon, 30 Nov 2015 09:37:54 -0500 From: Arnd Bergmann To: "Theodore Ts'o" Cc: David Howells , linux-afs@vger.kernel.org, linux-nfs@vger.kernel.org, linux-cifs@vger.kernel.org, samba-technical@lists.samba.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org, Deepa Dinamani Subject: Re: [PATCH 01/12] Ext4: Fix extended timestamp encoding and decoding Date: Mon, 30 Nov 2015 15:37:43 +0100 Message-ID: <4966628.zR0sijQ42t@wuerfel> User-Agent: KMail/4.11.5 (Linux/3.16.0-10-generic; KDE/4.11.5; x86_64; ; ) In-Reply-To: <20151130141605.GA4316@thunk.org> References: <20151120145422.18930.72662.stgit@warthog.procyon.org.uk> <2872067.shHdUXoF07@wuerfel> <20151130141605.GA4316@thunk.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Provags-ID: V03:K0:soPbYJ40ukqlb+RwfrN+cL8PF4/algs964iRQgM3SUYaDZY2N3P VVeOPI96yxQeeKXakm2hbUlIGNkEKLqZTfNgBW+kT1kOzEobzzc84gPXSgzR8/szVEZdf6d Z4kk7G/0we5G3cbIB29jzz/Jsze9UL8FSDuEY9nHdDNEVz3EtunImEf8yxAT0bf5MPc9wtb XtKU48JPCLBCDBbdS38eQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:A4L2toaJ3FQ=:S9HKOaV5Fvv5Upfew1IlFL lREyWaXzXkzm25aX0s3NUA1XOVyJe2e1unqJp+Xt990Pv+iDUtnMpD5qqP9bYFRwtEd6g9bgs Cm1+T0/W7gmiOHTZoBaDZnEkd/qq+4UsBC9yeMo0THV4ZEEyB2f4dAu9yjNJzMB1qaC166MTD FFK6sR5g0H2CA/uqpBhptPucoopkH3evaJqnU5euGOuJ2SnpW7h+hpUKBkEnD/tQ0gfzXKmF0 UJHMNNGpaJQUoXtpiWP4JnncXePccKEUzw0PcLO+g9/AToWSsKKSUOi+g/pJiFeX2E9z/S8Z7 3zwRtSFEtnuuWqzfvaeSVY/ZAmJN9tRkLPdZz0q4EJjggEdrWJLoHZAiHz4lQKZXHZcgEGz1Z yOBPENDrF4Jcu8w3hScqx4jZJdeZn6fvs8QEbLrF7Kry4YQCXMIY4BTr/ZFODAihdFNDcNiEz VRf5U5JI2HnKWUnqXBuv/mVEFGYI0+n9Hfr+IYemoiiLcdtIuIcvllwf0ViNuNfdsRiqo1qRR v8x2qzbncGP8BYEk9UMuccfwr0xDulOhad0maEX7+VXoEjcyCY0ZR+jYciTJ/bDQZLe7yD0t4 rAyCP1bEEyFtZkF0LUFG7jftRCU4owd8aeY6sbYruG12jwZbccw8yVC9Yo0yuO2tVFqq64mLo LrrmkfTetF6yWSVgcNklmiveu1nOeY7UbSoQ1Wg0thbfsPD/fcTJGfgZw6T+iUPchtrRrpGbh KV2Q8+xqVtssWZ25 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2513 Lines: 47 On Monday 30 November 2015 09:16:05 Theodore Ts'o wrote: > On Sun, Nov 29, 2015 at 10:30:39PM +0100, Arnd Bergmann wrote: > > The other large missing piece is the system call implementation. I have > > posted a series earlier this year before my parental leave, and it's > > currently lacking review from libc folks, and blocked on me to update > > the series and post it again. > > I assume that this also means there hasn't been much thought about > userspace support above libc? i.e., how to take a 64-bit time64_t (or > changing the size of time_t) and translating that to a string using > some kind of version of ctime() and asctime(), and how to parse a > post-2038 date string and turning it into a 64-bit time_t on a 32-bit > platform? > > The reason why I'm asking is because I'm thinking about how to add the > appropriate regression test support to e2fsprogs for 32-bit platforms. > I'm probably going to just skip the tests on architectures where > sizeof(time_t) == 4 for now, since with a 32-bit time_t adding support > for post-2038 in a e2fsprogs-specific way is (a) something I don't > have time for, and (b) probably a waste of time since presumably we > will either need to have a more general solution, or simply decide to > give up on 32-bit platforms by 2038.... We are definitely going to be using 32-bit embedded platforms in 2038, but we won't be using a 32-bit time_t then, so basing the check on sizeof(time_t) sounds reasonable. I assume most generic distros will stay with 32-bit time_t for compatibility reasons and just not give long term support for 32-bit architectures, while the embedded distros will move over to 64-bit time_t, but on those you recompile all user space for each product anyway. The glibc functions should all work with a 64-bit time_t as they do today on 64-bit architectures. There is an open discussion on how you move to 64-bit time_t. With the current glibc plan at https://sourceware.org/glibc/wiki/Y2038ProofnessDesign, you will have to set -D_TIME_BITS=64 to enable it explicitly, but I'd also like to see a way to build a glibc that defaults to that and does not allow backwards compatibility, which is important for folks that want to ship a system that has they can guarantee to survive 2038. 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/