| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
Notes:
svn path=/head/; revision=133857
|
| |
|
|
| |
Notes:
svn path=/head/; revision=133806
|
| |
|
|
|
|
|
| |
2. Export symbols needed by debugger.
Notes:
svn path=/head/; revision=133801
|
| |
|
|
| |
Notes:
svn path=/head/; revision=133756
|
| |
|
|
|
|
|
| |
kse_switchin syscall.
Notes:
svn path=/head/; revision=132928
|
| |
|
|
| |
Notes:
svn path=/head/; revision=132927
|
| |
|
|
|
|
|
| |
athlon64 machine.
Notes:
svn path=/head/; revision=132913
|
| |
|
|
|
|
|
| |
the time being.
Notes:
svn path=/head/; revision=132400
|
| |
|
|
| |
Notes:
svn path=/head/; revision=132128
|
| |
|
|
| |
Notes:
svn path=/head/; revision=132125
|
| |
|
|
| |
Notes:
svn path=/head/; revision=132021
|
| |
|
|
|
|
|
| |
_amd64_restore_context().
Notes:
svn path=/head/; revision=130206
|
| |
|
|
|
|
|
| |
as stubs.
Notes:
svn path=/head/; revision=129206
|
| |
|
|
|
|
|
|
|
|
|
| |
These files had tags after teh copyright notice,
inside the comment block (incorrect, removed),
and outside the comment block (correct).
Approved by: rwatson (mentor)
Notes:
svn path=/head/; revision=125669
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
Notes:
svn path=/head/; revision=121409
|
| |
|
|
|
|
|
|
|
|
| |
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=120675
|
| |
|
|
| |
Notes:
svn path=/head/; revision=120469
|
| |
|
|
| |
Notes:
svn path=/head/; revision=120454
|
| |
|
|
| |
Notes:
svn path=/head/; revision=120337
|
| |
|
|
|
|
|
|
|
| |
pthread_md.h. This commit only moves the definition; it does not
change it for any of the platforms. This more easily allows 64-bit
architectures (in particular) to pick a slightly larger stack size.
Notes:
svn path=/head/; revision=120263
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
THR_SETCONTEXT as PANIC(). The THR_SETCONTEXT macro is currently not
used, which means that the definition we had could be wrong, overly
pessimistic or unknowingly right. I don't like the odds...
The new _ia64_break_setcontext() and corresponding kernel fixes make
KSE mostly usable. There's still a case where we don't properly
restore a context and end up with a NaT consumption fault (typically
an indication for not handling NaT collection points correctly),
but at least now mutex_d works...
Notes:
svn path=/head/; revision=120254
|
| |
|
|
|
|
|
|
| |
Instead use the break instruction with an immediate specially
created for us.
Notes:
svn path=/head/; revision=120253
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
state for amd64 was twice as large as necessary. Peter
recently fixed this, so the comment no longer applies.
Also, since the size of struct mcontext changed, adjust
the threads library version of get&set context to match.
FYI, any change layout/size change to any arch's struct
mcontext will likely need some minor changes in libpthread.
Notes:
svn path=/head/; revision=120108
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
instead of long types for low-level locks.
Add prototypes for some internal libc functions that are
wrapped by the library as cancellation points.
Add memory barriers to alpha atomic swap functions (submitted
by davidxu).
Requested by: bde
Notes:
svn path=/head/; revision=119723
|
| |
|
|
| |
Notes:
svn path=/head/; revision=118844
|
| |
|
|
|
|
|
|
|
| |
there is still some missing kernel support.
Reviewed by: marcel
Notes:
svn path=/head/; revision=118689
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
happens, the context of the interrupted thread is exported to
userland. Unlike most contexts, it will be an async context and
we cannot easily use our existing functions to set such a
context.
To avoid a lot of complexity that may possibly interfere with
the common case, we simply let the kernel deal with it. However,
we don't use the EPC based syscall path to invoke setcontext(2).
No, we use the break-based syscall path. That way the trapframe
will be compatible with the context we're trying to restore and
we save the kernel a lot of trouble. The kind of trouble we did
not want to go though ourselves...
However, we also need to set the threads mailbox and there's no
syscall to help us out. To avoid creating a new syscall, we use
the context itself to pass the information to the kernel so that
the kernel can update the mailbox. This involves setting a flag
(_MC_FLAGS_KSE_SET_MBOX) and setting ifa (the address) and isr
(the value).
Notes:
svn path=/head/; revision=118592
|
| |
|
|
| |
Notes:
svn path=/head/; revision=118519
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
TCB. We know that the thread pointer points to &tcb->tcb_tp, so all
we have to do is subtract offsetof(struct tcb, tcb_tp) from the
thread pointer to get to the TCB. Any reasonably smart compiler will
translate accesses to fields in the TCB as negative offsets from TP.
In _tcb_set() make sure the fake TCB gets a pointer to the current
KCB, just like any other TCB. This fixes a NULL-pointer dereference
in _thr_ref_add() when it tried to get the current KSE.
Notes:
svn path=/head/; revision=118518
|
| |
|
|
|
|
|
|
|
|
| |
that the TLS is 16-byte aligned, as well as guarantee that the thread
pointer is 16-byte aligned as it points to struct ia64_tp. Likewise,
struct tcb and struct ksd are also guaranteed to be 16-byte aligned
(if they weren't already).
Notes:
svn path=/head/; revision=118513
|
| |
|
|
| |
Notes:
svn path=/head/; revision=118512
|
| |
|
|
|
|
|
|
|
|
|
|
| |
archs that can (or are required to) have per-thread registers.
Tested on i386, amd64; marcel is testing on ia64 and will
have some follow-up commits.
Reviewed by: davidxu
Notes:
svn path=/head/; revision=118510
|
| |
|
|
|
|
|
|
|
|
|
|
| |
context functions. We don't need to enter the kernel anymore. The
contexts are compatible (ie a context created by getcontext() can
be restored by _ia64_restore_context()).
While here, make the use of THR_ALIGNBYTES and THR_ALIGN a no-op.
They are going to be removed anyway.
Notes:
svn path=/head/; revision=118507
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
We write 1 for r8 in the context so that _ia64_restore_context()
will return with a non-zero value. _ia64_save_context() always
return 0.
o In _ia64_restore_context(), don't restore the thread pointer. It
is not normally part of the context. Also, restore the return
registers. We get called for contexts created by getcontext(),
which means we have to restore all the syscall return values.
Notes:
svn path=/head/; revision=118504
|
| |
|
|
| |
Notes:
svn path=/head/; revision=118368
|
| |
|
|
|
|
|
| |
Reminded by: marcel
Notes:
svn path=/head/; revision=118285
|
| |
|
|
| |
Notes:
svn path=/head/; revision=118279
|
| |
|
|
|
|
|
|
|
|
|
|
| |
the userland version of [gs]etcontext to switch between a thread
and the UTS scheduler (and back again). This also fixes a bug
in i386 _thr_setcontext() which wasn't properly restoring the
context.
Reviewed by: davidxu
Notes:
svn path=/head/; revision=118277
|
| |
|
|
| |
Notes:
svn path=/head/; revision=118257
|
| |
|
|
| |
Notes:
svn path=/head/; revision=118256
|
| |
|
|
| |
Notes:
svn path=/head/; revision=118037
|
| |
|
|
|
|
|
| |
THR_SETCONTEXT().
Notes:
svn path=/head/; revision=117807
|