Age | Commit message (Collapse) | Author |
|
normally.
ok deraadt@ tedu@ otto@
|
|
daemon requires splbio when doing dirty buffer queue manipulation. Since
version 1.88 of vfs_bio.c, it was possible to break out of the processing
loop when the cleaner had been running long enough, and this early exit would
mean a future pass through would manipulate the buffer queues not at splbio.
This change corrects this.
ok krw@, deraadt@, tedu@, thib@
|
|
|
|
miod@ ok.
|
|
|
|
- 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
|
|
size_t and ssize_t variables.
OK miod and cthulhu.
|
|
mbuf back.
for fixing PR5563 in a few, tested janjaap@stack.nl, ok claudio
|
|
mclpool as an extern, do so explicitly
ok henning@ claudio@
|
|
and a file is written onto the stick. Without these fixes the
machine panics or hangs.
The usb fix calls the callback when the stick is pulled out to free
the associated buffers. Otherwise we have busy buffers for ever
and the automatic unmount will panic.
The change in the scsi layer prevents passing down further dirty
buffers to usb after the stick has been deactivated.
In vfs the automatic unmount has moved from the function vgonel()
to vop_generic_revoke(). Both are called when the sd device's vnode
is removed. In vgonel() the VXLOCK is already held which can cause
a deadlock. So call dounmount() earlier.
ok krw@, I like this marco@, tested by ian@
|
|
help and ok miod@ thib@
|
|
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.
|
|
ok thib@
|
|
eyeballed and ok dlg@
|
|
But the reason for this isn't some kind of "we can make it use the
pre-zeroed pages and zero the freelist in the idle loop and OMG I can
has optimisatiuns" which would require tons of infrastructure and make
everything slower.
The reason is that it shrinks other code. And that's good.
dlg@ ok, henning@ ok (before he read the diff)
|
|
not -1;
ok miod@
|
|
version for i386
more architectures and ctob() replacement is being worked on
prodded by and ok miod
|
|
the kernel printf. This will allow support for the real %z in the near future.
|
|
cases we could end up releasing an unlocked lock.
fixes pr's 5534 and 5564, confirmed by submitters.
thanks!.
ok art@
|
|
"array" index start at 1, the code also abused index 0 to detect that we
were doing a KERN_POOL_NPOOLS.
Just look at *name == KERN_POOL_NPOOLS instead of using index == 0 for that.
deraadt@ ok
|
|
|
|
in FreeBSD and NetBSD. OK art@ beck@
|
|
buffer position in vfs_getcwd_getcache() and restoring it on error.
Use u_int32_t for the componentname hash, use the same type in
the diagnostic code in relookup() to prevent unsigned vs signed errors.
help, testing & ok kurt@
ok millert@, art@
|
|
brings us back roughly to 4.1 level performance, although this is still
far from optimal as we have seen in a number of cases. This change
1) puts a lower bound on buffer cache queues to prevent starvation
2) fixes the code which looks for a buffer to recycle
3) reduces the number of vnodes back to 4.1 levels to avoid complex
performance issues better addressed after 4.2
ok art@ deraadt@, tested by many
|
|
|
|
under #ifdef DEBUG. Adjust the verbiage. Some minor tweaks while in
the area.
ok deraadt@
|
|
DISKPART(dev). Thus making the idiom the same everywhere.
pointed out by deraadt@
|
|
"flt_noram1" would get truncated otherwise.
ok deraadt
|
|
bug in the code, but as soon as I try to fix it, it seems to trigger
some other bugs. Instead of trying to figure out what's going on
while everyone suffers, it's better to back out and figure out
the bugs outside the tree.
|
|
Also remove the _MEXTREMOVE macro which was only used by MFREE.
This time with the uipc_mbuf.c change that I missed last time.
|
|
than the hardware page size, as was the case in the old clustering code.
This fixes vnd reads on alpha and sparc64
On behalf of pedro@, ok art@
|
|
|
|
ok deraadt@
|
|
kernel thread of its own. the api has changed (which will be fixed in the
manpage shortly) so all the users of sensor tasks that i can find have
been fixed too.
noone tested, so its going in to force people to run with it.
"put it in" deraadt@
|
|
|
|
cpu_disklabel can go away, since nothing anymore needs to use it; ok miod
|
|
no binary change
|
|
ok thib@
|
|
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
|
|
with a disklabel. Original diff from pedro@; ok pedro@ deraadt@
|
|
(stdarg.h, leftover from the vararg's idea).
ok tedu@
|
|
if it was ok beforehands)
|
|
|
|
bounds_check_with_label(). Tweak error path to eliminate duplicate
code.
|
|
routines (alpha, vax) prove to be not worth keeping. Move
bounds_check_with_label() into the MI world. Eliminate unreliable and
almost certainly useless checks for overwriting a disklabel.
After discussion with deraadt@
|
|
|
|
|
|
|
|
implimentations were simply either missing code, or spacing and such.
setdisklabel() can become MI now.
|
|
temporary, place
|