| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
| |
Depend on %rsi being preserved across the "syscall"-style syscall and strip
out the PIC stuff (this cpu has full PC-relative addressing, at last!)
|
|
|
|
|
| |
instructions here, these may need to be updated for SSE.
(Repocopied from i386/gen)
|
| |
|
|
|
|
|
| |
the bswap instruction (yay!). Update for register parameter passing
instead of i386 style stack based param passing.
|
|
|
|
|
|
|
|
|
|
| |
Note that the syscall instruction clobbers %rcx, which is inconvenient
because it is the fourth syscall argument, so we use %r10 (another scratch
register) for the 4th syscall arg instead (I picked %r10 to be the same as
NetBSD). int 0x80 is still possible though, and it uses %rcx as usual.
Note that the syscall style syscall does *NOT* preserve all the registers,
unlike int 0x80. We do not preserve the scratch registers except for
%rdi and %rsi. int 0x80 does preserve everything but the return values.
|
| |
|
|
|
|
|
|
|
| |
AMD64 does away with the x87 in 64-bit long mode, so we have to play the
SSE/SSE2 game now.
Obtained from: NetBSD/x86-64
|
| |
|
| |
|
|
|
|
| |
thread so that the context (SSE FPU state) is also aligned.
|
|
|
|
|
|
|
| |
on the previous behaviour. This also brings strptime(3) behaviour back in line
with the other BSDs.
Approved by: markm (mentor)
|
| |
|
|
|
|
| |
doing unnecessary idle kse wakeup.
|
|
|
|
| |
to run.
|
|
|
|
|
| |
PR: bin/51508
Submitted by: Peter Grimshaw <peter@tesseract.demon.co.uk>
|
|
|
|
| |
PR: bin/51508
|
| |
|
|
|
|
|
|
|
| |
technique) so that we don't wind up calling into an application's
version if the application defines them.
Inspired by: qpopper's interfering and buggy version of strlcpy
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
a thread lock).
Better protect access to thread state while searching for
threads to handle a signal.
Better protect access to process pending signals while processing
a thread in sigwait().
Submitted by: davidxu
|
|
|
|
| |
Submitted by: Bruce M Simpson
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
KSEs when it's thread exits; allow the GC handler to do that.
o Make spinlock/spinlock critical regions.
The following were submitted by davidxu
o Alow thr_switch() to take a null mailbox argument.
o Better protect cancellation checks.
o Don't set KSE specific data when creating new KSEs; rely on the
first upcall of the KSE to set it.
o Add the ability to set the maximum concurrency level and do this
automatically. We should have a way to enable/disable this with
some sort of tunable because some applications may not want this
to be the default.
o Hold the scheduling lock across thread switch calls.
o If scheduling of a thread fails, make sure to remove it from the list
of active threads.
o Better protect accesses to a joining threads when the target thread is
exited and detached.
o Remove some macro definitions that are now provided by <sys/kse.h>.
o Don't leave the library in threaded mode if creation of the initial
KSE fails.
o Wakeup idle KSEs when there are threads ready to run.
o Maintain the number of threads active in the priority queue.
|
|
|
|
|
|
|
|
| |
While I'm here, use the TAILQ_FOREACH macro instead of a more
manual method which was inherited from libc_r (so we could
remove elements from the list which isn't needed for libpthread).
Submitted by: Kazuaki Oda <kaakun@highway.ne.jp>
|
|
|
|
|
| |
function prototype with `pid_t' to match the declaration in
<unistd.h>.
|
|
|
|
| |
manual page function prototypes.
|
|
|
|
|
| |
PR: 50796
Submitted by: Dmitry Sivachenko <mitya@cavia.pp.ru>
|
|
|
|
|
|
| |
'struct kinfo_proc' for calls to kvm_getargv() and kvm_getenvv().
PR: 51322
|
| |
|
|
|
|
|
|
|
|
|
|
| |
setgrent, and endgrent also. (The previous NSS implementation used to
simply twiddle the internal data of the various modules directly.)
A symptom (group list set incorrectly in sshd) was
Reported by: Glenn Johnson <gjohnson@srrc.ars.usda.gov>
Sponsored by: DARPA, Network Associates Laboratories
|
|
|
|
| |
malloc() to Malloc(), and free() to Free(), in zalloc_malloc.c.
|
|
|
|
|
|
|
| |
as libkse and will once again be renamed libpthread after more
testing.
Approved by: re
|
|
|
|
|
|
|
| |
Don't install man pages.
Temporarily (again) rename the library to libkse. It will be put back
to libpthread after more wide-spread testing.
|
|
|
|
|
|
|
|
| |
idea to re-initialize `struct passwd', because e.g. pw_class might
get set by one module, but not by another. Add another call to the
internal pwd_init function to accomplish this.
Sponsored by: DARPA, Network Associates Laboratories
|
|
|
|
|
|
| |
namespace.h.
Sponsored by: DARPA, Network Associates Laboratories
|
|
|
|
|
|
| |
annoying and not very useful.
Sponsored by: DARPA, Network Associates Laboratories
|
|
|
|
|
|
| |
namespace.h.
Sponsored by: DARPA, Network Associates Laboratories
|
|
|
|
|
|
| |
namespace.h.
Sponsored by: DARPA, Network Associates Laboratories
|
|
|
|
|
|
| |
password must necessarily have an empty pwd->pw_passwd. Also add a check
that prevents users from setting a blank password unless the nullok option
was specified. Root is still allowed to give anyone a blank password.
|
| |
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Submitted by: David Leimbach <leimy2k@mac.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Correct a bug that should have wreaked havoc everywhere, but for
some reason only bit unlucky people who use `-march' optimizations.
The compiler cannot assist one in distinguishing between the two
function calls below.
int nsdispatch(void *, ...);
void *discard;
nsdispatch(&discard, ...); /* correct .. no, really! */
nsdispatch(discard, ...); /* Boom */
Robin provided me with a debugging environment in which I could see
what was going on.
Badness when using CPUTYPE was
Reported by: "Robin P. Blanchard" <Robin.Blanchard@gactr.uga.edu>
Reported by: nork
Sponsored by: DARPA, Network Associates Laboratories
|
| |
|
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
| |
just makes our own life harder.
|
|
|
|
| |
I wonder how I managed to cross-compile this yesterday.
|
|
|
|
| |
structures.
|
|
|
|
|
|
|
|
|
|
|
|
| |
An incorrectly-sized allocation was being made due to an incorrect
argument to the `sizeof' operator. Obvious, because it violated the
`foo = malloc(sizeof(*foo))' idiom. Hard-to-see, because it was a
missing `*' (`*p' versus `**p').
Resulting failure was
Reported by: ache
Sponsored by: DARPA, Network Associates Laboratories
|