Age | Commit message (Collapse) | Author |
|
MULTIPROCESSOR.
|
|
For the possibility of sleeping, the first two flags are UVM_PLA_WAITOK
and UVM_PLA_NOWAIT. It is an error not to show intention, so assert that
one of the two is provided. Switch over every caller in the tree to
using the appropriate flag.
ok art@, ariane@
|
|
between instances, saving space in the kernel. feedback from many (some
incorporated, some left for future work).
ok deraadt, kettenis, "why not" miod.
|
|
with different locking mechanism. 88110 soft ipi are replaced with an
ipi callback which is checked upon return from exception (it can not be kept
as a softintr, as the generic softinterrupt code doesn't have per-cpu
pending softintr queues).
|
|
|
|
|
|
try to be smart for the address range, uvm_pglistalloc() is smart enough
nowadays.
|
|
so that they can invoke sched_init_cpu() before the scheduler starts,
which allows the horrible kluge in cpu_configure() to die.
|
|
|
|
times hardclock() needs to be invoked; fixes clock drift found on 197DP
with SMP kernels.
|
|
ok deraadt@
|
|
possible from the exception, without doing the AST and softintr dance.
This should avoid too much stack usage under load.
ok deraadt@
|
|
ok deraadt@
|
|
to disable NMI sources in addition to interrupt sources, and we can not
use a quick sequence with shadowing frozen as done for atomic ops.
This lets GENERIC.MP boot multiuser on MVME197DP boards, and is so far stable
enough to be able to recompile a kernel from scratch (with make -j2).
|
|
since it was intended to service NMI occuring in user mode, and we could
end up invoking preempt() and have another cpu start using this stack,
with interesting results.
|
|
if another processors sends us an IPI, it will get handled later.
|
|
|
|
|
|
synchronizes the pipeline on 88110.
|
|
for they will attempt to dereference it and having NULL readable while
in the kernel is just cheating.
|
|
- dma_cachectl() split into a ``local cpu only'' and ``all cpus'', and an ipi
to broadcast ``local dma_cachectl'' is added.
- cpu_info fields are rearranged, to have the 88100-specific information
and the 88110-specific information overlap, and has many more 88110
ugly things.
- more ipi handling in the 197-specific area. Since it is not possible to
have the second processor receive any hardware interrupt (selection
is done on a level basis via ISEL, and we definitely do not want the
main cpu to lose interrupts), the best we can do is to inflict ourselves
a soft interrupt for late ipi processing. It gets used for softclock and
hardclock on the secondary processor, but since the soft interrupt
dispatcher doesn't have an exception frame, we have to remember parts
of it to build a fake clockframe from the soft ipi handler (ugly but
works).
This now lets GENERIC.MP run a few userland binaries before bugs trigger.
|
|
from interrupt() and related function pointers.
|
|
as additional argument. This will allow intermediate layers between
scsi devices such as sd and scsi host adapters to take appropriate
action if necessary.
|
|
|
|
|
|
the SCSI part so far.
|
|
|
|
different from regular hardware interrupts to be worth handling the
same way.
Disable IPI reception while we are handling pending IPIs. And do not
reenable them by mistake if we need to send an IPI in return.
This lets GENERIC.MP boot single user on a MVME197DP. There are still
many bugs to fix.
|
|
after the currently running processor has advertized itself as ready.
|
|
we are sure the NMI stack exists.
|
|
on MVME197DP boards running the MP kernel.
|
|
|
|
by anything, will eventually be used by the vx(4) MVME332 driver (once I
take the time to fix it) and the vsbic(4) MVME327 driver being worked on.
|
|
|
|
while we are switching pcbs and all sort of bad things could happen.
|
|
|
|
|
|
the old vs(4) code is gone.
|
|
|
|
|
|
|
|
m88410_initialize_cpu() as well. Since we can't flush unknown data, just
make sure all 88410 lines are filled with valid data before flushing it.
This should fix the spurious ``197DP hangs or loops on osiop errors after
autoconf'' issue I've been seeing.
|
|
|
|
this prevents if_ie buffers from possibly overwriting the stack.
Crank bootloader versions.
|
|
to zero otherwise; allows the tftp bootloader to work again after the switch
to the MI loadfile code.
|
|
What happened was that the output of mkdep was fed to a sed expression
that trimmed a bit more than required and also failed to work when
attempting to do make depend with pcc.
Example:
genassym_c.o: /tmp/genassym.whatever ../../../../../sys/param.h \
was changed to:
assym.h: \
but what was intended was:
assym.h: ../../../../../sys/param.h \
For the pcc -M output things were a bit different and after the make
depend the genassym entry would still remain and make would fail. This
affected all platforms except amd64 and sgi.
Okay miod@.
|
|
from the individual drivers now that ether_ioctl() handles this.
Shrinks the i386 kernels by..
RAMDISK - 2176 bytes
RAMDISKB - 1504 bytes
RAMDISKC - 736 bytes
Tested by naddy@/okan@/sthen@/brad@/todd@/jmc@ and lots of users.
Build tested on almost all archs by todd@/brad@
ok naddy@
|
|
assemblies, so allow up to 512MB of memory on MVME188 systems. Thanks maz
for the 128MB board!
|
|
|
|
the size of a full blown struct cpu_info, instead of the first few fields.
|