Age | Commit message (Collapse) | Author |
|
|
|
ok dlg@, tested by dlg@, oga@, jsg@, deraadt@
|
|
ok krw@
|
|
ok weingart@
|
|
and do an ipi_nop cross-call from signotify() instead.
ok miod@
|
|
pointed out by and ok drahn@, toby@;
|
|
|
|
ok marco@
|
|
|
|
before pcibios(4), and then.... if acpi(4) attaches, skip pcibios(4) since
it messes the machines up. Fixes claudio's HP dl320 G5, and almost assuredly
others.
ok kettenis
|
|
also assume that 386 cpus are really unknown, and promote them to 486
instead of panic.
|
|
code. At this moment all architectures get the copy of the old code
except i386 which gets a new shiny implementation that doesn't spin
at splhigh (doh!) and doesn't try to grab the biglock when releasing
the biglock (double doh!).
Shaves 10% of system time during kernel compile and might solve a few
bugs as a bonus.
Other architectures coming shortly.
miod@ deraadt@ ok
|
|
|
|
a single device node will talk to the right kernel code automatically.
ok deraadt
|
|
uniform. as a result shared code like acpi needs less #ifdef's
ok marco kettenis
|
|
ok deraadt
|
|
designations.
ok deraadt
|
|
prompted by deraadt
|
|
ok deraadt
|
|
significantly clean up the APM idle loop things. I actually can make
sense of what the APM idle loop is supposed to do.
Ok gwk@, beck@, and theo says ramdisks compile.
|
|
ok art deraadt
|
|
|
|
noone else uses this acpi except the command); from Mike Belopuhov
|
|
well (in fact, all 4 combinations of codebase and processor) written by
Mike Belopuhov and Aleksey Lomovtsev
|
|
- 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
|
|
by savectx().
ok art@, miod@
|
|
|
|
Paraphrasing, "make it clear this should be fixed in pcc asap".
|
|
__builtin_next_arg for !GCC until pcc supports it. ok kjell@ miod@
|
|
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.
|
|
to synchronize the tsc between CPUs anymore. While here, also remove
the slow TLB IPI since it's been dead for a while.
noticed by mickey
toby@ ok
|
|
version for i386
more architectures and ctob() replacement is being worked on
prodded by and ok miod
|
|
|
|
Comments and ok kettenis, art & miod
|
|
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
|
|
ok jsg
|
|
the commit which enabled DEADBEEF* overrides, then values have been
discussed a bit more and improved; reminded by and ok art@
|
|
pieces. Since this is where the "boot both ELF32 and ELF64" behaviour
is turned on for i386, it is quite important.
Bump version numbers too.
Found by ckuethe@; thanks.
|
|
from a diff by pierre riteau, but updated to look like the amd64 version
ok deraadt
|
|
the rare 80386-bases system with enough memory, a 387 FPU, a useable
disk subsystem, and the patience to wait for it to unpack the
distribution .tgz files.
approval from art@ and many others (esp. nick@); ok deraadt@
|
|
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@
|
|
with the complicated and expensive macros.
tom@ ok
|
|
debugging by tom@, art@, kettenis@, and others. Testing by many others.
ok art@, kettenis@, tom@
|
|
very simple and dumb fast tlb IPI handlers that have in the order of
the same amount of instructions as the old code had function calls.
All TLB shootdowns are reorganized so that we always shoot the,
without looking at PG_U and when we're shooting a range (primarily in
pmap_remove), we shoot the range when there are 32 or less pages in
it, otherwise we just nuke the whole TLB (this might need tweaking if
someone is interested in micro-optimization). The IPIs are not handled
through the normal interrupt vectoring code, they are not blockable
and they only shoot one page or a range of pages or the whole tlb.
This gives a 15% reduction in system time on my dual-core laptop
during a kernel compile and an 18% reduction in real time on a quad
machine doing bulk ports build.
Tested by many, in snaps for a week, no slowdowns reported (although not
everyone is seeing such huge wins).
|
|
splassert_ctl > 0 in __predict_false().
ok deraadt@
|
|
have cpu_info now, so kill the option.
eyeballed by jsg@ and grange@
|
|
option. Every architecture implements mutexes now.
|
|
It uses a function pointer to choose between the 386 and 486 versions.
The 386 version is not MP safe, but we're not expecting MP support
for 386 cpus.
miod@ ok (and prodding)
|
|
pg_flags, so we actually shave quite a few bytes from the memory
we eat at boot. (a machine with 1GB memory saves 256k).
deraadt@, pedro@, krw@ ok. Lots of testing.
|