Age | Commit message (Collapse) | Author |
|
- 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
|
|
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.
|
|
|
|
interrupts get counted; from mickey
|
|
cpu_disklabel can go away, since nothing anymore needs to use it; ok miod
|
|
to support hotplug media on most architectures. disklabel setup and
verification done using new helper functions. Disklabels must *always*
have a correct checksum now. Same code paths are used to learn on-disk
location disklabels, to avoid new errors sneaking in. Tested on almost all
cases, testing help from todd, kettenis, krw, otto, dlg, robert, gwk, drahn
|
|
type of all variables to daddr64_t. this includes the APIs for XXsize()
and XXdump(), all range checks inside bio drivers, internal variables
for disklabel handling, and even uvm's swap offsets. re-read numerous
times by otto, miod, krw, thib to look for errors
|
|
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@
|
|
|
|
at the moment).
|
|
have cpu_info now, so kill the option.
eyeballed by jsg@ and grange@
|
|
option. Every architecture implements mutexes now.
|
|
deraadt@ ok
|
|
years ago; ok miod
|
|
|
|
to go.
|
|
variables from arch/sh/ to arch/landisk/. ok deraadt@
|
|
|
|
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
|
|
|
|
|
|
always saved upon context switches, as FPU registers are heavily used for
long long computations (don't ask). Gcc default to -m4.
Credits to drahn@ otto@ and deraadt@ for feedback and help testing.
Upgrade procedure if you don't want to use the damn snapshots:
- build and install new kernel, reboot off it
- build new gcc, do not install it yet
- make includes
- install new gcc
- build and install lib/csu and lib/libc
- make build
|
|
be allowed to fiddle with it anyway.
|
|
rt and such; tested and ok miod drahn
|
|
|
|
trampoline code and ld.so.
|
|
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
|
|
up to machdep.kbdreset; modelled after the sparc64 power(4) driver
discussed with miod@ and jsg@
|
|
for cpu_swapin() on hppa* which is kept).
|
|
|
|
|
|
code that uses it declares a volatile form
|
|
|
|
some more), which fixeds drand48(), which fixes perl build. ok miod@
drahn@ deraadt@
|
|
|
|
|
|
|
|
|
|
I suspect this is really a bug in the P1_STACK code path.
|
|
|
|
to store or might be on the stack.
|
|
"The dosparts member of cpu_disklabel was not used for any persistant
data. Eliminate it, and just use the data being read in while
processing MBR and EBR records.
Should be no functional change.
ok weingart@ deraadt@"
|
|
some architectures (kaboom); that will be fixed in the next iteration
hopefully!
|
|
data. Eliminate it, and just use the data being read in while
processing MBR and EBR records.
Should be no functional change.
ok weingart@ deraadt@
|
|
|
|
|
|
|
|
|
|
"Free commits" miod@
|
|
|