This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[glibc] Deleted branch azanella/master-hp-timing-refactor


The branch 'azanella/master-hp-timing-refactor' was deleted.
It previously pointed to:

 cc149fc... Add generic hp-timing support

Diff:

!!! WARNING: THE FOLLOWING COMMITS ARE NO LONGER ACCESSIBLE (LOST):
-------------------------------------------------------------------

  cc149fc... Add generic hp-timing support
  3506b30... Refactor hp-timing rtld usage
  c56f48d... Do not use HP_TIMING_NOW for random bits
  f344827... linux: Assume CLOCK_{PROCESS,THREAD}_CPUTIME_ID
  408e23c... nptl: Remove pthread_clock_gettime pthread_clock_settime
  2fae5ed... Cleanup clock_*time includes

commit cc149fcd77512e1e955f1808dd8f88897bd0276c
Author: Wilco Dijkstra <Wilco.Dijkstra@arm.com>
Date:   Tue Jan 29 17:43:45 2019 +0000

    Add generic hp-timing support
    
    Add missing generic hp_timing support.  It uses clock_gettime (CLOCK_MONOTONIC)
    which has unspecified starting time, nano-second accuracy, and should faster on
    architectures that implementes the symbol as vDSO.
    
    Checked on aarch64-linux-gnu, x86_64-linux-gnu, and i686-linux-gnu. I also
    checked the builds for all afected ABIs.
    
    	* benchtests/Makefile (USE_CLOCK_GETTIME) Remove.
    	* benchtests/README: Update description.
    	* benchtests/bench-timing.h: Default to hp-timing.
    	* sysdeps/generic/hp-timing.h (HP_TIMING_DIFF, HP_TIMING_ACCUM_NT,
    	HP_TIMING_PRINT): Remove.
    	(HP_TIMING_NOW): Add generic implementation.
    	(hp_timing_t): Change to uint64_t.

commit 3506b307b6529288638bea19dea4e24ea9b0a92c
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Thu Jan 24 12:46:59 2019 +0000

    Refactor hp-timing rtld usage
    
    This patch refactor how hp-timing is used on loader code for statistics
    report.  The HP_TIMING_AVAIL and HP_SMALL_TIMING_AVAIL are removed and
    HP_TIMING_INLINE is used instead to check for hp-timing avaliability.
    For alpha, which only defines HP_SMALL_TIMING_AVAIL, the HP_TIMING_INLINE
    is set iff for IS_IN(rtld).
    
    Checked on aarch64-linux-gnu, x86_64-linux-gnu, and i686-linux-gnu. I also
    checked the builds for all afected ABIs.
    
    	* benchtests/bench-timing.h: Replace HP_TIMING_AVAIL with
    	HP_TIMING_INLINE.
    	* nptl/descr.h: Likewise.
    	* elf/rtld.c (RLTD_TIMING_DECLARE, RTLD_TIMING_NOW, RTLD_TIMING_DIFF,
    	RTLD_TIMING_ACCUM_NT, RTLD_TIMING_SET): Define.
    	(dl_start_final_info, _dl_start_final, dl_main, print_statistics):
    	Abstract hp-timing usage with RTLD_* macros.
    	* sysdeps/alpha/hp-timing.h (HP_TIMING_INLINE): Define iff IS_IN(rtld).
    	(HP_TIMING_AVAIL, HP_SMALL_TIMING_AVAIL): Remove.
    	* sysdeps/generic/hp-timing.h (HP_TIMING_AVAIL, HP_SMALL_TIMING_AVAIL,
    	HP_TIMING_NONAVAIL): Likewise.
    	* sysdeps/ia64/hp-timing.h (HP_TIMING_AVAIL, HP_SMALL_TIMING_AVAIL):
    	Likewise.
    	* sysdeps/powerpc/powerpc32/power4/hp-timing.h (HP_TIMING_AVAIL,
    	HP_SMALL_TIMING_AVAIL): Likewise.
    	* sysdeps/powerpc/powerpc64/hp-timing.h (HP_TIMING_AVAIL,
    	HP_SMALL_TIMING_AVAIL): Likewise.
    	* sysdeps/sparc/sparc32/sparcv9/hp-timing.h (HP_TIMING_AVAIL,
    	HP_SMALL_TIMING_AVAIL): Likewise.
    	* sysdeps/sparc/sparc64/hp-timing.h (HP_TIMING_AVAIL,
    	HP_SMALL_TIMING_AVAIL): Likewise.
    	* sysdeps/x86/hp-timing.h (HP_TIMING_AVAIL, HP_SMALL_TIMING_AVAIL):
    	Likewise.
    	* sysdeps/generic/hp-timing-common.h: Update comment with
    	HP_TIMING_AVAIL removal.

