| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Submitted by: Andreas Hauser <andy-freebsd@splashground.de>
|
|
|
|
| |
more work than the others). This should make most modules build with -O2.
|
|
|
|
| |
Removed a redundant clause.
|
|
|
|
| |
and thread list locks.
|
|
|
|
| |
Suggested by: wollman
|
|
|
|
|
| |
to e.g. correctly load all .ko.gz's I've tried, as opposed to messing
up trying to read section headers on some of them.
|
|
|
|
|
|
| |
PR: docs/60068
Submitted by: Ken Stailey
MFC after: 2 weeks
|
|
|
|
|
|
| |
- include ashldi3.c/ashrdi3.c from libc for UFS 64-bit arith
- pull in syncicache.c from libc, and define _STANDALONE for
loader usage
|
|
|
|
| |
- remove XXX normalization bit comment, code is correct.
|
|
|
|
|
| |
manpage and add a kse_switchin link. While here, list kse_thr_interrupt
before kse_wakeup in the MLINKS variable and the synopsis.
|
|
|
|
|
|
|
|
|
| |
likely to be non-zero. When leaving the cancellation point, check
the return value against -1 to see if cancellation should be
checked. While I'm here, make the same change to connect() just
to be consisitent.
Pointed out by: davidxu
|
| |
|
| |
|
|
|
|
|
|
| |
PTHREAD_NEW_STATE should work as expected now: a thread
marked PS_RUNNING will get sent a SIGTHR.
Still more cleanups necessary.
|
|
|
|
|
| |
thread on one of the mutex or condition variable queues is removed
from those queues before the real signal handler is called.
|
|
|
|
| |
table.
|
|
|
|
|
| |
around signals.
o Lock the process global signal action table.
|
| |
|
|
|
|
| |
avoids signal to be blocked when otherwise it can be handled.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
_thr_leave_cancellation_point to _thr_cancel_leave, add a parameter
to _thr_cancel_leave to indicate whether cancellation point should be
checked, this gives us an option to not check cancallation point if
a syscall successfully returns to avoid any leaks, current I have
creat(), open() and fcntl(F_DUPFD) to not check cancellation point
after they sucessfully returned.
Replace some members in structure kse with bit flags to same some
memory.
Conditionally compile THR_ASSERT to nothing if _PTHREAD_INVARIANTS is
not defined.
Inline some small functions in thr_cancel.c.
Use __predict_false in thr_kern.c for some executed only once code.
Reviewd by: deischen
|
| |
|
|
|
|
|
|
|
| |
Save __mbrtowc and __wcrtomb and restore them when changing back to
the cached locale.
Reported by: perky
|
|
|
|
|
|
|
| |
locks for [libc] spinlock implementation. This was previously backed
out because it exposed a bug in ia64 implementation.
OK'd by: marcel
|
|
|
|
|
| |
PR: 59765
Submitted by: Ryuichiro Imura <imura@ryu16.org>
|
|
|
|
|
|
|
|
|
| |
flags. We now create asynchronous contexts or syscall contexts only.
Syscall contexts differ from the minimal ABI dictated contexts by
having the scratch registers saved and restored because that's where
we keep the syscall arguments and syscall return values.
Since this change affects KSE, have it use kse_switchin(2) for the
"new" syscall context.
|
|
|
|
|
| |
Submitted by: Paul Vixie <paul@vix.com> / ISC
MFC After: 1 week
|
|
|
|
|
|
| |
Instead of just deleting it, turn the original page into a general
overview of the multibyte character conversion functions, somewhat
similar to stdio(3).
|
| |
|
| |
|
|
|
|
| |
Approved by: re(scottl)
|
|
|
|
| |
Approved by: re(scottl)
|
|
|
|
|
|
| |
libskey.so.2 libusbhid.so.0 libutil.so.3 libvgl.so.2 to the mix.
Approved by: re(scottl)
|
|
|
|
|
|
|
|
|
|
|
| |
UTS with the stack correctly aligned. Also, while here, use an indirect
jump rather than the pushq/ret hack.
This fixes threaded apps that use floating point for me, although
it hasn't solved all the problems. It is an improvement though.
Preservation of the 128 byte red zone hasn't been resolved yet.
Approved by: re (scottl)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ABI-required stack alignment. C code expects that the push of the
return address disturbed the 16 byte alignment and it will take corrective
measures to fix it before making another call. Of course, if its wrong
to start with, then all hell breaks loose. Essentially we "fix" this
by making the stack alignment odd to start with.
This was one of the things that broke on libkse with apps that use
floating point/varargs/etc.
Approved by: re (scottl)
|
|
|
|
|
|
|
|
|
| |
we can end up with some threads with a non-16-byte-aligned stack. This
causes some interesting side effects, including general protection
faults leading to a SIGBUS when doing floating point or varargs. This
should be just a verbose NOP for the other platforms.
Approved by: re (scottl)
|
|
|
|
| |
Approved by: re (scottl)
|
|
|
|
|
|
|
|
|
|
| |
to sendfile(2) being erroneously automatically restarted after a signal
is delivered. Fixed by converting ERESTART to EINTR prior to exiting.
Updated manual page to indicate the potential EINTR error, its cause
and consequences.
Approved by: re@freebsd.org
|
|
|
|
|
|
| |
helps branch predict a lot for INTEL P4.
Approved by: re (scottl)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
through branch predict as suggested in INTEL IA32 optimization guide.
2.Allocate siginfo arrary separately to avoid pthread to be allocated at
2K boundary, which hits L1 address alias problem and causes context
switch to be slow down.
3.Simplify context switch code by removing redundant code, code size is
reduced, so it is expected to run faster.
Reviewed by: deischen
Approved by: re (scottl)
|
|
|
|
|
|
|
|
| |
in init_main_thread. Also don't initialize lock and lockuser again for initial
thread, it is already done by _thr_alloc().
Reviewed by: deischen
Approved by: re (scottl)
|
|
|
|
|
|
| |
libskey.so.2 libusbhid.so.0 libutil.so.3 libvgl.so.2 to the mix.
Approved by: scottl
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
initialization overhead, there's a problem in that we never call
imalloc() and thus malloc_init() for zero-sized allocations. As a
result, malloc(0) returns NULL when it's the first or only malloc in
the program. Any non-zero allocation will initialize the malloc code
with the side-effect that subsequent zero-sized allocations return a
non-NULL pointer. This is because the pointer we return for zero-
sized allocations is calculated from malloc_pageshift, which needs
to be initialized at runtime on ia64.
The result of the inconsistent behaviour described above is that
configure scripts failed the test for a GNU compatible malloc. This
resulted in a lot of broken ports.
Other, even simpler, solutions were possible as well:
1. initialize malloc_pageshift with some non-zero value (say 13 for
8KB pages) and keep the runtime adjustment.
2. Stop using malloc_pageshift to calculate ZEROSIZEPTR.
Removal of the runtime adjustment was chosen because then ia64 is the
same as any other platform. It is not to say that using a page size
obtained at runtime is bad per se. It's that there's currently a high
level of gratuity for its existence and the moment it causes problems
is the moment you need to get rid of it. Hence, it's not unthinkable
that this commit is (partially) reverted some time in the future when
we do have a good reason for it and a good way to achieve it.
Approved by: re@ (rwatson)
Reported by: kris (portmgr@) -- may the ports be with you
|
|
|
|
| |
Approved by: re
|
|
|
|
|
|
|
| |
more than NGROUP elements without providing the opportunity to
setgroups to fail and correctly return error and set errno.
MFC after: 2 weeks
|
|
|
|
|
|
|
|
| |
kern_prot.c:
if (ngrp > NGROUPS)
return (EINVAL);
MFC after: 2 weeks
|
|
|
|
|
|
|
|
| |
that they will be installed before application constructors are invoked.
Its possible to link applications such that this fails, application code
is invoked before they are installed, but, well, Don't Do That.
Approved by: re (jhb)
|
|
|
|
|
| |
Obtained from: TrustedBSD Project
Sponsored by: DARPA, Network Associates Laboratories
|
|
|
|
|
|
| |
crunched binary.
Found by: make release
|
| |
|
|
|
|
|
|
|
| |
was rejected as a range error, while any values less than LONG_MIN
were silently substituted with LONG_MIN. Furthermore, on some
platforms `time_t' has less range than `long' (e.g. alpha), which may
give incorrect results when parsing some strings.
|