Age | Commit message (Collapse) | Author |
|
ok miod@
|
|
directive can select between MI and MD versions of these files. At
the same time, adjust the boot programs to pick exactly what they need,
instead of the 7 or 8 mechanisms previously used.
There will be some fallout from this, but testing it all by myself is a
ridiculously slow process; it will be finished in-tree.
Various developers were very nice and avoided making fun of me when I
was gibbering in the corner..
|
|
|
|
Shaves a few bytes of the kernel.
No measurable performance loss.
ok drahn@, kettenis@
|
|
|
|
Requested by deraadt@
|
|
|
|
|
|
- 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
|
|
tech@ by Jung.
|
|
the holes a MMU may have from a given vm_map. This will be automagically
invoked for newly created vmspaces.
On platforms with MMU holes (e.g. sun4, sun4c and vax), this prevents
mmap(2) hints which would end up being in the hole to be accepted as valid,
causing unexpected signals when the process tries to access the hole
(since pmap can not fill the hole anyway).
Unfortunately, the logic mmap() uses to pick a valid address for anonymous
mappings needs work, as it will only try to find an address higher than the
hint, which causes all mmap() with a hint in the hole to fail on vax. This
will be improved later.
|
|
Register. Fixes PR 5574. From Stefan Kempf.
ok deraadt@
|
|
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@
|
|
|
|
|
|
mbuf constants from MD param.h to MI param.h.
Besides being the same on every arch, things will
most probly break if any arch has different values
then the others.
The NMBCLUSTERS constants needs to be MD though;
ok miod@,krw@,claudio@
|
|
|
|
|
|
function. ok kettenis@
|
|
have cpu_info now, so kill the option.
eyeballed by jsg@ and grange@
|
|
option. Every architecture implements mutexes now.
|
|
|
|
|
|
|
|
ok thib@, deraadt@
|
|
special register.
ok drahn@
|
|
entered before vm_physmem[] are initialized will be cached. This is a
temporary measure until this pmap implements pmap_steal_memory().
Help and ok drahn@
|
|
No need to save sticks anymore.
miod@ ok and test
|
|
|
|
deraadt@.
"reads right" deraadt@
|
|
MULTIPROCESSOR. From now on sprg0 holds a pointer to struct cpuinfo, which
is used to spill registers to during trap instead of the globals we used to
use for that purpose. Bits and pieces from NetBSD. Help from drahn@ and art@.
Tested by xsa@, thib@, miod@, gwk@, deraadt@.
ok drahn@, gwk@
|
|
ok drahn@
|
|
it's a good idea to use atomic.h operations on it. This mechanic
change updates all bit operations on p_flag to atomic_{set,clear}bits_int.
Only exception is that P_OWEUPC is set by MI code before calling
need_proftick and it's automatically cleared by ADDUPC. There's
no reason for MD handling of that flag since everyone handles it the
same way.
kettenis@ ok
|
|
parameter of pool_init()
ok drahn@
no objections miod@
|
|
rt and such; tested and ok miod drahn
|
|
right now that are supposed to be atomic with respect to interrupts and
SMP: atomic_setbits_int and atomic_clearbits_int.
All architectures other than i386 and amd64 get dummy implementations
since at first we'll be replacing operations that are done with
"a |= bit" and "a &= ~bit" today. More proper implementations will follow
kettenis@, miod@ ok
|
|
doing so, do not check for signals - userret() will do this.
|
|
for cpu_swapin() on hppa* which is kept).
|
|
|
|
|
|
"looks good to me" miod@, ok drahn@
|
|
of a function in the MD macppc host bridge code.
ok drahn@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
architectures. They are now defined as unsigned long, long, long
and unsigned long respectively.
|
|
|