2003-05-09  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/x86_64/get_clockfreq.c: New file.
This commit is contained in:
Ulrich Drepper 2003-05-09 07:53:33 +00:00
parent 92d83c725e
commit 880867a475
6 changed files with 32 additions and 4 deletions

View File

@ -1,3 +1,7 @@
2003-05-09 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/x86_64/get_clockfreq.c: New file.
2003-05-08 Ulrich Drepper <drepper@redhat.com>
* malloc/thread-m.h: Remove special handling of thread_atfork if

View File

@ -1,3 +1,12 @@
2003-05-09 Ulrich Drepper <drepper@redhat.com>
* allocatestack.c (allocate_stack): If ARCH_RETRY_MMAP is defined,
use it in case mmap to allocate the stack fails.
* sysdeps/unix/sysv/linux/x86_64/Makefile: Don't define
ARCH_MAP_FLAGS here.
* sysdeps/x86_64/pthreaddef.h: Define ARCH_MAP_FLAGS and
ARCH_RETRY_MMAP.
2003-05-08 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/fork.c: Complete rewrite of the atfork

View File

@ -393,7 +393,13 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
MAP_PRIVATE | MAP_ANONYMOUS | ARCH_MAP_FLAGS, -1, 0);
if (__builtin_expect (mem == MAP_FAILED, 0))
return errno;
{
#ifdef ARCH_RETRY_MMAP
mem = ARCH_RETRY_MMAP (size);
if (__builtin_expect (mem == MAP_FAILED, 0))
#endif
return errno;
}
/* SIZE is guaranteed to be greater than zero.
So we can never get a null pointer back from mmap. */

View File

@ -1,6 +1,3 @@
ifeq ($(subdir),nptl)
CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions -fno-asynchronous-unwind-tables
# We need to make sure that stack memory is allocated in the low 4GB.
CFLAGS-pthread_create.c += -DARCH_MAP_FLAGS=MAP_32BIT
endif

View File

@ -36,6 +36,17 @@
({ char *frame; asm ("movq %%rsp, %0" : "=r" (frame)); frame; })
/* We prefer to have the stack allocated in the low 4GB since this
allows faster context switches. */
#define ARCH_MAP_FLAGS MAP_32BIT
/* If it is not possible to allocate memory there retry without that
flag. */
#define ARCH_RETRY_MMAP(size) \
mmap (NULL, size, PROT_READ | PROT_WRITE | PROT_EXEC, \
MAP_PRIVATE | MAP_ANONYMOUS, -1, 0)
/* XXX Until we have a better place keep the definitions here. */
/* While there is no such syscall. */

View File

@ -0,0 +1 @@
#include "../i386/get_clockfreq.c"