[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <535959DF.6050009@codesourcery.com>
Date: Fri, 25 Apr 2014 02:37:19 +0800
From: Chung-Lin Tang <cltang@...esourcery.com>
To: Catalin Marinas <catalin.marinas@....com>
CC: "Pinski, Andrew" <Andrew.Pinski@...iumnetworks.com>,
Ley Foon Tan <lftan@...era.com>,
Arnd Bergmann <arnd@...db.de>,
"H. Peter Anvin" <hpa@...or.com>,
Linux-Arch <linux-arch@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-doc@...r.kernel.org" <linux-doc@...r.kernel.org>,
Andrew Pinski <apinski@...ium.com>,
"Tang, Chung-Lin" <ChungLin_Tang@...tor.com>
Subject: Re: [PATCH 00/28] nios2 Linux kernel port
On 2014/4/24 11:28 PM, Catalin Marinas wrote:
> On Thu, Apr 24, 2014 at 09:55:25AM +0100, Chung-Lin Tang wrote:
>> On 2014/4/24 02:26 PM, Chung-Lin Tang wrote:
>>> On 2014/4/24 上午 02:15, Pinski, Andrew wrote:
>>>>
>>>>>> On Apr 23, 2014, at 10:59 AM, "Chung-Lin Tang" <cltang@...esourcery.com> wrote:
>>>>>>
>>>>>>>> On 2014/4/22 07:20 PM, Ley Foon Tan wrote:
>>>>>>>> On Tue, Apr 22, 2014 at 6:56 PM, Arnd Bergmann <arnd@...db.de> wrote:
>>>>>>>>>>>> On Tuesday 22 April 2014 18:37:11 Ley Foon Tan wrote:
>>>>>>>>>>>>>>>> Hi Arnd and Peter Anvin,
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Other than 64-bit time_t, clock_t and suseconds_t, can you confirm
>>>>>>>>>>>>>>>> that we don't need to have 64 bit off_t? See detail in link below.
>>>>>>>>>>>>>>>> I can submit the patches for 64-bit time changes
>>>>>>>>>>>>>>>> (include/asm-generic/posix_types.h and other archs) if everyone is
>>>>>>>>>>>>>>>> agreed on this.
>>>>>>>>>>>>
>>>>>>>>>>>> Yes.
>>>>>>>> Okay, will doing that.
>>>>>>
>>>>>> I believe that arm64 ILP32 will also be affected. What is the status of
>>>>>> this configuration? Has the glibc/kernel ABI been finalized?
>>>> Not yet. I am still working out the signal handling part. But we
>>>> already agreed on 64bit time_t, clock_t, and suseconds_t. And we
>>>> agreed to a 64bit offset_t too.
>>>>
>>>> On a related note suseconds in the timespec in posix is defined to
>>>> be long. So it would nice if the kernel ignores the upper 32bits so
>>>> we (glibc developers) can fix this for new targets including x32
>>>> and arm64/ilp32.
>>>
>>> Hmm, but that means for purely 32-bit architectures like nios2, which
>>> unlike x86_64 or arm64, never has a 64-bit mode, suseconds_t as a 64-bit
>>> type in the kernel is simply wasted.
>>
>> The more I think of this, the more I feel that suseconds_t should jsut
>> be 'long', not strictly 64-bitified. An ILP32 sub-mode in a 64-bit
>> kernel should be using compat_* code paths, something like a
>> COMPAT_USE_32BIT_SUSECONDS case.
>
> ILP32 mode should use LP64 syscalls as much as possible and that's the
> aim with arm64 as well (of course, we still have a few that wouldn't be
> possible and we route them via compat).
>
> But here if time_t is 64-bit while susecconds_t is 32-bit, the compat
> code wouldn't help.
Why not? You can define the arm64 'struct compat_timeval' with
suseconds_t as s32, and add the 32<-->64 case in the
compat_get/put_timeval path, triggered when the process is ILP32 (test
wrapped in the above hypothetical COMPAT_USE_32BIT_SUSECONDS macro).
Similar to how x32 does COMPAT_USE_64BIT_TIME.
Chung-Lin
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists