1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-18 10:35:55 +00:00
Commit Graph

11286 Commits

Author SHA1 Message Date
Joseph Koshy
aa342b1f18 Improve style(9) compliance and trim a long text line. 2007-12-07 13:52:51 +00:00
Daniel Eischen
396a73603d Set the tcb (thread control block) in the child process after a fork.
This protects against a race with an upcall in the parent during the
fork which can clobber the parent's tcb before the vm space is copied
in the child.  The child then gets a corrupted tcb that is either null
or that points to another thread that doesn't exist in the child (after
a fork, only the fork()ing thread exists in the child).

Reported by:	Arno J. Klaassen (arno at heho / snv / jussieu / fr)
2007-12-06 06:04:01 +00:00
Konstantin Belousov
11ddf4fd56 The __used (== __attribute__((__used)) ) silences the warning produced
by unreferenced symbol. Apply __used instead of rev. 1.5.

Requested by:	kan
2007-12-04 12:18:43 +00:00
Tim Kientzle
f4c8548d52 If a Zip entry has the "length at end" flag set, then just ignore
a length field of zero; it does not mean the body is empty.

Thanks to: Lapo Luchini for sending me a JAR archive that demonstrated this bug
MFC after: 3 days
2007-12-04 06:32:12 +00:00
Hajimu UMEMOTO
d069c2b7f5 Merge BIND 9.4.2 into main chunk. 2007-12-03 15:13:44 +00:00
Hajimu UMEMOTO
2092ecacb2 This commit was generated by cvs2svn to compensate for changes in r174223,
which included commits to RCS files with non-trunk default branches.
2007-12-03 15:07:58 +00:00
Hajimu UMEMOTO
4117715965 Vendor import of BIND 9.4.2 2007-12-03 15:07:58 +00:00
Dag-Erling Smørgrav
4a95df55c3 Since jb@ fixed the type of dd_lock in <dirent.h>, these casts are no
longer required.
2007-12-03 14:33:51 +00:00
Konstantin Belousov
fb76e092de Restore the branding of the ELF executables. The structure was optimized out.
MFC after:	3 days
2007-12-03 13:21:21 +00:00
Joseph Koshy
c5e73985de Add callchain parsing to -lpmc.
Sponsored by:	FreeBSD Foundation and Google Inc.
2007-12-03 11:15:46 +00:00
Joseph Koshy
0b84422642 Replace a spurious cross-reference to hwpmc(4) with correct text. 2007-12-03 10:59:23 +00:00
David Schultz
9c90f85a6b In scanf, round according to the current rounding mode. 2007-12-03 07:17:33 +00:00
Doug Barton
02b0457cc2 One more glue update for BIND 9.4.2 2007-12-02 22:21:30 +00:00
Doug Barton
476368dbeb Update glue for BIND 9.4.2 2007-12-02 19:13:58 +00:00
Robert Watson
22d661040e For un-prototyped static inline functions declared in pthread_md.h on
ia64, powerpc, and sparc64, use ANSI function headers and specifically
indicate the lack of arguments with 'void'.  Otherwise, warnings are
generated at WARNS=3, leading to a compile failure with -Werror.
2007-12-01 14:23:29 +00:00
Daniel Eischen
eb63e604ea WARNS=3'ify. 2007-11-30 17:20:29 +00:00
Daniel Eischen
0442ae6dc7 Initialize the current thread and signal locks so that sigaction()
will work after a fork().

WARNS=3'ify.
2007-11-30 17:16:14 +00:00
Brooks Davis
3c42c4abed To reduce the impact of possible removal of the syscalls required by
libkse in FreeBSD 8.0, do not build or install static versions of libkse
(i.e. libkse*.a) in the default case.  Static versions will be built and
installed if libthr is not built or if libkse is the default threading
library.

Discussed on:	freebsd-arch
MFC after:	3 days
2007-11-29 21:49:08 +00:00
Doug Rabson
bfd85d3fbe Make sure GSS-API mechanisms are loaded if gss_acquire_cred is called
with a null mechanism list.

