public inbox for linux-parisc@vger.kernel.org
 help / color / mirror / Atom feed
From: Adhemerval Zanella Netto <adhemerval.zanella@linaro.org>
To: Helge Deller <deller@kernel.org>
Cc: libc-alpha@sourceware.org,
	John David Anglin <dave.anglin@bell.net>,
	linux-parisc@vger.kernel.org
Subject: Re: [PATCH v2] hppa/vdso: Add wrappers for vDSO functions
Date: Tue, 2 Jul 2024 16:52:08 -0300	[thread overview]
Message-ID: <4d89c58d-e23a-4e3a-b7ce-b02687985d8f@linaro.org> (raw)
In-Reply-To: <Zn006zh2vSqfgii6@carbonx1>



On 27/06/24 06:46, Helge Deller wrote:
> * Adhemerval Zanella Netto <adhemerval.zanella@linaro.org>:
>>
>> On 25/06/24 16:48, Helge Deller wrote:
>>> On 6/24/24 22:31, Adhemerval Zanella Netto wrote:
>>>>
>>>>
>>>> On 21/06/24 16:26, Helge Deller wrote:
>>>>> The upcoming parisc (hppa) v6.11 Linux kernel will include vDSO
>>>>> support for gettimeofday(), clock_gettime() and clock_gettime64()
>>>>> syscalls for 32- and 64-bit userspace.
>>>>> The patch below adds the necessary glue code for glibc.
>>>>>
>>>>> Signed-off-by: Helge Deller <deller@gmx.de>
>>>>>
>>>>> Changes in v2:
>>>>> - add vsyscalls for 64-bit too
>>>>>
>>>>> diff -up ./sysdeps/unix/sysv/linux/hppa/sysdep.h.org ./sysdeps/unix/sysv/linux/hppa/sysdep.h
>>>>> --- ./sysdeps/unix/sysv/linux/hppa/sysdep.h.org    2024-06-15 20:20:58.992000000 +0000
>>>>> +++ ./sysdeps/unix/sysv/linux/hppa/sysdep.h    2024-06-21 19:19:02.132000000 +0000
>>>>> @@ -468,6 +468,18 @@ L(pre_end):                    ASM_LINE_SEP    \
>>>>>   #define CLOB_ARGS_1 CLOB_ARGS_2, "%r25"
>>>>>   #define CLOB_ARGS_0 CLOB_ARGS_1, "%r26"
>>>>>
>>>>> +#define VDSO_NAME    "LINUX_6.11"
>>>>> +#define VDSO_HASH    182951793
>>>>> +
>>>>> +#ifdef __LP64__
>>>>> +# define HAVE_CLOCK_GETTIME_VSYSCALL    "__vdso_clock_gettime"
>>>>> +# define HAVE_GETTIMEOFDAY_VSYSCALL     "__vdso_gettimeofday"
>>>>> +#else
>>>>> +# define HAVE_CLOCK_GETTIME_VSYSCALL    "__vdso_clock_gettime"
>>>>> +# define HAVE_CLOCK_GETTIME64_VSYSCALL  "__vdso_clock_gettime64"
>>>>> +# define HAVE_GETTIMEOFDAY_VSYSCALL     "__vdso_gettimeofday"
>>>>> +#endif /* __LP64__ */
>>>>> +
>>>>>   #endif    /* __ASSEMBLER__ */
>>>>
>>>> Not sure why you have added the gettimeofday support, currently 32 bits
>>>> it is already routed to to clock_gettime (which will use
>>>> __vdso_clock_gettime64 anyway).
>>>
>>> Yep, you are right.
>>> I actually didn't checked if it's being used but just saw it's defined
>>> for other arches too, so I assumed it to be used.
>>>
>>>> For hppa to actually use, it would require to add a way to call it
>>>> for !USE_IFUNC_GETTIMEOFDAY gettimeofday, which I am not it really be
>>>> an improvement here.
>>>
>>> Yes, that doesn't make sense.
>>>
>>> Looking at the code it seems riscv, sparc, arm, mips and s390 define it
>>> too, without being used. Do you suggest we should remove gettimeofday
>>> vsyscall from hppa again (or just keep like the others even if not being used)?
>>
>> The riscv only added it for CONFIG_64BIT, while old ABIs like arm, sparc,
>> mips, and s390 added before 64 bit time_t landed on 5.1.  With current 
>> 32 bits ABIs moving to 64 bit time_t userland, there is no much sense in 
>> providing a 32 bit gettimeofday, nor I think I adding a  gettimeoday64 would 
>> make much sense (maybe on really high sensitive workloads that require 
>> low-latency timestamping, but clock_gettime would work better anyway).
>>
>> It is highly unlikely that the symbol will ever be used by userland,
>> and I think it only make sense to provide clock_gettime64.  The glibc 
>> 32 bit time_t clock_gettime routes to clock_gettime64 and it will only 
>> fallback to 32 bit vDSO symbol if the 64 bit time_t one is not present.
> 
> Like patch below?
> Helge
> 
> 
> [PATCH] hppa/vdso: Provide 64-bit clock_gettime() vDSO only
> 
> Adhemerval noticed that the gettimeofday() and 32-bit clock_gettime()
> vDSO calls won't be used by glibc on hppa, so there is no need to
> declare them.  Both syscalls will be emulated by utilizing return values
> of the 64-bit clock_gettime() vDSO instead..
> 
> Signed-off-by: Helge Deller <deller@gmx.de>
> Suggested-by: Adhemerval Zanella Netto <adhemerval.zanella@linaro.org>
> 
> diff --git a/sysdeps/unix/sysv/linux/hppa/sysdep.h b/sysdeps/unix/sysv/linux/hppa/sysdep.h
> index af62f7501e..e47975e5cf 100644
> --- a/sysdeps/unix/sysv/linux/hppa/sysdep.h
> +++ b/sysdeps/unix/sysv/linux/hppa/sysdep.h
> @@ -473,11 +473,8 @@ L(pre_end):					ASM_LINE_SEP	\
>  
>  #ifdef __LP64__
>  # define HAVE_CLOCK_GETTIME_VSYSCALL    "__vdso_clock_gettime"
> -# define HAVE_GETTIMEOFDAY_VSYSCALL     "__vdso_gettimeofday"
>  #else
> -# define HAVE_CLOCK_GETTIME_VSYSCALL    "__vdso_clock_gettime"
>  # define HAVE_CLOCK_GETTIME64_VSYSCALL  "__vdso_clock_gettime64"
> -# define HAVE_GETTIMEOFDAY_VSYSCALL     "__vdso_gettimeofday"
>  #endif /* __LP64__ */
>  
>  #endif	/* __ASSEMBLER__ */

Yeah, it seems ok thanks.

  reply	other threads:[~2024-07-02 19:52 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-21 19:26 [PATCH v2] hppa/vdso: Add wrappers for vDSO functions Helge Deller
2024-06-23 23:41 ` John David Anglin
2024-06-24 20:31 ` Adhemerval Zanella Netto
2024-06-25 19:48   ` Helge Deller
2024-06-25 20:14     ` Adhemerval Zanella Netto
2024-06-27  9:46       ` Helge Deller
2024-07-02 19:52         ` Adhemerval Zanella Netto [this message]
2024-07-02 20:29           ` John David Anglin

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=4d89c58d-e23a-4e3a-b7ce-b02687985d8f@linaro.org \
    --to=adhemerval.zanella@linaro.org \
    --cc=dave.anglin@bell.net \
    --cc=deller@kernel.org \
    --cc=libc-alpha@sourceware.org \
    --cc=linux-parisc@vger.kernel.org \
    /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