#
68204e82 |
| 25-Oct-2022 |
guenther <guenther@openbsd.org> |
Consistently use 'proc_trampoline' as the name of the trampoline used by cpu_fork()
ok miod@ kettenis@ mpi@ deraadt@
|
#
0be467f4 |
| 21-May-2022 |
kettenis <kettenis@openbsd.org> |
Convert KVA allocation to km_alloc(9).
ok mpi@
|
#
69eed90a |
| 16-Jul-2017 |
guenther <guenther@openbsd.org> |
Clear the framepointer (r3) in switch_trampoline to avoid faults in stack trace Reduce size of switch stack frame to match normal 64byte alignment Eliminate useless 'osp' variable when setting up ini
Clear the framepointer (r3) in switch_trampoline to avoid faults in stack trace Reduce size of switch stack frame to match normal 64byte alignment Eliminate useless 'osp' variable when setting up initial frame in cpu_fork()
ok visa@ kettenis@
show more ...
|
#
79a514fc |
| 12-Feb-2017 |
guenther <guenther@openbsd.org> |
Split up fork1(): - FORK_THREAD handling is a totally separate function, thread_fork(), that is only used by sys___tfork() and which loses the flags, func, arg, and newprocp parameters and gai
Split up fork1(): - FORK_THREAD handling is a totally separate function, thread_fork(), that is only used by sys___tfork() and which loses the flags, func, arg, and newprocp parameters and gains tcb parameter to guarantee the new thread's TCB is set before the creating thread returns - fork1() loses its stack and tidptr parameters Common bits factor out: - struct proc allocation and initialization moves to thread_new() - maxthread handling moves to fork_check_maxthread() - setting the new thread running moves to fork_thread_start() The MD cpu_fork() function swaps its unused stacksize parameter for a tcb parameter.
luna88k testing by aoyama@, alpha testing by dlg@ ok mpi@
show more ...
|
#
2df12b22 |
| 05-May-2015 |
guenther <guenther@openbsd.org> |
emul_native is only used for kernel threads which can't dump core, so delete coredump_trad(), uvm_coredump(), cpu_coredump(), struct md_coredump, and various #includes that are superfluous.
This lea
emul_native is only used for kernel threads which can't dump core, so delete coredump_trad(), uvm_coredump(), cpu_coredump(), struct md_coredump, and various #includes that are superfluous.
This leaves compat_linux processes without a coredump callback. If that ability is desired, someone should update it to use coredump_elf32() and verify the results...
ok kettenis@
show more ...
|
#
fde894e5 |
| 16-Dec-2014 |
tedu <tedu@openbsd.org> |
primary change: move uvm_vnode out of vnode, keeping only a pointer. objective: vnode.h doesn't include uvm_extern.h anymore. followup changes: include uvm_extern.h or lock.h where necessary. ok and
primary change: move uvm_vnode out of vnode, keeping only a pointer. objective: vnode.h doesn't include uvm_extern.h anymore. followup changes: include uvm_extern.h or lock.h where necessary. ok and help from deraadt
show more ...
|
#
1e8cdc2e |
| 16-Nov-2014 |
deraadt <deraadt@openbsd.org> |
Replace a plethora of historical protection options with just PROT_NONE, PROT_READ, PROT_WRITE, and PROT_EXEC from mman.h. PROT_MASK is introduced as the one true way of extracting those bits. Remove
Replace a plethora of historical protection options with just PROT_NONE, PROT_READ, PROT_WRITE, and PROT_EXEC from mman.h. PROT_MASK is introduced as the one true way of extracting those bits. Remove UVM_ADV_* wrapper, using the standard names. ok doug guenther kettenis
show more ...
|
#
0d6ad30d |
| 08-Apr-2014 |
mpi <mpi@openbsd.org> |
Less <uvm/uvm.h>
|
#
50caf0f9 |
| 16-Jan-2013 |
miod <miod@openbsd.org> |
cpu_coredump() also needs to invoke vn_rdwr() without IO_NODELOCKED; only affects a.out binaries' core dumps.
|
#
16b62b6a |
| 21-Jun-2012 |
guenther <guenther@openbsd.org> |
__tfork() needs to set the stack address of the new thread in the kernel, so that it can't get a signal while still running on the parent thread's stack. Also, pass in sizeof(struct __tfork) to prov
__tfork() needs to set the stack address of the new thread in the kernel, so that it can't get a signal while still running on the parent thread's stack. Also, pass in sizeof(struct __tfork) to provide forward compat when more members are added. This is an ABI change, so switch syscall numbers and bump lib majors this time.
ok deraadt@ matthew@
show more ...
|
#
b5861ab6 |
| 20-Sep-2011 |
miod <miod@openbsd.org> |
calee -> callee
|
#
2f8e4113 |
| 01-Jul-2010 |
jsing <jsing@openbsd.org> |
Create a struct to store FP state and include a pointer to the CPU that currently holds the FPU context for this process. This will be soon used to implement FPU shootdowns on multiprocessor kernels.
Create a struct to store FP state and include a pointer to the CPU that currently holds the FPU context for this process. This will be soon used to implement FPU shootdowns on multiprocessor kernels.
ok kettenis@
show more ...
|
#
a786d415 |
| 29-Jun-2010 |
jsing <jsing@openbsd.org> |
Ansify function declarations.
ok kettenis@
|
#
41f648c2 |
| 29-Jun-2010 |
jsing <jsing@openbsd.org> |
Factor out code used to save and flushe process FPU context.
ok kettenis@
|
#
2e94a5f6 |
| 29-Jun-2010 |
jsing <jsing@openbsd.org> |
Store pointer to process FPU state in struct cpu_info.
ok kettenis@
|
#
6b0bfd4a |
| 02-May-2010 |
kettenis <kettenis@openbsd.org> |
Properly initialize the members of `struct mdproc' that deal with single-stepping when we fork and reset them upon exec.
ok miod@
|
#
00532b01 |
| 19-Apr-2010 |
jsing <jsing@openbsd.org> |
Make the Processor Status Word (PSW) a per-CPU value.
ok kettenis@
|
#
77f7fc32 |
| 29-Jul-2009 |
kettenis <kettenis@openbsd.org> |
Get rid of non-equivalent aliases of the pcb by moving the fpu state out of the pcb and using the p_addr member of 'struct proc' to calculate the address of the kernel stack when switching to virtual
Get rid of non-equivalent aliases of the pcb by moving the fpu state out of the pcb and using the p_addr member of 'struct proc' to calculate the address of the kernel stack when switching to virtual mode after taking a trap. Remove the now unecessary cache flushes; they're actually harmful since they create non-equivalent aliases. This seems to fix the memory corruption we have been observing from time to time.
This diff does not rename fpu_curpcb, which is now somewhat incorrectly named. I hope to change things back again as soon as we are able to map the pcb 1:1.
show more ...
|
#
3305e6ef |
| 26-Jun-2009 |
miod <miod@openbsd.org> |
Prefer fdcache() to pdcache() in cpu_fork(), as the MI uvm code has touched p->p_stats earlier, and loss of information there can cause spurious SIGPROF or SIGVTALRM to be delivered. ok kettenis@
|
#
73686733 |
| 11-Jun-2009 |
kettenis <kettenis@openbsd.org> |
Correctly flush direct mappings (cache/tlb). Uncovered by ariane's new allocator.
|
#
725ea000 |
| 26-Mar-2009 |
oga <oga@openbsd.org> |
Remove cpu_wait(). It's original use was to be called from the reaper so MD code would free resources that couldn't be freed until we were no longer running in that processor. However, it's is unused
Remove cpu_wait(). It's original use was to be called from the reaper so MD code would free resources that couldn't be freed until we were no longer running in that processor. However, it's is unused on all architectures since mikeb@'s tss changes on x86 earlier in the year.
ok miod@
show more ...
|
#
beab8d6b |
| 30-Sep-2008 |
miod <miod@openbsd.org> |
Do not perform cache operations in vmapbuf(), pmap is supposed to do them for us if needed.
ok art@ kettenis@
|
#
937d80b4 |
| 14-Jul-2008 |
miod <miod@openbsd.org> |
Be sure to propagate PSL_O in psw on PCXU* processors to userland processes and signal handlers. ok kettenis@
|
#
45053f4a |
| 10-Oct-2007 |
art <art@openbsd.org> |
Make context switching much more MI: - Move the functionality of choosing a process from cpu_switch into a much simpler function: cpu_switchto. Instead of having the locore code walk the run q
Make context switching much more MI: - Move the functionality of choosing a process from cpu_switch into a much simpler function: cpu_switchto. Instead of having the locore code walk the run queues, let the MI code choose the process we want to run and only implement the context switching itself in MD code. - Let MD context switching run without worrying about spls or locks. - Instead of having the idle loop implemented with special contexts in MD code, implement one idle proc for each cpu. make the idle loop MI with MD hooks. - Change the proc lists from the old style vax queues to TAILQs. - Change the sleep queue from vax queues to TAILQs. This makes wakeup() go from O(n^2) to O(n)
there will be some MD fallout, but it will be fixed shortly. There's also a few cleanups to be done after this.
deraadt@, kettenis@ ok
show more ...
|
#
d754d5af |
| 20-Jun-2007 |
miod <miod@openbsd.org> |
In vunmapbuf(), explicitely remove mappings before invoking uvm_km_free(). Even if the latter would end up removing the mappings by itself, it would do so using pmap_remove() because phys_map is not
In vunmapbuf(), explicitely remove mappings before invoking uvm_km_free(). Even if the latter would end up removing the mappings by itself, it would do so using pmap_remove() because phys_map is not intrsafe; but some platforms use pmap_kenter_pa() in vmapbuf(). By removing the mappings ourselves, we can ensure the remove function used matches the enter function which has been used. Discussed and theoretical ok art@
show more ...
|