PR:		misc/117349
Submitted by:	Sean McNeil <sean at mcneil dot com>
2007-11-28 08:50:20 +00:00
Jason Evans
7e42e29b9b Only zero large allocations when necessary (for calloc()). 2007-11-28 00:17:34 +00:00
Jason Evans
b6b7fd3e2a Fix pointer dereferencing problems in _pthread_mutex_init_calloc_cb() that
were obscured by pseudo-opaque pthreads API pointer casting.
2007-11-28 00:16:24 +00:00
Jason Evans
0f7362f417 Add _pthread_mutex_init_calloc_cb to libc's map, for which malloc defines
a stub.
2007-11-27 16:22:21 +00:00
Jason Evans
77cfb3fec2 Document the B and L MALLOC_OPTIONS. 2007-11-27 03:18:26 +00:00
Jason Evans
5ea8413d0a Implement dynamic load balancing of thread-->arena mapping, based on lock
contention.  The intent is to dynamically adjust to load imbalances, which
can cause severe contention.

Use pthread mutexes where possible instead of libc "spinlocks" (they aren't
actually spin locks).  Conceptually, this change is meant only to support
the dynamic load balancing code by enabling the use of spin locks, but it
has the added apparent benefit of substantially improving performance due to
reduced context switches when there is moderate arena lock contention.

Proper tuning parameter configuration for this change is a finicky business,
and it is very much machine-dependent.  One seemingly promising solution
would be to run a tuning program during operating system installation that
computes appropriate settings for load balancing.  (The pthreads adaptive
spin locks should probably be similarly tuned.)
2007-11-27 03:17:30 +00:00
Jason Evans
e1636e1f97 Add _pthread_mutex_init_calloc_cb() to libthr and libkse, so that malloc(3)
(part of libc) can use pthreads mutexes without causing infinite recursion
during initialization.
2007-11-27 03:16:44 +00:00
Jason Evans
26b5e3a18e Implement lazy deallocation of small objects. For each arena, maintain a
vector of slots for lazily freed objects.  For each deallocation, before
doing the hard work of locking the arena and deallocating, try several times
to randomly insert the object into the vector using atomic operations.

This approach is particularly effective at reducing contention for
multi-threaded applications that use the producer-consumer model, wherein
one producer thread allocates objects, then multiple consumer threads
deallocate those objects.
2007-11-27 03:13:15 +00:00
Jason Evans
bcd3523138 Avoid re-zeroing memory in calloc() when possible. 2007-11-27 03:12:15 +00:00
Jason Evans
1bbd1b8613 Fix stats printing of the amount of memory currently consumed by huge
allocations. [1]

Fix calculation of the number of arenas when 'n' is specified via
MALLOC_OPTIONS.

Clean up various style inconsistencies.

Obtained from:	[1] NetBSD
2007-11-27 03:09:23 +00:00
Joseph Koshy
742fe6de5d - Allow source descriptors with no data to be used as arguments to the
elf{32,64}_xlateto[fm]() translation functions.  This change makes our
  libelf compatible with other ELF(3) implementations. [1]
- Update manual page to reflect this change.
- Style fixes: wrap a long line.

Submitted by:	jb [1]
2007-11-26 03:09:33 +00:00
David Xu
eb326f14a2 Move the added code in revision 1.26 into function pthread_key_create,
it should be there.
2007-11-26 02:35:17 +00:00
Joseph Koshy
c89d1cf588 - Add an overview of the pmc(3) API.
- Defer detailed descriptions of individual functions in the API to
  function-specific manual pages.
2007-11-25 06:50:31 +00:00
Joseph Koshy
677d4530c2 Move the following functions into their own manual pages:
- pmc_attach(), pmc_detach().
- pmc_capabilities(), pmc_cpuinfo(), pmc_ncpu(), pmc_npmc(), pmc_pmcinfo(),
  pmc_width().
- pmc_get_driver_stats().
- pmc_get_msr().
- pmc_read(), pmc_rw(), pmc_write().
- pmc_set().
- pmc_start(), pmc_stop().
2007-11-25 06:38:55 +00:00
Joseph Koshy
f28834c1a2 - Describe function pmc_init() in its own manual page.
- Describe functions pmc_configure_logfile(), pmc_flush_logfile() and
  pmc_writelog() in their own manual page.
2007-11-25 03:18:42 +00:00
Mike Makonnen
e38d709cd6 Hmmm, must get reading glasses or else change the font on my terminal. That
comma looks like a period.

Noticed by: brueffer
2007-11-24 11:58:54 +00:00
Joseph Koshy
fcdeaa0525 Describe convenience functions `pmc_name_of_{capability,class,cputype,
disposition,event,mode,state}' in their own manual page.
2007-11-24 11:05:36 +00:00
Joseph Koshy
115cadfd60 Describe pmc_event_names_of_class() in its own manual page. 2007-11-23 12:30:55 +00:00
Joseph Koshy
1ddf079eed Describe pmc_enable() and pmc_disable() in their own manual page. 2007-11-23 12:21:34 +00:00
Joseph Koshy
8fe4cbb6b7 Describe pmc_allocate() and pmc_release() in their own manual page. 2007-11-23 11:46:08 +00:00
Joseph Koshy
1eb6c69045 Sections of type SHT_GNU_versym use ELF type ELF_T_HALF. Update manual
page and code to match.

Submitted by:	jb
MFC After: 	1 day
2007-11-23 11:29:36 +00:00
John Birrell
37e19e1d85 Use an intermediate pointer to avoid a strict aliasing warning. 2007-11-23 05:52:13 +00:00
David Xu
da4410f25f Simplify code, fix a thread cancellation bug in sem_wait and sem_timedwait. 2007-11-23 05:42:52 +00:00
David Xu
4877aaebc1 Reuse nwaiter member field to record number of waiters, in sem_post(),
this should reduce the chance having to do a syscall when there is no
waiter in the semaphore.
2007-11-21 06:01:02 +00:00
David Xu
73ba600faa Remove warning level and aliasing restrictions. 2007-11-21 05:29:57 +00:00
David Xu
9e1ddd5fa0 Convert ceiling type to unsigned integer before comparing, fix compiler
warnings.
2007-11-21 05:25:27 +00:00
David Xu
922d56f9de Add some function prototypes. 2007-11-21 05:23:54 +00:00
David Xu
6fdfcacb4a Remove umtx_t definition, use type long directly, add wrapper function
_thr_umtx_wait_uint() for umtx operation UMTX_OP_WAIT_UINT, use the
function in semaphore operations, this fixed compiler warnings.
2007-11-21 05:21:58 +00:00
John Birrell
3e636fa0e5 Use an intermediate pointer to avoid a strict aliasing warning.
Note that ULong in this code is actually defined as an unsigned integer across
all arches so that the gdtoa() function always processes 32 bit data
despite the unfortunate naming of "ULong".
2007-11-21 01:10:42 +00:00
Mike Makonnen
84f2123154 Enclose entire header in #ifndef _LIBDISK_H_ 2007-11-20 22:48:32 +00:00
Ken Smith
c0bb7d9461 While checking over the libraries for 7.0-REL Kris found the following
libraries had not had their versions bumped relative to 6.3-REL but
had indeed been changed.  We need to bump their version so they can be
properly added to the compat6x port:

	libasn1.so.8 libgssapi.so.8 libhdb.so.8 libkadm5clnt.so.8
	libkadm5srv.so.8 libkafs5.so.8 libkrb5.so.8 libobjc.so.2

MFC After:	1 day
2007-11-20 04:20:32 +00:00
John Birrell
0aad0f2282 These are the things that the tinderbox has problems with because it
doesn't use the default CFLAGS which contain -fno-strict-aliasing.

Until the code is cleaned up, just add -fno-strict-aliasing to the
CFLAGS of these for the tinderboxes' sake, allowing the rest of the
tree to have -Werror enabled again.
2007-11-20 02:07:30 +00:00