Age | Commit message (Collapse) | Author |
|
|
|
n = 128.
Nscan is essentially, the disksort() style elevator algorithm for ordering
disk io operations. The difference is that we will re-order in chunks of
128 operations before continuing with the rest of the work. This avoids
the problem that the basic SCAN (aka elevator algorithm) has where continued
inserts can cause starvation, where requests can sit for a long time. This
solves problems where usb sticks could be unusable while long sequential
writes happened, and systems would become unresponsive while dumping core.
hacked upon (and this version largely rewritten by) tedu and myself.
Note, can be "backed out" by changing BUFQ_DEFAULT back to disksort in
buf.h
ok kettenis@, tedu@, krw@
|
|
This change ensures that writes in flight from the buffer cache via bufq
are limited to a high water mark - when the limit is reached the writes sleep
until the amount of IO in flight reaches a low water mark. This avoids the
problem where userland can queue an unlimited amount of asynchronous writes
resulting in the consumption of all/most of our available buffer mapping kva,
and a long queue of writes to the disk.
ok kettenis@, krw@
|
|
paths are reflexive. It is now possible to fail part-way through a
suspend sequence, and recover along the resume code path.
Split DVACT_SUSPEND by adding a new DVACT_POWERDOWN method is used
after hibernate (and suspend too) to finish the job. Some drivers
must be converted at the same time to use this instead of shutdown hooks
(the others will follow at a later time)
ok kettenis mlarkin
|
|
or blocking for each send(2) call.
diff from UMEZAWA Takeshi
ok bluhm
|
|
consistent when the effective gid isn't also a supplementary group.
ok beck@
|
|
boundary; uvm depends on this and will KASSERT this for its own safety.
Found the hard way, rounding direction discussed with ariane@ (I initially
wanted to round down, but it makes more sense to round up).
Of course noone in his right mind ought to run OMAGIC binaries (-:
|
|
are cleared as well; from hshoexer@, feedback and ok bluhm@, ok claudio@
|
|
in the release path. Especially accessing m in a KDASSERT() could
go wrong.
OK claudio@
|
|
There was a small race in sorwakeup() where that could happen if
we slept before the SB_SPLICE flag was set.
ok claudio@
|
|
conditions as in soreceive(). My goal is to make socket splicing
less protocol dependent.
ok claudio@
|
|
ok beck@
|
|
by the Go linker) as native executables even if they don't contain an
OpenBSD PT_NOTE segment.
Confirmed to fix Go by sthen
ok kettenis, deraadt
|
|
|
|
for all the compat layers which are now gone. Linux compat still works
because it always used another method in any case, and nothing looks at
p_os anymore.
ok jsing
|
|
- Avoid using copyinstr() without checking the return value.
- sys_mount() has already copied the path in, so pass this to the
filesystem mount code so that it does not have to copy it in again.
- Avoid copyinstr()/bzero() dance when we can simply bzero() and strlcpy().
ok krw@
|
|
|
|
|
|
|
|
exiting. At that point ps_single may point to a proc that's already freed.
Since there is no point in killing a process that's already exiting, just
skip this step.
ok guenther@
|
|
pointer array; we can access it directly.
ok guenther
|
|
because elem_count has an unsigned type (size_t).
Noted by Brad/Clang; no binary change on amd64 using GCC either.
|
|
executable and DSO (via crtbegin.c/crtbeginS.c). Not used yet, but
needed before GCC can start emitting -fstack-protector code that uses
them instead of __guard.
|
|
|
|
|
|
shared between processes.
ok djm@
|
|
This also makes sure we call cpu_unidle() on the correct cpu, since the
inlining order was wrong and could call it on the old cpu.
ok kettenis@
|
|
segments to the kernel, ld (2.15), and ld.so. Tested on alpha, amd64,
i386, macppc, and sparc64 (thanks naddy, mpi, and okan!).
Idea discussed for some time; committing now for further testing.
ok deraadt
|
|
an MI file, <sys/syscall_mi.h>, correcting inconsistencies and the
handling when copyin() of arguments fails.
Tested on i386, amd64, sparc64, and alpha (thanks naddy@)
Any issues with other platforms will be fixed in tree.
header name from millert@; ok miod@
|
|
profil() by moving P_PROFIL from proc->p_flag to process->ps_flags with
matching adjustment in fork1() and exit1()
ok matthew@
|
|
chain (m_nextpkt), so the mbuf passed to it must be disconnected completely
from the socket buffer's chains.
Problem noticed by yasuoka@; tweak from krw@, ok deraadt@
|
|
|
|
|
|
|
|
|
|
hibernate info.
ok mlarkin@ stsp@
|
|
ok mlarkin
|
|
corruption seen earlier. This makes hibernate much slower but seems to fix
the corruption problems seen on all machines we've tested on.
|
|
ref-count handling under handling, or blambert@ is messing with my head
|
|
|
|
rlimit, then a write that would take it over the limit should be
clamped, making it a partial write.
ok beck@
|
|
can be suspended and/or decrement pr->ps_singlecount if necessary.
With that added, the call the other direction needs to use its own
flag (EXIT_THREAD_NOCHECK) to avoid looping.
problem diagnosed from a hang naddy@ hit; ok kettenis@
|
|
the scheduler.
ok hasbaert@. deraadt@
|
|
ok matthew@ benno@
|
|
priority of the current running process.
In amd64 a call to need_resched() sends an IPI to the other cpu.
This fixes aja@ problem where he would move the mouse and see 60000
IPIs being sent.
Thanks to mikeb@ for bringing that subject up tuesday.
Actually found this after inquiring guenther@ about some changes in
mi_switch().
ok guenther@ aja@
|
|
tvtohz() so that the rounding is correct and we don't time out a tick early
ok claudio@
|
|
socket is no longer affected by option SOCKET_SPLICE we can simplyfy the
code. OK bluhm@
|
|
before changing p_stat to SDEAD
ok pirofti@
|
|
OK guenther@ and deraadt@
|
|
ok blambert@ krw@ tedu@ miod@
|