Age | Commit message (Collapse) | Author |
|
ok thib beck art
|
|
file copies to nfsv2 causes the system to eventually peg the console.
On the console ^T indicates that the load is increasing rapidly, ddb
indicates many calls to getbuf, there is some very slow nfs traffic
making none (or extremely slow) progress. Eventually some machines
seize up entirely.
|
|
biowait() reads that do *not* come from the buffer cache - we use the
B_RAW flag to identify these at art's suggestion - since it makes sense
and the flag was not being used. this just flags all these buffers with
B_RAW - biodone already ignores returned buffers marked B_RAW.
ok art@
|
|
sgi.
|
|
|
|
|
|
bpf(4) are different enough so that the split makes sense -- this is necessary
to make bpf(4) cloneable.
requested deraadt@, OK thib@
|
|
-1.
ok henning@ beck@ ray@
|
|
the hp300 related ones currently in use. CN_NORMAL becomes CN_LOWPRI,
CN_INTERNAL becomes CN_MIDPRI and CN_REMOTE becomes CN_HIGHPRI.
ok miod@
|
|
1 for 88110), for userland to have an easy way to figure out.
|
|
|
|
|
|
it five times.
|
|
of offsets / sizeof(register_t), and nuke the REG_OFF macro. No functional
change.
|
|
this allows us to get rid of the dependency of asm_macro.h on asm.h, which
was really only there to bring in psl.h.
|
|
|
|
|
|
|
|
more board design-independent.
The main changes are:
- define logical interrupt sources, which match the on-board devices as
well as the seven VME interrupt sources. Use these whenever possible
when registering interrupts in the drivers, so that the actual interrupt
mask layouts are hidden.
- make the on-board and VME interrupt handlers separate. On-board interrupt
handlers are not really associated to an interrupt vector, only to a
given interrupt source, and only one handler can be registered for a
logical interrupt source. On the other hand, VME interrupts come with a
vector number, and can be shared. This allows VME devices to really use
the whole 256 vectors space, starting at vector zero.
- update the real interrupt masks upon interrupt handler registration and
removal, so that only interrupt sources for which a handler exists may
be enabled.
- update the VME interrupt allocation logic to allow exclusive vector
allocation.
- move the Z8536 clock routines to their own file, since they are not
AV400-specific; while there, calibrate the delay constant upon startup
for more accurate delay().
The vme driver is the only one left with AV400 tentacles left, to be fixed
very soon.
|
|
the PROM has eaten part of it, so that the reported memory size in dmesg is
a nice round number.
|
|
so stash it in a board-independent header.
|
|
stealing pages in pmap_bootstrap. While there, use up to four times more
memory for these buffers if the machine has enough physical memory.
|
|
had not been reported to aviion.
|
|
neighbours start visiting me with large axes.
|
|
|
|
|
|
|
|
more work in progress to handle these exceptions correctly, and document
a new undocumented and evil chip bug while there.
|
|
field from the processor identification register; this allows .S code which
needs to decide on the cpu type at runtime to check quicker, without needing
to access memory. No functional change.
|
|
of its initialization stack. Oops.
|
|
needs it includes <machine/param.h> already.
|
|
x86 __mp_lock changes, but keeping the internal __cpu_simplelock_t to
guarantee atomic access to the __mp_lock fields.
|
|
|
|
|
|
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..
|
|
decide which files must be pulled into the kernel. Also conditionalize
the pulling of those files based on the COMPAT_* options.
|
|
|
|
IPL_NONE; fixes a false splassert warning on boot.
|
|
appropriate types. No functional change.
|
|
|
|
boards such as mvme1[89]7 where spl changes can be atomic.
|
|
|
|
been years since it has last been used for that purpose, so name it the
initialization/startup stack.
While there, do not store the initialization stack in cpu_info, and have
secondary_pre_main() return its value so that the bootstrap code does not
need to fetch it from cpu_info.
This might be reconsidered when the startup stacks will be freed after they
are not used anymore, but there are more things to do first.
|
|
a single ci_flags bitfield.
Also, set_cpu_number() will no longer set CIF_PRIMARY on the primary processor,
it's up to the initialization code to do this.
|
|
stack a startup stack.
|
|
rather the expecting it to do this for us.
|
|
- 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
|
|
ok art@
|
|
kernel builds locally this doesnt change much but over NFS this
cuts about 12% of the build time on my setup (i386).
OK miod@, deraadt@.
|
|
cpu_disklabel can go away, since nothing anymore needs to use it; ok miod
|