commit c56f48dcbb3bec6c354a8b632614a69b60711d40
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Wed Jan 16 18:10:56 2019 +0000

    Do not use HP_TIMING_NOW for random bits
    
    This patch removes the HP_TIMING_BITS usage for fast random bits and replace
    with clock_gettime (CLOCK_MONOTONIC).  It has unspecified starting time and
    nano-second accuracy, so its randomness is significantly better than
    gettimeofday.
    
    Althoug it should incur in more overhead (specially for architecture that
    support hp-timing), the symbol is also common implemented as a vDSO.
    
    Checked on aarch64-linux-gnu, x86_64-linux-gnu, and i686-linux-gnu. I also
    checked on a i686-gnu build.
    
    	* resolv/res_mkquery.c [HP_TIMING_AVAIL] (RANDOM_BITS,
    	(__res_context_mkquery): Remove usage hp-timing usage and replace with
    	clock_gettime.
    	* resolv/res_send.c [HP_TIMING_AVAIL] (nameserver_offset): Likewise.
    	* sysdeps/posix/tempname.c [HP_TIMING_AVAIL] (__gen_tempname):
    	Likewise.

commit f344827c038f865744389ee12b7022f9a9c90251
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Wed Jan 16 17:30:07 2019 +0000

    linux: Assume CLOCK_{PROCESS,THREAD}_CPUTIME_ID
    
    This patch assumes that clock_getres syscall always support
    CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID, so there is no need
    to fallback to hp-timing support for _SC_MONOTONIC_CLOCK.  This allows
    simplify the sysconf support to always use the syscall.
    
    The ia64 implementation is also simplified and consolidate in one file.
    
    Checked on aarch64-linux-gnu, x86_64-linux-gnu, and i686-linux-gnu.
    
    	* sysdeps/unix/sysv/linux/ia64/has_cpuclock.c: Remove file.
    	* sysdeps/unix/sysv/linux/ia64/sysconf.c (ia64_check_cpuclock): New
    	function.
    	* sysdeps/unix/sysv/linux/sysconf.c (has_cpuclock): Remove function.
    	(check_clock_getres): New function.
    	(__sysconf): Use check_clock_getres instead of has_cpuclock.

commit 408e23c740b074d606a1233e97619c04c50a7ad8
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Wed Jan 16 16:22:29 2019 +0000

    nptl: Remove pthread_clock_gettime pthread_clock_settime
    
    This patch removes CLOCK_THREAD_CPUTIME_ID and CLOCK_PROCESS_CPUTIME_ID support
    from clock_gettime and clock_settime generic implementation.  For Linux, kernel
    already provides supports through the syscall and Hurd HTL lacks
    __pthread_clock_gettime and __pthread_clock_settime internal implementation.
    
    This allows removes unused code which, however, still incur in some runtime
    overhead in thread creation (the struct pthread cpuclock_offset
    initialization)
    
    Checked on aarch64-linux-gnu, x86_64-linux-gnu, and i686-linux-gnu. I also
    checked on a i686-gnu build.
    
    	* nptl/Makefile (libpthread-routines): Remove pthread_clock_gettime and
    	pthread_clock_settime.
    	* nptl/pthreadP.h (__find_thread_by_id): Remove prototype.
    	* elf/dl-support.c [!HP_TIMING_NOAVAIL] (_dl_cpuclock_offset): Remove.
    	(_dl_non_dynamic_init): Remove _dl_cpuclock_offset setting.
    	* elf/rtld.c (_dl_start_final): Likewise.
    	* nptl/allocatestack.c (__find_thread_by_id): Remove function.
    	* sysdeps/generic/ldsodefs.h [!HP_TIMING_NOAVAIL] (_dl_cpuclock_offset):
    	Remove.
    	* sysdeps/mach/hurd/dl-sysdep.c [!HP_TIMING_NOAVAIL]
    	(_dl_cpuclock_offset): Remove.
    	* nptl/descr.h (struct pthread): Rename cpuclock_offset to
    	cpuclock_offset_ununsed.
    	* nptl/nptl-init.c (__pthread_initialize_minimal_internal): Remove
    	cpuclock_offset set.
    	* nptl/pthread_create.c (START_THREAD_DEFN): Likewise.
    	* sysdeps/nptl/fork.c (__libc_fork): Likewise.
    	* nptl/pthread_clock_gettime.c: Remove file.
    	* nptl/pthread_clock_settime.c: Likewise.
    	* sysdeps/unix/clock_gettime.c (hp_timing_gettime): Remove function.
    	[HP_TIMING_AVAIL] (realtime_gettime): Remove CLOCK_THREAD_CPUTIME_ID
    	and CLOCK_PROCESS_CPUTIME_ID support.
    	* sysdeps/unix/clock_settime.c (hp_timing_gettime): Likewise.
    	[HP_TIMING_AVAIL] (realtime_gettime): Likewise.
    	* sysdeps/posix/clock_getres.c (hp_timing_getres): Likewise.
    	[HP_TIMING_AVAIL] (__clock_getres): Likewise.
    	* sysdeps/unix/clock_nanosleep.c (CPUCLOCK_P, INVALID_CLOCK_P):
    	Likewise.
    	(__clock_nanosleep): Remove CPUCLOCK_P and INVALID_CLOCK_P usage.

commit 2fae5ede9d89267b724e2c77a4b863531019c113
Author: Wilco Dijkstra <wdijkstr@arm.com>
Date:   Wed Jan 16 15:58:51 2019 +0000

    Cleanup clock_*time includes
    
    Clock_gettime, settime and getres implementations are unnecessarily
    complex due to using many defines and C file inclusion.  Simplify the
    code by replacing the redundant defines and removing the inclusion,
    making it much easier to understand. No functional changes.
    
    OK for commit (for 2.30)?
    
    ChangeLog:
    2019-01-14  Wilco Dijkstra  <wdijkstr@arm.com>
    
    	* sysdeps/posix/clock_getres.c (__clock_getres): Cleanup.
    	* sysdeps/unix/clock_gettime.c (__clock_gettime): Cleanup.
    	* sysdeps/unix/clock_settime.c (__clock_settime): Cleanup.
    	* sysdeps/unix/sysv/linux/clock_getres.c (__clock_getres): Cleanup.
    	* sysdeps/unix/sysv/linux/clock_gettime.c (__clock_gettime): Cleanup.
    	* sysdeps/unix/sysv/linux/clock_settime.c (__clock_settime): Cleanup.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]