| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
Notes:
svn path=/head/; revision=123933
|
| |
|
|
|
|
|
| |
new fork() wrapper.
Notes:
svn path=/head/; revision=123668
|
| |
|
|
| |
Notes:
svn path=/head/; revision=123666
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
Notes:
svn path=/head/; revision=123365
|
| |
|
|
| |
Notes:
svn path=/head/; revision=123356
|
| |
|
|
| |
Notes:
svn path=/head/; revision=123355
|
| |
|
|
|
|
|
| |
avoids signal to be blocked when otherwise it can be handled.
Notes:
svn path=/head/; revision=123314
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
_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
Notes:
svn path=/head/; revision=123312
|
| |
|
|
| |
Notes:
svn path=/head/; revision=123310
|
| |
|
|
|
|
|
|
|
|
| |
locks for [libc] spinlock implementation. This was previously backed
out because it exposed a bug in ia64 implementation.
OK'd by: marcel
Notes:
svn path=/head/; revision=123297
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
Notes:
svn path=/head/; revision=123255
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
Notes:
svn path=/head/; revision=123155
|
| |
|
|
|
|
|
|
|
| |
helps branch predict a lot for INTEL P4.
Approved by: re (scottl)
Notes:
svn path=/head/; revision=123049
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
Notes:
svn path=/head/; revision=123048
|
| |
|
|
|
|
|
|
|
|
|
| |
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)
Notes:
svn path=/head/; revision=123047
|
| |
|
|
|
|
|
|
|
| |
locks until we know why this breaks ia64.
Reported by: marcel
Notes:
svn path=/head/; revision=122801
|
| |
|
|
|
|
|
|
|
| |
signal handling mode, there is no chance to handle the signal, something
must be wrong in the library, just call kse_thr_interrupt to dump its core.
I have the code for a long time, but forgot to commit it.
Notes:
svn path=/head/; revision=122338
|
| |
|
|
|
|
|
| |
Reviewed by: deischen
Notes:
svn path=/head/; revision=122299
|
| |
|
|
|
|
|
| |
Reviewed by: bde
Notes:
svn path=/head/; revision=122131
|
| |
|
|
|
|
|
| |
Noticed by: bde
Notes:
svn path=/head/; revision=122130
|
| |
|
|
| |
Notes:
svn path=/head/; revision=122089
|
| |
|
|
|
|
|
|
|
|
|
| |
Aside from the POSIX requirements for pthread_atfork(), when
fork()ing, take the malloc lock to keep malloc state consistent
in the child.
Reviewed by: davidxu
Notes:
svn path=/head/; revision=122075
|
| |
|
|
|
|
|
|
|
| |
locks.
Reviewed by: davidxu
Notes:
svn path=/head/; revision=122074
|
| |
|
|
|
|
|
|
|
| |
internal lock, not a pthread spinlock).
Reviewed by: davidxu
Notes:
svn path=/head/; revision=122073
|
| |
|
|
|
|
|
| |
Add a blank line after a variable declaration.
Notes:
svn path=/head/; revision=122072
|
| |
|
|
|
|
|
|
| |
begin with underscores and provide weak definitions without
underscores. Make the pthread spinlock conform to this convention.
Notes:
svn path=/head/; revision=122071
|
| |
|
|
|
|
|
|
|
| |
API).
Reviewed by: davidxu
Notes:
svn path=/head/; revision=122070
|
| |
|
|
| |
Notes:
svn path=/head/; revision=121409
|
| |
|
|
| |
Notes:
svn path=/head/; revision=121266
|
| |
|
|
|
|
|
|
|
|
| |
about the fpu code here. It should be using fxsave/fxrstor instead of
saving/restoring the control word. The SSE registers are used a lot in
gcc generated code on amd64. I'm not sure how this all fits together
though.
Notes:
svn path=/head/; revision=121163
|
| |
|
|
| |
Notes:
svn path=/head/; revision=121043
|
| |
|
|
|
|
|
|
| |
The first argument is the UTS function, the second argument is the
first argument to the UTS function. Who's on first.
Notes:
svn path=/head/; revision=120956
|
| |
|
|
|
|
|
|
| |
return 0 when called the first time, and return 1 when resumed by
thr_setcontext().
Notes:
svn path=/head/; revision=120939
|
| |
|
|
|
|
|
|
|
|
|
| |
yet work, but hopefully someone familiar with the sparc64
port can pick up the reins.
Submitted by: jake
With mods by: deischen
Notes:
svn path=/head/; revision=120924
|
| |
|
|
| |
Notes:
svn path=/head/; revision=120897
|
| |
|
|
|
|
|
|
|
|
| |
thread state is changed from RUNNING to WAIT state and do some cancellation
operations for every cancellable state.
Reviewed by: deischen
Notes:
svn path=/head/; revision=120896
|
| |
|
|
|
|
|
|
|
| |
for all wrapped syscalls under SMP.
Reviewed by: deischen
Notes:
svn path=/head/; revision=120895
|
| |
|
|
| |
Notes:
svn path=/head/; revision=120675
|
| |
|
|
| |
Notes:
svn path=/head/; revision=120672
|
| |
|
|
|
|
|
|
|
|
|
| |
was not proper English)
PR: docs/57434
Approved: blackend (mentor)
Reviewed by: deischen
Notes:
svn path=/head/; revision=120670
|
| |
|
|
| |
Notes:
svn path=/head/; revision=120658
|
| |
|
|
|
|
|
|
|
| |
threads are still referencing the kse by migrating them to initial kse.
Reviewed by: deischen
Notes:
svn path=/head/; revision=120567
|
| |
|
|
| |
Notes:
svn path=/head/; revision=120554
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
On ia64, where there's no libc_r at all, libkse is now the default
thread library by virtue of these links.
The reasons for this change are:
1. libkse is slated to become the default thread library anyway,
2. active development and maintenance is only present for libkse,
3. GNOME and KDE, both in the process of being supported on ia64,
work better with KSE; even on ia64.
Notes:
svn path=/head/; revision=120533
|
| |
|
|
| |
Notes:
svn path=/head/; revision=120469
|
| |
|
|
| |
Notes:
svn path=/head/; revision=120454
|
| |
|
|
|
|
|
| |
Reviewed by: deischen
Notes:
svn path=/head/; revision=120436
|
| |
|
|
| |
Notes:
svn path=/head/; revision=120429
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
can clear the pointer to mutex, not the thread doing mutex
handoff. Because _mutex_lock_backout does not hold scheduler
lock while testing THR_FLAGS_IN_SYNCQ and then reading mutex
pointer, it is possible mutex owner begin to unlock and
handoff the mutex to the current thread, and mutex pointer
will be cleared to NULL before current thread reading it, so
current thread will end up with deferencing a NULL pointer,
Fix the race by making mutex waiters to clear their mutex pointers.
While I am here, also save inherited priority in mutex for
PTHREAD_PRIO_INERIT mutex in mutex_trylock_common just like what
we did in mutex_lock_common.
Notes:
svn path=/head/; revision=120403
|
| |
|
|
| |
Notes:
svn path=/head/; revision=120370
|