| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Don't install man pages.
Temporarily (again) rename the library to libkse. It will be put back
to libpthread after more wide-spread testing.
|
|
|
|
|
|
| |
to always set %gs when resuming a thread.
Install this library as libpthread instead of libkse.
|
|
|
|
|
|
|
|
| |
on behalf of the KSE.
Add a kse_reinit function to reinitialize a reused KSE.
Submitted by: davidxu
|
| |
|
|
|
|
|
|
|
|
|
| |
provided by Sergey A. Osokin <osa@freebsd.org.ru>.
In order to test this on a single CPU machine, you need to:
sysctl kern.threads.debug=1
sysctl kern.threads.virtual_cpu=2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
lock level is 0. Thus far, the threads implementation doesn't use
mutexes or condition variables so the lock level should be 0.
Save the return value when trying to schedule a new thread and
use this to return an error from pthread_create().
Change the max sleep time for an idle KSE to 1 minute from 2 minutes.
Maintain a count of the number of KSEs within a KSEG.
With these changes scope system threads seem to work, but heavy
use of them crash the kernel (supposedly VM bugs).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to be instances where the kernel doesn't properly save and/or
restore it.
Use noupcall and nocompleted flags in the KSE mailbox. These
require kernel changes to work which will be committed sometime
later. Things still work without the changes.
Remove the general kse entry function and use two different
functions -- one for scope system threads and one for scope
process threads. The scope system function is not yet enabled
and we use the same function for all threads at the moment.
Keep a copy of the KSE stack for the case that a KSE runs
a scope system thread and uses the same stack as the thread
(no upcalls are generated, so a separate stack isn't needed).
This isn't enabled yet.
Use a separate field for the KSE waiting flag. It isn't
correct to use the mailbox flags field.
The following fixes were provided by David Xu:
o Initialize condition variable locks with thread versions
of the low-level locking functions instead of the kse versions.
o Enable threading before creating the first thread instead
of after.
o Don't enter critical regions when trying to malloc/free
or call functions that malloc/free.
o Take the scheduling lock when inheriting thread attributes.
o Check the attribute's stack pointer instead of the
attributes stack size for null when allocating a
thread's stack.
o Add a kseg reinit function so we don't have to destroy and
then recreate the same lock.
o Check the return value of kse_create() and return an
appropriate error if it fails.
o Don't forget to destroy a thread's locks when freeing it.
o Examine the correct flags word for checking to see if
a thread is in a synchronization queue.
Things should now work on an SMP kernel.
|
| |
|
|
|
|
|
|
| |
on a couple of days ago. This should be the most recent changes.
Noticed by: davidxu
|
|
|
|
| |
my local version.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
environment. This includes support for multiple KSEs and KSEGs.
The ability to create more than 1 KSE via pthread_setconcurrency()
is in the works as well as support for PTHREAD_SCOPE_SYSTEM threads.
Those should come shortly.
There are still some known issues which davidxu and I are working
on, but it'll make it easier for us by committing what we have.
This library now passes all of the ACE tests that libc_r passes
with the exception of one. It also seems to work OK with KDE
including konqueror, kwrite, etc. I haven't been able to get
mozilla to run due to lack of java plugin, so I'd be interested
to see how it works with that.
Reviewed by: davidxu
|
|
|
|
|
|
| |
Modify thread errno for the new libpthread changes.
Reviewed by: davidxu
|
|
|
|
|
|
|
| |
data, and userland versions of [gs]etcontext().
Modify the UTS entry and exit functions to account of FPU validity
and format.
|
|
|
|
|
|
| |
more complicated things than just setting the lock to 0.
- Implement stubs for this function in libc and the two threading libraries
that are currently in the tree.
|
|
|
|
| |
Requested by: jhb
|
|
|
|
| |
writter thread can block reader threads to get read lock.
|
|
|
|
| |
Noticed by: julian
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Submitted by: Craig Rodrigues <rodrigc@attbi.com>
|
| |
|
|
|
|
|
|
|
| |
This will avoid any accidental use of an experimental library.
Suggested by: rwatson
Approved by: re (jhb)
|
|
|
|
|
|
|
| |
of the wait queue.
Approved by: re (blanket)
Stolen from: davidxu
|
|
|
|
| |
syscall.
|
|
|
|
|
|
|
|
| |
In _thread_switch, set current thread pointer in kse mailbox
only after all registers copied out of thread mailbox, kernel will do
upcall at trap time, if set current thread pointer before loading all
registers from thread mailbox, at trap time, the thread mailbox data
will be overwritten by kernel, result is junk data is loaded into CPU.
|
| |
|
|
|
|
| |
Reviewed by: deischen, mini
|
|
|
|
| |
further upcalls.
|
|
|
|
| |
signal mask.
|
| |
|
|
|
|
|
|
| |
`sigprocmask', `sigaltstack', and `sigwait' as well as to the
prototypes of the apparantly unimplemented functions `sigtimedwait'
and `sigwaitinfo'. This complies with IEEE Std 1003.1-2001.
|
| |
|
|
|
|
|
| |
Reviewed by: deischen, julian
Approved by: -arch
|
| |
|
|
|
|
|
|
|
|
| |
The new libpthread will provide POSIX threading support using KSE.
These files were previously repo-copied from src/lib/libc_r.
Reviewed by: deischen
Approved by: -arch
|
|
|
|
|
|
|
|
|
|
|
| |
at file flags and replace it with functions that will avoid null
pointer checks.
MFC to be done by archie ;-)
PR: 42100
Reviewed by: archie, robert
MFC after: 3 days
|
|
|
|
|
|
|
|
|
|
| |
file descriptor bit if poll() returns POLLERR, POLLHUP, or POLLNVAL.
Othewise, it's possible for select() to return successfully but
with no bits set.
Reviewed by: deischen
MFC after: 3 days
PR: bin/42175
|
|
|
|
|
|
|
|
| |
on behalf of a thread, we should check the POLLERR, POLLHUP, and
POLLNVAL flags as well to wake up the thread in these cases.
Suggested by: deischen
MFC after: 3 days
|
| |
|
|
|
|
|
|
|
| |
initially suspended. This was preventing such threads from getting
resumed.
Reported by: Bill Huey <billh@gnuppy.monkey.org>
|
|
|
|
| |
Pointed out by: julian
|
|
|
|
|
|
| |
the process as well as pending on the current thread.
Reported by: Andrew MacIntyre <andymac@bullseye.apana.org.au>
|
|
|
|
| |
Prompted by: wollman
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and pthread_resume_all_np(). These suspend and resume all threads except
the current thread, respectively. The existing functions pthread_single_np()
and pthread_multi_np(), which formerly had no effect, now exhibit the same
behaviour and pthread_suspend_all_np() and pthread_resume_all_np(). These
functions have been added mostly for the native java port.
Don't allow the uthread kernel pipe to use the same descriptors as
stdio. Mostily submitted by Oswald Buddenhagen <ossi@kde.org>.
Correct some minor style nits.
|
|
|
|
|
|
|
|
| |
pthread_page_size.
Fix a bunch line wrapping.
Pointed out by: deischen
|