1 Jun 2003 11:21
FW: [PATCH] Native POSIX Thread Library(NPTL) ARM SupportingPatches (1/3)
Hu, Boris <boris.hu <at> intel.com>
2003-06-01 09:21:37 GMT
2003-06-01 09:21:37 GMT
-----Original Message----- From: Philip Blundell [mailto:pb <at> nexus.co.uk] Sent: 2003?5?29? 22:15 To: Hu, Boris Cc: Libc-Alpha (E-mail); NPTL list (E-mail) Subject: Re: [PATCH] Native POSIX Thread Library(NPTL) ARM SupportingPatches (1/3) On Fri, 2003-05-23 at 09:23, Hu, Boris wrote: > However, TLS is absent in arm toolchain. So here is a work-around way. > In the linux kernel, a thread register is simulated by an additional field(pd_addr) > to thread_struct and two system calls(sys_get/set_thread_area()). __thread > keyword is disabled in glibc and nptl. Moreover, some code related TLS in nptl > is protected by the glibc macro USE_TLS. Thanks for working on this. I wonder what the performance impact is of having a system call in THREAD_SELF. If it turns out to be too great, it may be possible to reduce the overhead by adding some more support to the kernel. What I've been thinking of is a way for applications to supply a pointer to the kernel (via a new system call), and have it store the current thread ID at that address during context switch. That way, retrieving the thread descriptor would be just a regular memory access. I think it'd only add a handful of cycles to the context switch path, and that's a comparatively heavyweight operation already so it would probably disappear in the noise. p.(Continue reading)
Kernel side:
the file /asm-arm/arch-ixp425/ixp425.h is not self contained, some header files need to be imported
before it.
the lines:
#ifndef __ASSEMBLY__
extern int (*ixp425_pci_read)(u32 addr, u32 cmd, u32* data);
extern int ixp425_pci_write(u32 addr, u32 cmd, u32 data);
extern void ixp425_pci_init(void *);
#endif
generates an error when compiling the Intel Accessl Libraries, and would generate an error when
included by anyone else if not the correct header files were included before.
IMHO a better place to declare the prototypes would be in arch/arm/mach-ixp425/ixp425-pci.h (non existing)
Intel side:
change the Intel code accordingly and include the required header files.
RSS Feed