OpenBSD CVS

CVS log for src/sys/kern/init_main.c


[BACK] Up to [local] / src / sys / kern

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.326 / (download) - annotate - [select for diffs], Tue Apr 2 08:39:16 2024 UTC (2 months, 1 week ago) by deraadt
Branch: MAIN
CVS Tags: HEAD
Changes since 1.325: +2 -2 lines
Diff to previous 1.325 (colored)

Delete the msyscall mechanism entirely, since mimmutable+pinsyscalls has
replaced it with a more strict mechanism, which happens to be lockless O(1)
rather than micro-lock O(1)+O(log N).  Also nop-out the sys_msyscall(2) guts,
but leave the syscall around for a bit longer so that people can build through
it, since ld.so(1) still wants to call it.

Revision 1.325 / (download) - annotate - [select for diffs], Wed Feb 14 06:17:51 2024 UTC (3 months, 3 weeks ago) by miod
Branch: MAIN
CVS Tags: OPENBSD_7_5_BASE, OPENBSD_7_5
Changes since 1.324: +2 -2 lines
Diff to previous 1.324 (colored)

Enable the pool gc thread on m88k MULTIPROCESSOR kernels now that
pmap_unmap_direct() has been fixed; also tested by aoyama@

Revision 1.324 / (download) - annotate - [select for diffs], Mon Jan 1 07:00:18 2024 UTC (5 months, 1 week ago) by jsg
Branch: MAIN
Changes since 1.323: +2 -2 lines
Diff to previous 1.323 (colored)

copyright++;

Revision 1.323 / (download) - annotate - [select for diffs], Mon Dec 11 22:12:53 2023 UTC (5 months, 4 weeks ago) by kettenis
Branch: MAIN
Changes since 1.322: +2 -1 lines
Diff to previous 1.322 (colored)

Implement per-CPU caching for the page table page (vp) pool and the PTE
descriptor (pted) pool in the arm64 pmap implementation.  This
significantly reduces the side-effects of lock contention on the kernel
map lock that is (incorrectly) translated into excessive page daemon
wakeups.  This is not a perfect solution but it does lead to significant
speedups on machines with many CPU cores.

This requires adding a new pmap_init_percpu() function that gets called
at the point where kernel is ready to set up the per-CPU pool caches.
Dummy implementations of this function are added for all non-arm64
architectures.  Some other architectures can probably benefit from
providing an actual implementation that sets up per-CPU caches for
pmap pools as well.

ok phessler@, claudio@, miod@, patrick@

Revision 1.322 / (download) - annotate - [select for diffs], Tue Aug 29 16:19:34 2023 UTC (9 months, 1 week ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_7_4_BASE, OPENBSD_7_4
Changes since 1.321: +3 -7 lines
Diff to previous 1.321 (colored)

Remove p_rtime from struct proc and replace it by passing the timespec
as argument to the tuagg_locked function.

- Remove incorrect use of p_rtime in other parts of the tree. p_rtime was
almost always 0 so including it in any sum did not alter the result.
- In main() the update of time can be further simplified since at that time
only the primary cpu is running.
- Add missing nanouptime() call in cpu_hatch() for hppa
- Rename tuagg_unlocked to tuagg_locked like it is done in the rest of
  the tree.

OK cheloha@ dlg@

Revision 1.321 / (download) - annotate - [select for diffs], Thu Jun 15 22:18:06 2023 UTC (11 months, 3 weeks ago) by cheloha
Branch: MAIN
Changes since 1.320: +3 -1 lines
Diff to previous 1.320 (colored)

all platforms, main(): call clockqueue_init() just before sched_init_cpu()

Move the clockqueue_init() call out of clockintr_cpu_init() and up
just before the sched_init_cpu() call for a given CPU.

This will allow sched_init_cpu() to allocate clockintr handles for a
given CPU's scheduler in a later patch.

Link: https://marc.info/?l=openbsd-tech&m=168661507607622&w=2

ok kettenis@, claudio@

Revision 1.320 / (download) - annotate - [select for diffs], Sun Jan 1 07:00:51 2023 UTC (17 months, 1 week ago) by jsg
Branch: MAIN
CVS Tags: OPENBSD_7_3_BASE, OPENBSD_7_3
Changes since 1.319: +2 -2 lines
Diff to previous 1.319 (colored)

copyright++;

Revision 1.319 / (download) - annotate - [select for diffs], Thu Nov 10 07:05:41 2022 UTC (19 months ago) by jmatthew
Branch: MAIN
Changes since 1.318: +3 -1 lines
Diff to previous 1.318 (colored)

Add support for per-cpu event counters, to be used for clock and IPI
counters where the event being counted occurs across all CPUs in the
system.  Counter instances can be made per-cpu by calling evcount_percpu()
after the counter is attached, and this can occur before or after all system
CPUs are attached.  Per-cpu counter instances should be incremented using
evcount_inc().

ok kettenis@ jca@ cheloha@

Revision 1.318 / (download) - annotate - [select for diffs], Sun Oct 30 17:43:40 2022 UTC (19 months, 1 week ago) by guenther
Branch: MAIN
Changes since 1.317: +2 -2 lines
Diff to previous 1.317 (colored)

Simplfity setregs() by passing it the ps_strings and switching
sys_execve() to return EJUSTRETURN.

setregs() is the MD routine used by sys_execve() to set up the
thread's trapframe and PCB such that, on 'return' to userspace, it
has the register values defined by the ABI and otherwise zero.  It
had to set the syscall retval[] values previously because the normal
syscall return path overwrites a couple registers with the retval[]
values.  By instead returning EJUSTRETURN that and some complexity
with program-counter handling on m88k and sparc64 goes away.

Also, give setregs() add a 'struct ps_strings *arginfo' argument
so powerpc, powerpc64, and sh can directly get argc/argv/envp
values for registers instead of copyin()ing the one in userspace.

Improvements from miod@ and millert@
Testing assistance miod@, kettenis@, and aoyama@
ok miod@ kettenis@

Revision 1.317 / (download) - annotate - [select for diffs], Sun Aug 14 01:58:27 2022 UTC (21 months, 4 weeks ago) by jsg
Branch: MAIN
CVS Tags: OPENBSD_7_2_BASE, OPENBSD_7_2
Changes since 1.316: +1 -11 lines
Diff to previous 1.316 (colored)

remove unneeded includes in sys/kern
ok mpi@ miod@

Revision 1.316 / (download) - annotate - [select for diffs], Sat Jul 23 22:10:58 2022 UTC (22 months, 2 weeks ago) by cheloha
Branch: MAIN
Changes since 1.315: +1 -3 lines
Diff to previous 1.315 (colored)

kernel: remove global "randompid" toggle

Apparently, we used to created several kthreads before the kernel
random number generator was up and running.  A toggle, "randompid",
was needed to tell allocpid() whether it made sense to attempt to
allocate random PIDs.

However, these days we get e.g. arc4random(9) into a working state
before any kthreads are spawned, so the toggle is no longer needed.

Thread: https://marc.info/?l=openbsd-tech&m=165541052614453&w=2

Very nice historical context provided by miod@.

probably ok miod@ deraadt@

Revision 1.315 / (download) - annotate - [select for diffs], Tue Feb 22 01:15:01 2022 UTC (2 years, 3 months ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_7_1_BASE, OPENBSD_7_1
Changes since 1.314: +1 -2 lines
Diff to previous 1.314 (colored)

Delete unnecessary #includes of <sys/domain.h> and/or <sys/protosw.h>

net/if_pppx.c pointed out by jsg@
ok gnezdo@ deraadt@ jsg@ mpi@ millert@

Revision 1.314 / (download) - annotate - [select for diffs], Sat Jan 1 07:00:57 2022 UTC (2 years, 5 months ago) by jsg
Branch: MAIN
Changes since 1.313: +2 -2 lines
Diff to previous 1.313 (colored)

copyright++;

Revision 1.313 / (download) - annotate - [select for diffs], Thu Dec 9 00:26:10 2021 UTC (2 years, 6 months ago) by guenther
Branch: MAIN
Changes since 1.312: +2 -9 lines
Diff to previous 1.312 (colored)

We only have one syscall table: inline sysent/SYS_MAXSYSCALL and
SYS_syscall as the nosys() function into the MD syscall entry
routines and the SYSCALL_DEBUG support.  Adjust alpha's syscall
check to match the other archs.  Also, make sysent const to get it
into .rodata.

With that, 'struct emul' is unused: delete it and all its references

ok millert@

Revision 1.312 / (download) - annotate - [select for diffs], Tue Dec 7 22:17:02 2021 UTC (2 years, 6 months ago) by guenther
Branch: MAIN
Changes since 1.311: +1 -15 lines
Diff to previous 1.311 (colored)

Delete the last emulation callbacks: we're Just ELF, so declare
exec_elf_fixup() and coredump_elf() in <sys/exec_elf.h> and call
them and the MD setregs() directly in kern_exec.c and kern_sig.c

Also delete e_name[] (only used by sysctl), e_errno (unused), and
e_syscallnames[] (only used by SYSCALL_DEBUG) and constipate
syscallnames to 'const char *const[]'

ok kettenis@

Revision 1.311 / (download) - annotate - [select for diffs], Tue Dec 7 17:51:04 2021 UTC (2 years, 6 months ago) by guenther
Branch: MAIN
Changes since 1.310: +1 -5 lines
Diff to previous 1.310 (colored)

Continue to delete emulation support: we only have one sigcode and
sigobject.  Just use the existing globals for the former and use a
global for the latter.

ok jsg@ kettenis@

Revision 1.310 / (download) - annotate - [select for diffs], Tue Dec 7 04:19:24 2021 UTC (2 years, 6 months ago) by guenther
Branch: MAIN
Changes since 1.309: +1 -2 lines
Diff to previous 1.309 (colored)

Continue to delete emulation support: since we're Just ELF, the size
of the auxinfo is fixed: provide ELF_AUX_WORDS in <sys/exec_elf.h>
as a replacement for emul->e_arglen

ok millert@

Revision 1.309 / (download) - annotate - [select for diffs], Mon Dec 6 21:21:10 2021 UTC (2 years, 6 months ago) by guenther
Branch: MAIN
Changes since 1.308: +1 -2 lines
Diff to previous 1.308 (colored)

Start to delete emulation support: since we're Just ELF, make
copyargs() return 0/1 and merge elf_copyargs() into it.  Rename
ep_emul_arg and ep_emul_argp to have clearer meaning and type and
eliminate ep_emul_argsize as no longer necessary.  Make sure
ep_auxinfo (nee ep_emul_argp) is initialized as powerpc64 always
uses it in setregs().

ok semarie@ deraadt@ kettenis@

Revision 1.308 / (download) - annotate - [select for diffs], Wed Jun 30 12:21:02 2021 UTC (2 years, 11 months ago) by bluhm
Branch: MAIN
CVS Tags: OPENBSD_7_0_BASE, OPENBSD_7_0
Changes since 1.307: +1 -2 lines
Diff to previous 1.307 (colored)

Remove unused variable cryptodesc_pool.  Document global variables
in crypto.c and annotate locking protection.  Assert kernel lock
where needed.  Remove dead code from crypto_get_driverid().  Move
crypto_init() prototype into header file.
OK mpi@

Revision 1.307 / (download) - annotate - [select for diffs], Wed Jun 2 13:56:28 2021 UTC (3 years ago) by visa
Branch: MAIN
Changes since 1.306: +5 -3 lines
Diff to previous 1.306 (colored)

Enable pool cache on knote pool

Use the pool cache to reduce the overhead of memory management in
function kqueue_register().

When EV_ADD is given, kqueue_register() pre-allocates a knote to avoid
potential sleeping in the middle of the critical section that spans
from knote lookup to insertion. However, the pre-allocation is useless
if the lookup finds a matching knote.

The cost of knote allocation will become significant with kqueue-based
poll(2) and select(2) because the frequency of allocation will increase.
Most of the cost appears to come from the locking inside the pool.
The pool cache amortizes it by using CPU-local caches of free knotes
as buffers.

OK dlg@ mpi@

Revision 1.306 / (download) - annotate - [select for diffs], Mon Feb 8 10:51:01 2021 UTC (3 years, 4 months ago) by mpi
Branch: MAIN
CVS Tags: OPENBSD_6_9_BASE, OPENBSD_6_9
Changes since 1.305: +2 -2 lines
Diff to previous 1.305 (colored)

Revert the convertion of per-process thread into a SMR_TAILQ.

We did not reach a consensus about using SMR to unlock single_thread_set()
so there's no point in keeping this change.

Revision 1.305 / (download) - annotate - [select for diffs], Mon Jan 11 18:49:38 2021 UTC (3 years, 4 months ago) by mpi
Branch: MAIN
Changes since 1.304: +2 -1 lines
Diff to previous 1.304 (colored)

New rw_obj_init() API providing reference-counted rwlock.

Original port from NetBSD by guenther@, required for upcoming amap & anon
locking.

ok kettenis@

Revision 1.304 / (download) - annotate - [select for diffs], Fri Jan 1 07:00:33 2021 UTC (3 years, 5 months ago) by jsg
Branch: MAIN
Changes since 1.303: +2 -2 lines
Diff to previous 1.303 (colored)

copyright++;

Revision 1.303 / (download) - annotate - [select for diffs], Mon Dec 28 14:01:23 2020 UTC (3 years, 5 months ago) by mpi
Branch: MAIN
Changes since 1.302: +2 -1 lines
Diff to previous 1.302 (colored)

Use per-CPU counters for fault and stats counters reached in uvm_fault().

ok kettenis@, dlg@

Revision 1.302 / (download) - annotate - [select for diffs], Mon Dec 7 16:55:28 2020 UTC (3 years, 6 months ago) by mpi
Branch: MAIN
Changes since 1.301: +2 -2 lines
Diff to previous 1.301 (colored)

Convert the per-process thread list into a SMR_TAILQ.

Currently all iterations are done under KERNEL_LOCK() and therefor use
the *_LOCKED() variant.

From and ok claudio@

Revision 1.301 / (download) - annotate - [select for diffs], Sun Sep 13 09:42:31 2020 UTC (3 years, 8 months ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_6_8_BASE, OPENBSD_6_8
Changes since 1.300: +2 -2 lines
Diff to previous 1.300 (colored)

Initialize sigacts0 before making them visible by setting ps->ps_sigacts.
OK mpi@

Revision 1.300 / (download) - annotate - [select for diffs], Tue Jun 16 05:09:29 2020 UTC (3 years, 11 months ago) by dlg
Branch: MAIN
Changes since 1.299: +10 -1 lines
Diff to previous 1.299 (colored)

wire stoeplitz code into the tree.

Revision 1.299 / (download) - annotate - [select for diffs], Fri May 29 04:42:25 2020 UTC (4 years ago) by deraadt
Branch: MAIN
Changes since 1.298: +1 -3 lines
Diff to previous 1.298 (colored)

dev/rndvar.h no longer has statistical interfaces (removed during various
conversion steps).  it only contains kernel prototypes for 4 interfaces,
all of which legitimately belong in sys/systm.h, which are already included
by all enqueue_randomness() users.

Revision 1.298 / (download) - annotate - [select for diffs], Mon May 25 15:24:30 2020 UTC (4 years ago) by deraadt
Branch: MAIN
Changes since 1.297: +2 -2 lines
Diff to previous 1.297 (colored)

Pass bootblock indicator RB_GOODRANDOM to random_start().  Future work
will frantically compensate.
ok kettenis

Revision 1.297 / (download) - annotate - [select for diffs], Fri Mar 13 09:25:21 2020 UTC (4 years, 2 months ago) by mpi
Branch: MAIN
CVS Tags: OPENBSD_6_7_BASE, OPENBSD_6_7
Changes since 1.296: +2 -2 lines
Diff to previous 1.296 (colored)

Rename "sigacts" flag field to avoid conflict with the "process" one.

This shows that atomic_* operations should not be necessery to write
to this field unlike with the process one.

The advantage of using a somewhat-unique prefix for struct member is
moot when multiple definitions use the same prefix :o)

From Amit Kulkarni, ok claudio@

Revision 1.296 / (download) - annotate - [select for diffs], Tue Feb 25 16:55:33 2020 UTC (4 years, 3 months ago) by visa
Branch: MAIN
Changes since 1.295: +4 -1 lines
Diff to previous 1.295 (colored)

Start the SMR thread when all CPUs are ready for scheduling. This
prevents the appearance of a "smr: dispatch took N seconds" message
during boot when there is an early smr_call(). Such a call can happen
with mfii(4). The initial dispatch cannot make progress until
smr_grace_wait() can visit all CPUs.

This fix is essentially a hack. It makes use of the fact that there
is no hard guarantee on how quickly the callback of smr_call() gets
invoked. It is assumed that the SMR call backlog does not grow large
during boot.

An alternative fix is to make smr_grace_wait() skip secondary CPUs
until they have been started. However, this could break if the spinup
logic of secondary CPUs was changed.

Delayed SMR dispatch reported and fix tested by Hrvoje Popovski
Discussed with and OK kettenis@, claudio@

Revision 1.295 / (download) - annotate - [select for diffs], Wed Jan 1 07:06:35 2020 UTC (4 years, 5 months ago) by jsg
Branch: MAIN
Changes since 1.294: +2 -2 lines
Diff to previous 1.294 (colored)

copyright++;

Revision 1.294 / (download) - annotate - [select for diffs], Mon Dec 30 15:48:12 2019 UTC (4 years, 5 months ago) by mpi
Branch: MAIN
Changes since 1.293: +4 -4 lines
Diff to previous 1.293 (colored)

Convert infinite sleeps to {m,t}sleep_nsec(9).

ok bluhm@

Revision 1.293 / (download) - annotate - [select for diffs], Fri Nov 29 06:34:45 2019 UTC (4 years, 6 months ago) by deraadt
Branch: MAIN
Changes since 1.292: +3 -2 lines
Diff to previous 1.292 (colored)

Repurpose the "syscalls must be on a writeable page" mechanism to
enforce a new policy: system calls must be in pre-registered regions.
We have discussed more strict checks than this, but none satisfy the
cost/benefit based upon our understanding of attack methods, anyways
let's see what the next iteration looks like.

This is intended to harden (translation: attackers must put extra
effort into attacking) against a mixture of W^X failures and JIT bugs
which allow syscall misinterpretation, especially in environments with
polymorphic-instruction/variable-sized instructions.  It fits in a bit
with libc/libcrypto/ld.so random relink on boot and no-restart-at-crash
behaviour, particularily for remote problems. Less effective once on-host
since someone the libraries can be read.

For static-executables the kernel registers the main program's
PIE-mapped exec section valid, as well as the randomly-placed sigtramp
page.  For dynamic executables ELF ld.so's exec segment is also
labelled valid; ld.so then has enough information to register libc's
exec section as valid via call-once msyscall(2)

For dynamic binaries, we continue to to permit the main program exec
segment because "go" (and potentially a few other applications) have
embedded system calls in the main program.  Hopefully at least go gets
fixed soon.

We declare the concept of embedded syscalls a bad idea for numerous
reasons, as we notice the ecosystem has many of
static-syscall-in-base-binary which are dynamically linked against
libraries which in turn use libc, which contains another set of
syscall stubs.  We've been concerned about adding even one additional
syscall entry point... but go's approach tends to double the entry-point
attack surface.

This was started at a nano-hackathon in Bob Beck's basement 2 weeks
ago during a long discussion with mortimer trying to hide from the SSL
scream-conversations, and finished in more comfortable circumstances
next to a wood-stove at Elk Lakes cabin with UVM scream-conversations.

ok guenther kettenis mortimer, lots of feedback from others
conversations about go with jsing tb sthen

Revision 1.292 / (download) - annotate - [select for diffs], Mon Nov 4 17:51:22 2019 UTC (4 years, 7 months ago) by anton
Branch: MAIN
Changes since 1.291: +1 -7 lines
Diff to previous 1.291 (colored)

Regularly poll and report kubsan findings using the timeout(9) API
instead of task(9). Undefined behavior can potentially be present in any
context and calling task_add() isn't always safe.

ok visa@

Revision 1.291 / (download) - annotate - [select for diffs], Tue Oct 22 21:19:22 2019 UTC (4 years, 7 months ago) by cheloha
Branch: MAIN
Changes since 1.290: +2 -2 lines
Diff to previous 1.290 (colored)

struct proc: change ps_start from utc time to uptime

Allows us to determine how long a process has been running, even if the
UTC clock jumps.

With help from bluhm@ and millert@, who squashed several bugs.

ok bluhm@ millert@

Revision 1.290 / (download) - annotate - [select for diffs], Fri Jun 21 09:39:48 2019 UTC (4 years, 11 months ago) by visa
Branch: MAIN
CVS Tags: OPENBSD_6_6_BASE, OPENBSD_6_6
Changes since 1.289: +2 -2 lines
Diff to previous 1.289 (colored)

Make resource limit access MP-safe. So far, the copy-on-write sharing
of resource limit structs has been done between processes. By applying
copy-on-write also between threads, threads can read rlimits in
a nearly lock-free manner.

Inspired by code in DragonFly BSD and FreeBSD.

OK mpi@, agreement from jmatthew@ and anton@

Revision 1.289 / (download) - annotate - [select for diffs], Thu Jun 20 14:55:22 2019 UTC (4 years, 11 months ago) by anton
Branch: MAIN
Changes since 1.288: +16 -1 lines
Diff to previous 1.288 (colored)

Undefined behavior (UB) can potentially be present anywhere in the
kernel. kubsan reports findings using printf() and assuming that calling
printf() is safe in all contexts can be problematic. Instead, defer
reporting of findings to the systq task queue.

Storage for findings is allocated early in the boot process in order to
catch potential UB during boot. The same findings are reported once the
task queue subsystem has been initialized.

Feedback from kettenis@ and ok mpi@

Revision 1.288 / (download) - annotate - [select for diffs], Sun Jun 2 03:58:28 2019 UTC (5 years ago) by visa
Branch: MAIN
Changes since 1.287: +2 -15 lines
Diff to previous 1.287 (colored)

Move initialization of limit0 into a dedicated function. This new
function is also a proper place for setting up the plimit pool.

While here, raise the IPL of the plimit pool to IPL_MPFLOOR, needed
in upcoming MP work.

OK claudio@

Revision 1.287 / (download) - annotate - [select for diffs], Sat Jun 1 14:11:17 2019 UTC (5 years ago) by mpi
Branch: MAIN
Changes since 1.286: +1 -3 lines
Diff to previous 1.286 (colored)

Revert to using the SCHED_LOCK() to protect time accounting.

It currently creates a lock ordering problem because SCHED_LOCK() is taken
by hardclock().  That means the "priorities" of a thread should be moved
out of the SCHED_LOCK() first in order to make progress.

Reported-by: syzbot+8e4863b3dde88eb706dc@syzkaller.appspotmail.com
via anton@ as well as by kettenis@

Revision 1.286 / (download) - annotate - [select for diffs], Fri May 31 19:51:09 2019 UTC (5 years ago) by mpi
Branch: MAIN
Changes since 1.285: +3 -1 lines
Diff to previous 1.285 (colored)

Use a per-process mutex to protect time accounting instead of SCHED_LOCK().

Note that hardclock(9) still increments p_{u,s,i}ticks without holding a
lock.

ok visa@, cheloha@

Revision 1.285 / (download) - annotate - [select for diffs], Fri May 31 04:46:18 2019 UTC (5 years ago) by visa
Branch: MAIN
Changes since 1.284: +2 -2 lines
Diff to previous 1.284 (colored)

Rename struct plimit field p_refcnt to pl_refcnt to avoid confusion
with the fields of struct proc. Make pl_refcnt unsigned for upcoming
atomic updating.

OK deraadt@ guenther@

Revision 1.284 / (download) - annotate - [select for diffs], Tue Feb 26 14:24:21 2019 UTC (5 years, 3 months ago) by visa
Branch: MAIN
CVS Tags: OPENBSD_6_5_BASE, OPENBSD_6_5
Changes since 1.283: +5 -1 lines
Diff to previous 1.283 (colored)

Introduce safe memory reclamation, a mechanism for reclaiming shared
objects that readers can access without locking. This provides a basis
for read-copy-update operations.

Readers access SMR-protected shared objects inside SMR read-side
critical section where sleeping is not allowed. To reclaim
an SMR-protected object, the writer has to ensure mutual exclusion of
other writers, remove the object's shared reference and wait until
read-side references cannot exist any longer. As an alternative to
waiting, the writer can schedule a callback that gets invoked when
reclamation is safe.

The mechanism relies on CPU quiescent states to determine when an
SMR-protected object is ready for reclamation.

The <sys/smr.h> header additionally provides an implementation of
singly- and doubly-linked lists that can be used together with SMR.
These lists allow lockless read access with a concurrent writer.

Discussed with many
OK mpi@ sashan@

Revision 1.283 / (download) - annotate - [select for diffs], Sat Jan 19 01:53:44 2019 UTC (5 years, 4 months ago) by cheloha
Branch: MAIN
Changes since 1.282: +2 -4 lines
Diff to previous 1.282 (colored)

Move boottime into the timehands.

To protect the timehands we first need to protect the basis for all UTC
time in the kernel: the boottime.

Because the boottime can be changed at any time it needs to be versioned
along with the other members of the timehands to enable safe lockless reads
when using it for anything.  So the global boottime timespec goes away and
the static boottimebin becomes a member of the timehands.  Instead of reading
the global boottime you use one of two interfaces: binboottime(9) or
microboottime(9). nanoboottime(9) can trivially be added later, though there
are no consumers for it at the moment.

This introduces one small change in behavior.  We used to advance the
reported boottime just before launching kernel threads from main().
This makes it look to userland like we "booted" moments before those
threads were launched.  Because there is no longer a boottime global we
can no longer trivially do this from main(), so the boottime we report
to userspace via e.g. kern.boottime will now reflect whatever the time
was when we bootstrapped the timehands via inittodr(9).  This is usually
no more than a minute before the kernel threads are launched from main().
The prior behavior can be restored by adding a new interface to the
timecounter layer in a future commit.

Based on FreeBSD r303387.

Discussed with mpi@ and visa@.

ok visa@

Revision 1.282 / (download) - annotate - [select for diffs], Tue Jan 1 07:06:44 2019 UTC (5 years, 5 months ago) by jsg
Branch: MAIN
Changes since 1.281: +2 -2 lines
Diff to previous 1.281 (colored)

copyright++;

Revision 1.281 / (download) - annotate - [select for diffs], Mon Sep 10 16:18:34 2018 UTC (5 years, 9 months ago) by sashan
Branch: MAIN
CVS Tags: OPENBSD_6_4_BASE, OPENBSD_6_4
Changes since 1.280: +7 -1 lines
Diff to previous 1.280 (colored)

- if_cloners list populated at boot time only then becomes immutable,
  so we can let go if_cloners_lock.

OK tb@, claudio@, bluhm@, kn@, henning@

Revision 1.280 / (download) - annotate - [select for diffs], Mon Aug 13 15:26:17 2018 UTC (5 years, 9 months ago) by visa
Branch: MAIN
Changes since 1.279: +4 -28 lines
Diff to previous 1.279 (colored)

Simplify the startup of the cleaner, reaper and update threads by
passing the main function directly to kthread_create(9). The start_*
functions are mere stepping stones nowadays and can be pruned.
They used to contain more logic in the pre-kthread era.

While here, set `cleanerproc' and `syncerproc' during the thread
creation rather than expect the threads to set the proc pointer.
Also, rename `sched_sync' to `syncer_thread' to reduce confusion
with the scheduler-related functions.

OK kettenis@, deraadt@, mpi@

Revision 1.279 / (download) - annotate - [select for diffs], Fri Jul 20 21:57:26 2018 UTC (5 years, 10 months ago) by deraadt
Branch: MAIN
Changes since 1.278: +2 -3 lines
Diff to previous 1.278 (colored)

Remove a few leftovers from the days of emulation, which could result in
a bad/corrupt binary not returning ENOEXEC but some other error.
ok guenther kettenis bluhm

Revision 1.278 / (download) - annotate - [select for diffs], Tue Jul 10 04:19:59 2018 UTC (5 years, 11 months ago) by guenther
Branch: MAIN
Changes since 1.277: +1 -2 lines
Diff to previous 1.277 (colored)

Move from sendsig() to its callers the initsiginfo() calls and
instead of passing sendsig() the code+type+val, pass a siginfo_t*
to copy from.  Eliminate the indirection through struct emul for
sendsig(); we no longer have a SunOS4-compat version of sendsig()

ok deraadt@

Revision 1.277 / (download) - annotate - [select for diffs], Sat Apr 28 03:13:04 2018 UTC (6 years, 1 month ago) by visa
Branch: MAIN
Changes since 1.276: +2 -2 lines
Diff to previous 1.276 (colored)

Clean up the parameters of VOP_LOCK() and VOP_UNLOCK(). It is always
curproc that does the locking or unlocking, so the proc parameter
is pointless and can be dropped.

OK mpi@, deraadt@

Revision 1.276 / (download) - annotate - [select for diffs], Thu Apr 12 17:13:44 2018 UTC (6 years, 2 months ago) by deraadt
Branch: MAIN
Changes since 1.275: +2 -2 lines
Diff to previous 1.275 (colored)

Implement MAP_STACK option for mmap().  Synchronous faults (pagefault and
syscall) confirm the stack register points at MAP_STACK memory, otherwise
SIGSEGV is delivered. sigaltstack() and pthread_attr_setstack() are modified
to create a MAP_STACK sub-region which satisfies alignment requirements.
Observe that MAP_STACK can only be set/cleared by mmap(), which zeroes the
contents of the region -- there is no mprotect() equivalent operation, so
there is no MAP_STACK-adding gadget.
This opportunistic software-emulation of a stack protection bit makes
stack-pivot operations during ROPchain fragile (kind of like removing a
tool from the toolbox).
original discussion with tedu, uvm work by stefan, testing by mortimer
ok kettenis

Revision 1.275 / (download) - annotate - [select for diffs], Tue Mar 20 15:45:32 2018 UTC (6 years, 2 months ago) by mpi
Branch: MAIN
CVS Tags: OPENBSD_6_3_BASE, OPENBSD_6_3
Changes since 1.274: +2 -1 lines
Diff to previous 1.274 (colored)

Do not panic from ddb(4) when a lock requirement isn't fulfilled.

Extend the logic already present for panic() to any DDB-related
operation such that if ddb(4) is entered because of a fault or
other trap it is still possible to call 'boot reboot'.

While here stop printing splassert() messages as well, to not fill
the buffer.

ok visa@, deraadt@

Revision 1.274 / (download) - annotate - [select for diffs], Wed Feb 28 18:47:33 2018 UTC (6 years, 3 months ago) by patrick
Branch: MAIN
Changes since 1.273: +3 -3 lines
Diff to previous 1.273 (colored)

Revert the change that postpones CPUs until after mounthook activities.
This was needed to be able to use loadfirmware() to load the microcode
before letting the cores go.  Now that the microcode is loaded earlier
we can restore the previous behaviour.

ok deraadt@

Revision 1.273 / (download) - annotate - [select for diffs], Thu Jan 11 18:58:17 2018 UTC (6 years, 5 months ago) by patrick
Branch: MAIN
Changes since 1.272: +3 -3 lines
Diff to previous 1.272 (colored)

Postpone secondary CPUs until after mounthook activities.  This is
useful for loading CPU microcode from the disk before the CPUs are
let go.

Tested by visa@ on sgi, loongson and octeon
"don't see immediate issues" kettenis@
ok deraadt@

Revision 1.272 / (download) - annotate - [select for diffs], Mon Jan 1 08:23:19 2018 UTC (6 years, 5 months ago) by jsg
Branch: MAIN
Changes since 1.271: +2 -2 lines
Diff to previous 1.271 (colored)

copyright++;

Revision 1.271 / (download) - annotate - [select for diffs], Mon Aug 14 19:50:31 2017 UTC (6 years, 9 months ago) by uwe
Branch: MAIN
CVS Tags: OPENBSD_6_2_BASE, OPENBSD_6_2
Changes since 1.270: +6 -5 lines
Diff to previous 1.270 (colored)

Load CTF debug symbols before mountroot

This is obviously useful in order to investigate a failure to mount an NFS
or other root device.

ok mpi

Revision 1.270 / (download) - annotate - [select for diffs], Fri Aug 11 20:50:15 2017 UTC (6 years, 10 months ago) by mpi
Branch: MAIN
Changes since 1.269: +2 -2 lines
Diff to previous 1.269 (colored)

Merge DDBCTF into DDB.

Revision 1.269 / (download) - annotate - [select for diffs], Fri Apr 28 13:50:55 2017 UTC (7 years, 1 month ago) by mpi
Branch: MAIN
Changes since 1.268: +7 -1 lines
Diff to previous 1.268 (colored)

Add futex(2) syscall based on a sane subset of its Linux equivalent.

The syscall is marked NOLOCK and only FUTEX_WAIT grabs the KERNEL_LOCK()
because of PCATCH and the signal nightmare.

Serialization of threads is currently done with a global & exclusive
rwlock.

Note that the current implementation still use copyin(9) which is not
guaranteed to be atomic.  Committing now such that remaining issues can
be addressed in-tree.

With inputs from guenther@, kettenis@ and visa@.

ok deraadt@, visa@

Revision 1.268 / (download) - annotate - [select for diffs], Thu Apr 20 12:59:36 2017 UTC (7 years, 1 month ago) by visa
Branch: MAIN
Changes since 1.267: +4 -1 lines
Diff to previous 1.267 (colored)

Add a port of witness(4) lock validation tool from FreeBSD.

Go-ahead from kettenis@, guenther@, deraadt@

Revision 1.267 / (download) - annotate - [select for diffs], Mon Mar 6 10:48:16 2017 UTC (7 years, 3 months ago) by mpi
Branch: MAIN
CVS Tags: OPENBSD_6_1_BASE, OPENBSD_6_1
Changes since 1.266: +3 -6 lines
Diff to previous 1.266 (colored)

domaininit() doesn't need splnet().

At this stage the scheduler isn't setup, which means the 'softnet'
isn't running yet, so input packets aren't processed.

Prodded by a question from guenther@, ok bluhm@

Revision 1.266 / (download) - annotate - [select for diffs], Sun Feb 12 04:55:08 2017 UTC (7 years, 3 months ago) by guenther
Branch: MAIN
Changes since 1.265: +2 -3 lines
Diff to previous 1.265 (colored)

Split up fork1():
 - FORK_THREAD handling is a totally separate function, thread_fork(),
   that is only used by sys___tfork() and which loses the flags, func,
   arg, and newprocp parameters and gains tcb parameter to guarantee
   the new thread's TCB is set before the creating thread returns
 - fork1() loses its stack and tidptr parameters
Common bits factor out:
 - struct proc allocation and initialization moves to thread_new()
 - maxthread handling moves to fork_check_maxthread()
 - setting the new thread running moves to fork_thread_start()
The MD cpu_fork() function swaps its unused stacksize parameter for
a tcb parameter.

luna88k testing by aoyama@, alpha testing by dlg@
ok mpi@

Revision 1.265 / (download) - annotate - [select for diffs], Sat Jan 21 05:42:03 2017 UTC (7 years, 4 months ago) by guenther
Branch: MAIN
Changes since 1.264: +2 -2 lines
Diff to previous 1.264 (colored)

p_comm is the process's command and isn't per thread, so move it from
struct proc to struct process.

ok deraadt@ kettenis@

Revision 1.264 / (download) - annotate - [select for diffs], Sun Jan 1 07:00:56 2017 UTC (7 years, 5 months ago) by jsg
Branch: MAIN
Changes since 1.263: +2 -2 lines
Diff to previous 1.263 (colored)

copyright++;

Revision 1.263 / (download) - annotate - [select for diffs], Mon Nov 14 10:32:46 2016 UTC (7 years, 6 months ago) by mpi
Branch: MAIN
Changes since 1.262: +4 -3 lines
Diff to previous 1.262 (colored)

Automatically create a default lo(4) interface per rdomain.

In order to stop abusing lo0 for all rdomains, a new loopback interface
will be created every time a rdomain is created.  The unit number will
be the same as the rdomain, i.e. lo1 will be attached to rdomain 1.

If this loopback interface is already in use it wont be possible to create
the corresponding rdomain.

In order to know which lo(4) interface is attached to a rdomain, its index
is stored in the rtable/rdomain map.

This is a long overdue since the introduction of rtable/rdomain.  It also
fixes a recent regression due to resetting the rdomain of an incoming
packet reported by semarie@, Andreas Bartelt and Nils Frohberg.

ok claudio@

Revision 1.262 / (download) - annotate - [select for diffs], Mon Nov 7 00:26:32 2016 UTC (7 years, 7 months ago) by guenther
Branch: MAIN
Changes since 1.261: +3 -2 lines
Diff to previous 1.261 (colored)

Split PID from TID, giving processes a PID unrelated to the TID of their
initial thread

ok jsing@ kettenis@

Revision 1.261 / (download) - annotate - [select for diffs], Mon Oct 24 04:38:44 2016 UTC (7 years, 7 months ago) by dlg
Branch: MAIN
Changes since 1.260: +3 -1 lines
Diff to previous 1.260 (colored)

move the mbstat structure to percpu counters

each cpus counters still have to be protected by splnet, but this
is better thana single set of counters protected by a global mutex.

ok bluhm@

Revision 1.260 / (download) - annotate - [select for diffs], Fri Oct 21 06:27:50 2016 UTC (7 years, 7 months ago) by dlg
Branch: MAIN
Changes since 1.259: +5 -1 lines
Diff to previous 1.259 (colored)

add generalised access to per cpu data structures and counters.

both the cpumem and counters api simply allocates memory for each cpu in
the system that can be used for arbitrary per cpu data (via cpumem), or
a versioned set of counters per cpu (counters).

there is an alternate backend for uniprocessor systems that basically
turns the percpu data access into an immediate access to a single
allocation.

there is also support for percpu data structures that are available at
boot time by providing an allocation for the boot cpu. after autoconf,
these allocations have to be resized to provide for all cpus that were
enumerated by boot.

ok mpi@

Revision 1.259 / (download) - annotate - [select for diffs], Thu Sep 22 12:55:24 2016 UTC (7 years, 8 months ago) by mpi
Branch: MAIN
Changes since 1.258: +5 -1 lines
Diff to previous 1.258 (colored)

Introduce a new 'softclock' thread that will be used to execute timeout
callbacks needing a process context.

The function timeout_set_proc(9) has to be used instead of timeout_set(9)
when a timeout callback needs a process context.

Note that if such a timeout is waiting, understand sleeping, for a non
negligible amount of time it might delay other timeouts needing a process
context.

dlg@ agrees with this as a temporary solution.

Manpage tweaks from jmc@

ok kettenis@, bluhm@, mikeb@

Revision 1.258 / (download) - annotate - [select for diffs], Sun Sep 18 12:36:28 2016 UTC (7 years, 8 months ago) by jasper
Branch: MAIN
Changes since 1.257: +6 -1 lines
Diff to previous 1.257 (colored)

add missing call to db_ctf_init().

this was part of the larger diff that was ok guenther@ mpi@, somehow I forgot
to commit this particular piece.

Revision 1.257 / (download) - annotate - [select for diffs], Sun Sep 4 09:22:29 2016 UTC (7 years, 9 months ago) by mpi
Branch: MAIN
Changes since 1.256: +4 -3 lines
Diff to previous 1.256 (colored)

Introduce Dynamic Profiling, a ddb(4) based & gprof compatible kernel
profiling framework.

Code patching is used to enable probes when entering functions.  The
probes will call a mcount()-like function to match the behavior of a
GPROF kernel.

Currently only available on amd64 and guarded under DDBPROF.  Support
for other archs will follow soon.

A new sysctl knob, ddb.console, need to be set to 1 in securelevel 0
to be able to use this feature.

Inputs and ok guenther@

Revision 1.256 / (download) - annotate - [select for diffs], Sat Sep 3 14:46:56 2016 UTC (7 years, 9 months ago) by naddy
Branch: MAIN
Changes since 1.255: +3 -1 lines
Diff to previous 1.255 (colored)

Write the system time back to the RTC every 30 minutes.
This fixes the problem that long-running machines which were not
shut down properly would reboot with a badly offset system time.

hints and ok kettenis@

Revision 1.255 / (download) - annotate - [select for diffs], Sat Sep 3 13:16:50 2016 UTC (7 years, 9 months ago) by deraadt
Branch: MAIN
Changes since 1.254: +1 -10 lines
Diff to previous 1.254 (colored)

Do not reinitialize __guard_local if it is 0.  This cannot be done
anymore, since it is now RO.

It is the bootloader's job to initialize it correctly.  If the
bootloader fails to perform that, you silently lose.  The road to
building an always-available rng is served by us depending on it :)

Revision 1.254 / (download) - annotate - [select for diffs], Fri Sep 2 12:17:33 2016 UTC (7 years, 9 months ago) by tb
Branch: MAIN
Changes since 1.253: +2 -2 lines
Diff to previous 1.253 (colored)

move links from http to https://www.openbsd.org/

ok beck

Revision 1.253 / (download) - annotate - [select for diffs], Tue May 17 23:28:03 2016 UTC (8 years ago) by bluhm
Branch: MAIN
CVS Tags: OPENBSD_6_0_BASE, OPENBSD_6_0
Changes since 1.252: +8 -18 lines
Diff to previous 1.252 (colored)

Backout the previous fix for the sendsyslog(2) with LOG_CONS solution.
Permanently holding /dev/console open in the kernel works only until
init(8) calls revoke(2).  After that the console device vnode cannot
be used anymore.  It still resulted in a hanging init(8) if it tried
to syslog(3) something.  With the backout also dmesg -s works again.

Revision 1.252 / (download) - annotate - [select for diffs], Tue May 10 23:54:00 2016 UTC (8 years, 1 month ago) by bluhm
Branch: MAIN
Changes since 1.251: +18 -8 lines
Diff to previous 1.251 (colored)

If sendsyslog(2) is called with LOG_CONS before syslogd(8) has been
started and before init(8) has opened the console, the kernel could
crash as the console device has not been initialized.  Open
/dev/console in the kernel before starting init(8) and keep it open.
This way sendsyslog(2) can be called early in the system.
OK beck@ deraadt@

Revision 1.251 / (download) - annotate - [select for diffs], Tue May 10 18:39:51 2016 UTC (8 years, 1 month ago) by deraadt
Branch: MAIN
Changes since 1.250: +3 -2 lines
Diff to previous 1.250 (colored)

SROP mitigation.  sendsig() stores a (per-process ^ &sigcontext) cookie
inside the sigcontext.  sigreturn(2) checks syscall entry was from the
exact PC addr in the (per-process ASLR) sigtramp, verifies the cookie,
and clears it to prevent sigcontext reuse.
not yet tested on landisk, sparc, *88k, socppc.
ok kettenis

Revision 1.250 / (download) - annotate - [select for diffs], Tue May 3 14:52:39 2016 UTC (8 years, 1 month ago) by mpi
Branch: MAIN
Changes since 1.249: +1 -2 lines
Diff to previous 1.249 (colored)

Stop using a soft-interrupt context to process incoming network packets.

Use a new task that runs holding the KERNEL_LOCK to execute mp-unsafe
code.  Our current goal is to progressively move input functions to the
unlocked task.

This gives a small performance boost confirmed by Hrvoje Popovski's
IPv4 forwarding measurement:

before:					after:

send           receive			send           receive
400kpps        400kpps                  400kpps        400kpps
500kpps        500kpps                  500kpps        500kpps
600kpps        600kpps                  600kpps        600kpps
650kpps        650kpps                  650kpps        640kpps
700kpps        700kpps                  700kpps        700kpps
720kpps        640kpps                  720kpps        710kpps
800kpps        640kpps                  800kpps        650kpps
1.4Mpps        570kpps                  1.4Mpps        590kpps
14Mpps         570kpps                  14Mpps         590kpps


ok kettenis@, bluhm@, dlg@

Revision 1.249 / (download) - annotate - [select for diffs], Sat Mar 19 12:04:15 2016 UTC (8 years, 2 months ago) by natano
Branch: MAIN
Changes since 1.248: +2 -2 lines
Diff to previous 1.248 (colored)

Remove the unused flags argument from VOP_UNLOCK().

torture tested on amd64, i386 and macppc
ok beck mpi stefan
"the change looks right" deraadt

Revision 1.248 / (download) - annotate - [select for diffs], Sun Jan 3 00:15:59 2016 UTC (8 years, 5 months ago) by jsg
Branch: MAIN
CVS Tags: OPENBSD_5_9_BASE, OPENBSD_5_9
Changes since 1.247: +2 -2 lines
Diff to previous 1.247 (colored)

copyright++;

Revision 1.247 / (download) - annotate - [select for diffs], Fri Dec 11 16:07:02 2015 UTC (8 years, 6 months ago) by mpi
Branch: MAIN
Changes since 1.246: +2 -2 lines
Diff to previous 1.246 (colored)

Replace mountroothook_establish(9) by config_mountroot(9) a narrower API
similar to config_defer(9).

ok mikeb@, deraadt@

Revision 1.246 / (download) - annotate - [select for diffs], Sun Nov 8 20:45:57 2015 UTC (8 years, 7 months ago) by naddy
Branch: MAIN
Changes since 1.245: +1 -10 lines
Diff to previous 1.245 (colored)

keep all the setperf timeout(9) handling in one place; ok tedu@

Revision 1.245 / (download) - annotate - [select for diffs], Wed Oct 7 10:50:35 2015 UTC (8 years, 8 months ago) by mpi
Branch: MAIN
Changes since 1.244: +5 -2 lines
Diff to previous 1.244 (colored)

Initialize the routing table before domains.

The routing table is not an optional component of the network stack
and initializing it inside the "routing domain" requires some ugly
introspection in the domain interface.

This put the rtable* layer at the same level of the if* level.  These
two subsystem are organized around the two global data structure used
in the network stack:

- the global &ifnet list, to be used in process context only, and
- the routing table which can be read in interrupt context.

This change makes the rtable_* layer domain-aware and extends the
"struct domain" such that INET, INET6 and MPLS can specify the length
of the binary key used in lookups.  This allows us to keep, or move
towards, AF-free route and rtable layers.

While here stop the madness and pass the size of the maximum key length
in *byte* to rn_inithead0().

ok claudio@, mikeb@

Revision 1.244 / (download) - annotate - [select for diffs], Sun Aug 30 10:39:16 2015 UTC (8 years, 9 months ago) by mpi
Branch: MAIN
Changes since 1.243: +1 -2 lines
Diff to previous 1.243 (colored)

Use a global table for domains instead of building a list at run time.

As a side effect there's no need to run if_attachdomain() after the
list of domains has been built.

ok claudio@, reyk@

Revision 1.243 / (download) - annotate - [select for diffs], Thu Jul 9 19:45:37 2015 UTC (8 years, 11 months ago) by miod
Branch: MAIN
CVS Tags: OPENBSD_5_8_BASE, OPENBSD_5_8
Changes since 1.242: +3 -1 lines
Diff to previous 1.242 (colored)

Disable pool_gc on m88k if MULTIPROCESSOR; we don't have enough volunteers
for human sacrifices to get this fixed in a reasonably near future, and the
tree must build.

Revision 1.242 / (download) - annotate - [select for diffs], Thu Jul 2 01:34:00 2015 UTC (8 years, 11 months ago) by dlg
Branch: MAIN
Changes since 1.241: +4 -1 lines
Diff to previous 1.241 (colored)

introduce srp, which according to the manpage i wrote is short for
"shared reference pointers".

srp allows concurrent access to a data structure by multiple cpus
while avoiding interlocking cpu opcodes. it manages its own reference
counts and the garbage collection of those data structure to avoid
use after frees.

internally srp is a twisted version of hazard pointers, which are
a relative of RCU.

jmatthew wrote the bulk of a hazard pointer implementation and
changed bpf to use it to allow mpsafe access to bpfilters. however,
at s2k15 we were trying to apply it to other data structures but
the memory overhead of every hazard pointer would have blown out
significantly in several uses cases. a bulk of our time at s2k15
was spent reworking hazard pointers into srp.

this diff adds the srp api and adds the necessary metadata to struct
cpuinfo on our MP architectures. srp on uniprocessor platforms has
alternate code that is optimised because it knows there'll be no
concurrent access to data by multiple cpus.

srp is made available to the system via param.h, so it should be
available everywhere in the kernel.

the docs likely need improvement cos im too close to the implementation.

ok mpi@

Revision 1.241 / (download) - annotate - [select for diffs], Wed Jun 24 03:42:08 2015 UTC (8 years, 11 months ago) by dlg
Branch: MAIN
Changes since 1.240: +1 -3 lines
Diff to previous 1.240 (colored)

reenable the pool gc task.

the problems it tickled by working outside the biglock on archs
with mutex and clock interaction have been fixed, as evidenced by
the softnet taskq.

ok deraadt@

Revision 1.240 / (download) - annotate - [select for diffs], Mon May 18 04:07:26 2015 UTC (9 years ago) by miod
Branch: MAIN
Changes since 1.239: +2 -3 lines
Diff to previous 1.239 (colored)

Reenable the page zeroing thread on MP m88k kernels.

Revision 1.239 / (download) - annotate - [select for diffs], Tue May 5 02:13:46 2015 UTC (9 years, 1 month ago) by guenther
Branch: MAIN
Changes since 1.238: +3 -4 lines
Diff to previous 1.238 (colored)

emul_native is only used for kernel threads which can't dump core, so
delete coredump_trad(), uvm_coredump(), cpu_coredump(), struct md_coredump,
and various #includes that are superfluous.

This leaves compat_linux processes without a coredump callback.  If that
ability is desired, someone should update it to use coredump_elf32() and
verify the results...

ok kettenis@

Revision 1.238 / (download) - annotate - [select for diffs], Fri May 1 11:18:21 2015 UTC (9 years, 1 month ago) by miod
Branch: MAIN
Changes since 1.237: +2 -2 lines
Diff to previous 1.237 (colored)

reenable page zeroing thread on SMP mips kernels.

Revision 1.237 / (download) - annotate - [select for diffs], Sun Apr 12 11:12:09 2015 UTC (9 years, 2 months ago) by dlg
Branch: MAIN
Changes since 1.236: +3 -1 lines
Diff to previous 1.236 (colored)

disable the pool gc. there are reports of strange lockups on various mp
archs and this is the only interesting diff in the window.

Revision 1.236 / (download) - annotate - [select for diffs], Tue Apr 7 11:07:56 2015 UTC (9 years, 2 months ago) by dlg
Branch: MAIN
Changes since 1.235: +7 -1 lines
Diff to previous 1.235 (colored)

introduce a garbage collector for (very) idle pool pages.

now that idle pool pages are timestamped we can tell how long theyve
been idle. this adds a task that runs every second that iterates
over all the pools looking for pages that have been idle for 8
seconds so it can free them.

this idea probably came from a conversation with tedu@ months ago.

ok tedu@ kettenis@

Revision 1.235 / (download) - annotate - [select for diffs], Tue Feb 10 05:28:18 2015 UTC (9 years, 4 months ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_5_7_BASE, OPENBSD_5_7
Changes since 1.234: +7 -14 lines
Diff to previous 1.234 (colored)

Factor out the common bits of process_new() and main()'s code for
setting up process0, 'cause I'm sick of forgetting to update main()
when touching process_new()

ok blambert@ miod@

Revision 1.234 / (download) - annotate - [select for diffs], Mon Feb 9 09:39:09 2015 UTC (9 years, 4 months ago) by miod
Branch: MAIN
Changes since 1.233: +3 -2 lines
Diff to previous 1.233 (colored)

Stop using USRSTACK as the edge of the stack, but rather use the vmspace
vm_minsaddr or vm_maxsaddr, depending upon the direction the stack goes in.

This should have no effect on the existing behaviourrr.

ok kettenis@ deraadt@

Revision 1.233 / (download) - annotate - [select for diffs], Mon Jan 19 01:19:17 2015 UTC (9 years, 4 months ago) by deraadt
Branch: MAIN
Changes since 1.232: +1 -2 lines
Diff to previous 1.232 (colored)

unneccessary cmask variable; ok guenther

Revision 1.232 / (download) - annotate - [select for diffs], Tue Jan 13 18:51:27 2015 UTC (9 years, 4 months ago) by kettenis
Branch: MAIN
Changes since 1.231: +4 -1 lines
Diff to previous 1.231 (colored)

Many architectures call initmsgbuf() really really early, before uvm is
initialized.  Calling malloc(9) at that point is not a good idea.  So
initialize consbuf later.

Fixes dmesg -s on sparc64 (and probably a few other architectures).

ok miod@, deraadt@

Revision 1.231 / (download) - annotate - [select for diffs], Wed Dec 31 15:32:05 2014 UTC (9 years, 5 months ago) by jsing
Branch: MAIN
Changes since 1.230: +2 -2 lines
Diff to previous 1.230 (colored)

copyright_year=$(date +%Y)

Revision 1.230 / (download) - annotate - [select for diffs], Sun Dec 28 21:32:45 2014 UTC (9 years, 5 months ago) by krw
Branch: MAIN
Changes since 1.229: +2 -5 lines
Diff to previous 1.229 (colored)

The greatest happiness is to scatter inferiour APIs, to drive them
before you, to see their files reduced to ashes, to see those who
love them shrouded in tears, and to gather into your API all their
invocations.

In other words, workq is no more. There is only taskq.

ok kettenis@ dlg@ (creator of taskq) jmc@

Revision 1.229 / (download) - annotate - [select for diffs], Wed Dec 17 06:58:11 2014 UTC (9 years, 5 months ago) by guenther
Branch: MAIN
Changes since 1.228: +2 -2 lines
Diff to previous 1.228 (colored)

Prefer MADV_* over POSIX_MADV_* in kernel for consistency: the latter
doesn't have all the values and therefore can't be used everywhere.

ok deraadt@ kettenis@

Revision 1.228 / (download) - annotate - [select for diffs], Tue Dec 16 18:30:03 2014 UTC (9 years, 5 months ago) by tedu
Branch: MAIN
Changes since 1.227: +3 -1 lines
Diff to previous 1.227 (colored)

primary change: move uvm_vnode out of vnode, keeping only a pointer.
objective: vnode.h doesn't include uvm_extern.h anymore.
followup changes: include uvm_extern.h or lock.h where necessary.
ok and help from deraadt

Revision 1.227 / (download) - annotate - [select for diffs], Mon Dec 15 02:24:23 2014 UTC (9 years, 5 months ago) by guenther
Branch: MAIN
Changes since 1.226: +2 -2 lines
Diff to previous 1.226 (colored)

Use MAP_INHERIT_* for the 'inh' argument to the UMV_MAPFLAG() macro,
eliminating the must-be-kept-in-sync UVM_INH_* macros

ok deraadt@ tedu@

Revision 1.226 / (download) - annotate - [select for diffs], Wed Dec 10 02:44:46 2014 UTC (9 years, 6 months ago) by tedu
Branch: MAIN
Changes since 1.225: +2 -2 lines
Diff to previous 1.225 (colored)

convert bcopy to memcpy. ok millert

Revision 1.225 / (download) - annotate - [select for diffs], Tue Nov 18 21:11:08 2014 UTC (9 years, 6 months ago) by miod
Branch: MAIN
Changes since 1.224: +3 -2 lines
Diff to previous 1.224 (colored)

Disable the page zeroing thread on MULTIPROCESSOR mips64 kernels as well.
Regression spotted by tobiasu@.

XXX I wonder if the page zeroing thread shouldn't perform explicit
XXX pmap_update(pmap_kernel()) calls after each page zeroing... but that
XXX might not be enough.

Revision 1.224 / (download) - annotate - [select for diffs], Sun Nov 16 12:31:00 2014 UTC (9 years, 6 months ago) by deraadt
Branch: MAIN
Changes since 1.223: +3 -3 lines
Diff to previous 1.223 (colored)

Replace a plethora of historical protection options with just
PROT_NONE, PROT_READ, PROT_WRITE, and PROT_EXEC from mman.h.
PROT_MASK is introduced as the one true way of extracting those bits.
Remove UVM_ADV_* wrapper, using the standard names.
ok doug guenther kettenis

Revision 1.223 / (download) - annotate - [select for diffs], Sat Oct 25 12:53:14 2014 UTC (9 years, 7 months ago) by miod
Branch: MAIN
Changes since 1.222: +2 -2 lines
Diff to previous 1.222 (colored)

Do not launch the page zeroing thread on MULTIPROCESSOR m88k systems. This
causes a deadlock between reaper and zerothread I am currently investigating.

Revision 1.222 / (download) - annotate - [select for diffs], Fri Oct 17 01:51:39 2014 UTC (9 years, 7 months ago) by tedu
Branch: MAIN
Changes since 1.221: +10 -1 lines
Diff to previous 1.221 (colored)

redo the performance throttling in the kernel.
introduce a new sysctl, hw.perfpolicy, that governs the policy.
when set to anything other than manual, hw.setperf then becomes read only.
phessler was heading in this direction, but this is slightly different. :)

Revision 1.221 / (download) - annotate - [select for diffs], Mon Oct 13 22:42:22 2014 UTC (9 years, 7 months ago) by deraadt
Branch: MAIN
Changes since 1.220: +3 -1 lines
Diff to previous 1.220 (colored)

disable pagezero thread on hppa, until failure gets diagnosed, ok miod kettenis

Revision 1.220 / (download) - annotate - [select for diffs], Sat Oct 11 17:12:30 2014 UTC (9 years, 8 months ago) by deraadt
Branch: MAIN
Changes since 1.219: +0 -9 lines
Diff to previous 1.219 (colored)

back out; does not even compile

Revision 1.219 / (download) - annotate - [select for diffs], Sat Oct 11 16:28:06 2014 UTC (9 years, 8 months ago) by tedu
Branch: MAIN
Changes since 1.218: +10 -1 lines
Diff to previous 1.218 (colored)

resurrect a many year old diff. move CPU throttling into the kernel,
enabled by setting hw.setperf=-1. some other bugs preventing this from
going in before have been fixed. my thanks to phessler for keeping the
diff alive in the mean time. tested by several to not regress.

Revision 1.218 / (download) - annotate - [select for diffs], Fri Oct 3 18:06:46 2014 UTC (9 years, 8 months ago) by kettenis
Branch: MAIN
Changes since 1.217: +5 -1 lines
Diff to previous 1.217 (colored)

Introduce a thread for zeroing pages without holding the kernel lock.  This
way we can do some useful kernel lock in parallel with other things and create
a reservoir of zeroed pages ready for use elsewhere.  This should reduce
latency.  The thread runs at the absolutel lowest priority such that we don't
keep other kernel threads or userland from doing useful work.

Can be easily disabled by disabling the kthread_create(9) call in main().
Which perhaps we should do for non-MP kernels.

ok deraadt@, tedu@

Revision 1.217 / (download) - annotate - [select for diffs], Thu Aug 14 09:01:47 2014 UTC (9 years, 9 months ago) by mpi
Branch: MAIN
Changes since 1.216: +1 -2 lines
Diff to previous 1.216 (colored)

No need for raw_cb.h

Revision 1.216 / (download) - annotate - [select for diffs], Fri Jul 11 08:18:31 2014 UTC (9 years, 11 months ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_5_6_BASE, OPENBSD_5_6
Changes since 1.215: +15 -10 lines
Diff to previous 1.215 (colored)

It's init as a process that's special, not init's original thread.
Remember initprocess instead of initproc.

ok matthew@ blambert@

Revision 1.215 / (download) - annotate - [select for diffs], Tue Jul 8 17:19:25 2014 UTC (9 years, 11 months ago) by deraadt
Branch: MAIN
Changes since 1.214: +1 -4 lines
Diff to previous 1.214 (colored)

decouple struct uvmexp into a new file, so that uvm_extern.h and sysctl.h
don't need to be married.
ok guenther miod beck jsing kettenis

Revision 1.214 / (download) - annotate - [select for diffs], Sun Jun 15 11:43:24 2014 UTC (9 years, 11 months ago) by sf
Branch: MAIN
Changes since 1.213: +3 -3 lines
Diff to previous 1.213 (colored)

Fix a few format string bugs with -DDEBUG

Revision 1.213 / (download) - annotate - [select for diffs], Thu May 15 03:52:25 2014 UTC (10 years ago) by guenther
Branch: MAIN
Changes since 1.212: +3 -3 lines
Diff to previous 1.212 (colored)

Move from struct proc to process the reference-count-holding pointers
to the process's vmspace and filedescs.  struct proc continues to
keep copies of the pointers, copying them on fork, clearing them
on exit, and (for vmspace) refreshing on exec.
Also, make uvm_swapout_threads() thread aware, eliminating p_swtime
in kernel.

particular testing by ajacoutot@ and sebastia@

Revision 1.212 / (download) - annotate - [select for diffs], Sun May 4 05:03:26 2014 UTC (10 years, 1 month ago) by guenther
Branch: MAIN
Changes since 1.211: +2 -1 lines
Diff to previous 1.211 (colored)

Add PS_SYSTEM, the process-level mirror of the thread-level P_SYSTEM,
and FORK_SYSTEM as a flag to set them.  This eliminates needing to
peek into other processes threads in various places.  Inspired by NetBSD

ok miod@ matthew@

Revision 1.211 / (download) - annotate - [select for diffs], Fri Apr 18 11:51:17 2014 UTC (10 years, 1 month ago) by guenther
Branch: MAIN
Changes since 1.210: +4 -1 lines
Diff to previous 1.210 (colored)

Have each thread keeps its own (counted!) reference to the process's ucreds
to avoid possible use-after-free references when swapping ids in threaded
processes.  "Do I have the right creds?" checks are always made with the
threads creds.

Inspired by FreeBSD and NetBSD
"right time" deraadt@

Revision 1.210 / (download) - annotate - [select for diffs], Mon Mar 31 19:37:15 2014 UTC (10 years, 2 months ago) by kettenis
Branch: MAIN
Changes since 1.209: +4 -4 lines
Diff to previous 1.209 (colored)

Grab the kernel lock before autoconf.  This way device drivers can drop it in
any context if they feel like it.

ok deraadt@, guenther@
(who both suggested we could probably grab it even earlier)

Revision 1.209 / (download) - annotate - [select for diffs], Sun Mar 30 21:54:48 2014 UTC (10 years, 2 months ago) by guenther
Branch: MAIN
Changes since 1.208: +3 -5 lines
Diff to previous 1.208 (colored)

Eliminates struct pcred by moving the real and saved ugids into
struct ucred; struct process then directly links to the ucred

Based on a discussion at c2k10 or so before noting that FreeBSD and
NetBSD did this too.

ok matthew@

Revision 1.208 / (download) - annotate - [select for diffs], Sat Mar 29 18:09:31 2014 UTC (10 years, 2 months ago) by guenther
Branch: MAIN
Changes since 1.207: +2 -2 lines
Diff to previous 1.207 (colored)

It's been a quarter century: we can assume volatile is present with that name.

ok dlg@ mpi@ deraadt@

Revision 1.207 / (download) - annotate - [select for diffs], Fri Mar 28 17:57:11 2014 UTC (10 years, 2 months ago) by mpi
Branch: MAIN
Changes since 1.206: +2 -2 lines
Diff to previous 1.206 (colored)

Reduce uvm include madness.  Use <uvm/uvm_extern.h> instead of
<uvm/uvm.h> if possible and remove double inclusions.

ok beck@, mlarkin@, deraadt@

Revision 1.206 / (download) - annotate - [select for diffs], Wed Mar 26 05:23:42 2014 UTC (10 years, 2 months ago) by guenther
Branch: MAIN
Changes since 1.205: +2 -2 lines
Diff to previous 1.205 (colored)

Move p_emul and p_sigcode from proc to process.
Tweak the handling of ktrace EMUL when changing ktracing: only
generate one per process (not one per thread) and pass the correct
proc pointer down to the VFS layer.  Permit generating of NAMI and
CSW records inside ktrace(2) itself.

ok deraadt@ millert@

Revision 1.205 / (download) - annotate - [select for diffs], Sat Mar 22 06:05:45 2014 UTC (10 years, 2 months ago) by guenther
Branch: MAIN
Changes since 1.204: +4 -4 lines
Diff to previous 1.204 (colored)

Move p_sigacts from struct proc to struct process.

testing help mpi@

Revision 1.204 / (download) - annotate - [select for diffs], Wed Feb 12 05:47:36 2014 UTC (10 years, 4 months ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_5_5_BASE, OPENBSD_5_5
Changes since 1.203: +2 -2 lines
Diff to previous 1.203 (colored)

Eliminate the exit sig handling, which was only invokable via the
Linux-compat clone() syscall when *not* using CLONE_THREAD.  pirofti@
confirms Opera runs in compat without this, so out it goes; one less hair
to choke on in kern_exit.c

ok tedu@ pirofti@

Revision 1.203 / (download) - annotate - [select for diffs], Mon Jan 20 21:19:27 2014 UTC (10 years, 4 months ago) by guenther
Branch: MAIN
Changes since 1.202: +8 -5 lines
Diff to previous 1.202 (colored)

Threads can't be zombies, only processes, so change zombproc to zombprocess,
make it a list of processes, and change P_NOZOMBIE and P_STOPPED from thread
flags to process flags.  Add allprocess list for the code that just wants
to see processes.

ok tedu@

Revision 1.202 / (download) - annotate - [select for diffs], Sun Jan 19 23:52:54 2014 UTC (10 years, 4 months ago) by deraadt
Branch: MAIN
Changes since 1.201: +1 -3 lines
Diff to previous 1.201 (colored)

Refactor rnd startup so arc4random/arc4random_buf can create a chacha state
on first call, very early on, from boot-supplied entropy, then feed from
that.  Later when we have more subsystems ready, the main() can properly
initialize the entropy-driven model.  Lots of discussion with mikeb.
ok kettenis markus mikeb

Revision 1.201 / (download) - annotate - [select for diffs], Sun Jan 19 13:26:42 2014 UTC (10 years, 4 months ago) by deraadt
Branch: MAIN
Changes since 1.200: +2 -2 lines
Diff to previous 1.200 (colored)

insane typo

Revision 1.200 / (download) - annotate - [select for diffs], Sun Jan 19 13:12:07 2014 UTC (10 years, 4 months ago) by deraadt
Branch: MAIN
Changes since 1.199: +2 -2 lines
Diff to previous 1.199 (colored)

oops, forgotten part
Initialize ci_randseed better using arc4random() + a trick.  Remove the
libkern srandom() API since it is not suitable for this use.
ok kettenis miod

Revision 1.199 / (download) - annotate - [select for diffs], Sun Jan 19 00:39:40 2014 UTC (10 years, 4 months ago) by deraadt
Branch: MAIN
Changes since 1.198: +1 -3 lines
Diff to previous 1.198 (colored)

With the earlier initialization of the random subsystem, random_hostseed()
is no longer providing significant value.  The random subsystem is in
pretty good state, and moments later userland will feed the dmesg.
ok jsing

Revision 1.198 / (download) - annotate - [select for diffs], Sun Jan 19 00:22:58 2014 UTC (10 years, 4 months ago) by deraadt
Branch: MAIN
Changes since 1.197: +3 -3 lines
Diff to previous 1.197 (colored)

We can call random_start() immediately after cpu_startup, that is the
point at which everything it does is safe, including msg buffer access.
ok kettenis jsing

Revision 1.197 / (download) - annotate - [select for diffs], Wed Jan 1 07:08:10 2014 UTC (10 years, 5 months ago) by fgsch
Branch: MAIN
Changes since 1.196: +2 -2 lines
Diff to previous 1.196 (colored)

copyright++

Revision 1.196 / (download) - annotate - [select for diffs], Sat Dec 28 20:52:48 2013 UTC (10 years, 5 months ago) by deraadt
Branch: MAIN
Changes since 1.195: +2 -2 lines
Diff to previous 1.195 (colored)

oops, the fallback stack protector code must handle 64-bit guards
spotted by kettenis

Revision 1.195 / (download) - annotate - [select for diffs], Sat Dec 28 03:22:52 2013 UTC (10 years, 5 months ago) by deraadt
Branch: MAIN
Changes since 1.194: +6 -14 lines
Diff to previous 1.194 (colored)

change the stack protector guard into a long word (removing the old legacy
compat pointed out by miod), and place it inside the ELF .openbsd.randomdata
segment.  Inside main(), only re-initialize the guard if the bootblocks
failed to initialize it for us.

Revision 1.194 / (download) - annotate - [select for diffs], Sat Dec 28 03:12:56 2013 UTC (10 years, 5 months ago) by deraadt
Branch: MAIN
Changes since 1.193: +1 -7 lines
Diff to previous 1.193 (colored)

We can initialize the srandom/random system earlier from arc4random,
and do not need microtime.

Revision 1.193 / (download) - annotate - [select for diffs], Sat Dec 28 03:04:20 2013 UTC (10 years, 5 months ago) by deraadt
Branch: MAIN
Changes since 1.192: +6 -3 lines
Diff to previous 1.192 (colored)

We can random_start() earlier (not that it does too much) and call
arc4random() much earlier.  Leading to random pids for anything
besides 0 and 1.

Revision 1.192 / (download) - annotate - [select for diffs], Sun Dec 1 16:40:56 2013 UTC (10 years, 6 months ago) by krw
Branch: MAIN
Changes since 1.191: +3 -3 lines
Diff to previous 1.191 (colored)

Change 'mountlist' from CIRCLEQ to TAILQ. Be paranoid and
use TAILQ_*_SAFE more than might be needed.

Bulk ports build by sthen@ showed nobody sticking their fingers
so deep into the kernel.

Feedback and suggestions from millert@. ok jsing@

Revision 1.191 / (download) - annotate - [select for diffs], Tue Oct 29 04:23:16 2013 UTC (10 years, 7 months ago) by dlg
Branch: MAIN
Changes since 1.190: +4 -1 lines
Diff to previous 1.190 (colored)

introduce tasks and taskqs as an alternative to workqs.

tasks are modelled on the timeout api, so users familiar with
timeout_set, timeout_add, and timeout_del will already know what
to expect from task_set, task_add, and task_del.

i wrote this because workq_add_task can fail in the place you
actually need it, and there arent any good ways of recovering at
that point.  workq_queue_task was added to try and help, but required
external state to be stored for users of that api to know whether
something was already queued or not.

workqs also didnt provide a way to cancel or remove work.

this has been percolating with a bunch of people. putting it in as i
wrote it so i can apply their feedback to the code with the history kept
in cvs.

Revision 1.190 / (download) - annotate - [select for diffs], Mon Aug 26 01:59:22 2013 UTC (10 years, 9 months ago) by dlg
Branch: MAIN
Changes since 1.189: +6 -4 lines
Diff to previous 1.189 (colored)

move attach mpath before any hardware. the benefits being:

- the mpath hooks path drivers call dont have to parse autoconf
structures to tell if mpath may attach in the future. it now either
has already attached or never will, which is simpler to check.

- i can get rid of the global mpath target array by moving it into
the mpath softc because of the above.

- makes reasoning about state transitions (especially around when
to attach) when groups of paths are implemented a lot simpler

the only real caveat is dmesg feng shui may be ruined. i can come
back and look at this after i move mpath itself forward though.

discussed with deraadt@ miod@
ok todd@ matthew@ krw@

Revision 1.189 / (download) - annotate - [select for diffs], Mon Jun 3 16:55:22 2013 UTC (11 years ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_5_4_BASE, OPENBSD_5_4
Changes since 1.188: +5 -5 lines
Diff to previous 1.188 (colored)

Convert some internal APIs to use timespecs instead of timevals

ok matthew@ deraadt@

Revision 1.188 / (download) - annotate - [select for diffs], Thu Mar 28 16:55:25 2013 UTC (11 years, 2 months ago) by deraadt
Branch: MAIN
Changes since 1.187: +1 -2 lines
Diff to previous 1.187 (colored)

do not include machine/cpu.h from a .c file; it is the responsibility of
.h files to pull it in, if needed
ok tedu

Revision 1.187 / (download) - annotate - [select for diffs], Mon Mar 25 14:58:28 2013 UTC (11 years, 2 months ago) by markus
Branch: MAIN
Changes since 1.186: +3 -1 lines
Diff to previous 1.186 (colored)

reseed the random pool with 'dmesg' when more devices are attached
from hshoexer@; ok tedu@, "looks good" deraadt@

Revision 1.186 / (download) - annotate - [select for diffs], Tue Jan 1 19:39:50 2013 UTC (11 years, 5 months ago) by jasper
Branch: MAIN
CVS Tags: OPENBSD_5_3_BASE, OPENBSD_5_3
Changes since 1.185: +2 -2 lines
Diff to previous 1.185 (colored)

copyright++;

Revision 1.185 / (download) - annotate - [select for diffs], Mon Nov 5 19:39:34 2012 UTC (11 years, 7 months ago) by miod
Branch: MAIN
Changes since 1.184: +1 -5 lines
Diff to previous 1.184 (colored)

unifdef -D __HAVE_TIMECOUNTER

Revision 1.184 / (download) - annotate - [select for diffs], Tue Aug 28 16:39:09 2012 UTC (11 years, 9 months ago) by matthew
Branch: MAIN
Changes since 1.183: +7 -1 lines
Diff to previous 1.183 (colored)

Add __guard_local as a hidden symbol to ld.so, kernel, and every
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.

Revision 1.183 / (download) - annotate - [select for diffs], Wed Jun 13 22:47:39 2012 UTC (12 years ago) by ariane
Branch: MAIN
CVS Tags: OPENBSD_5_2_BASE, OPENBSD_5_2
Changes since 1.182: +3 -2 lines
Diff to previous 1.182 (colored)

Expose reaperproc.

I need this for my diffs.

ok guenther@

Revision 1.182 / (download) - annotate - [select for diffs], Fri Mar 23 15:51:26 2012 UTC (12 years, 2 months ago) by guenther
Branch: MAIN
Changes since 1.181: +3 -9 lines
Diff to previous 1.181 (colored)

Make rusage totals, itimers, and profile settings per-process instead
of per-rthread.  Handling of per-thread tick and runtime counters
inspired by how FreeBSD does it.

ok kettenis@

Revision 1.181 / (download) - annotate - [select for diffs], Sun Jan 1 12:17:33 2012 UTC (12 years, 5 months ago) by fgsch
Branch: MAIN
CVS Tags: OPENBSD_5_1_BASE, OPENBSD_5_1
Changes since 1.180: +2 -2 lines
Diff to previous 1.180 (colored)

copyright++

Revision 1.180 / (download) - annotate - [select for diffs], Thu Jul 7 18:00:33 2011 UTC (12 years, 11 months ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_5_0_BASE, OPENBSD_5_0
Changes since 1.179: +1 -4 lines
Diff to previous 1.179 (colored)

Functions used in files other than where they are defined should be
declared in .h files, not in each .c.  Apply that rule to endtsleep(),
scheduler_start(), updatepri(), and realitexpire()

ok deraadt@ tedu@

Revision 1.179 / (download) - annotate - [select for diffs], Wed Jul 6 21:41:37 2011 UTC (12 years, 11 months ago) by art
Branch: MAIN
Changes since 1.178: +3 -3 lines
Diff to previous 1.178 (colored)

Clean up after P_BIGLOCK removal.
KERNEL_PROC_LOCK -> KERNEL_LOCK
KERNEL_PROC_UNLOCK -> KERNEL_UNLOCK

oga@ ok

Revision 1.178 / (download) - annotate - [select for diffs], Tue Jul 5 04:48:02 2011 UTC (12 years, 11 months ago) by guenther
Branch: MAIN
Changes since 1.177: +5 -2 lines
Diff to previous 1.177 (colored)

Recommit the reverted sigacts change now that the NFS use-after-free
problem has been tracked down.  This fixes the sharing of the signal
handling state: shared bits go in sigacts, per-rthread bits goes in
struct proc.

ok deraadt@

Revision 1.177 / (download) - annotate - [select for diffs], Mon Apr 18 21:44:56 2011 UTC (13 years, 1 month ago) by guenther
Branch: MAIN
Changes since 1.176: +1 -4 lines
Diff to previous 1.176 (colored)

Revert the sigacts diff: NFS can apparently retain pointers to processes
until they're zombies and then send them signals (for intr mounts).  Until
that is untangled, the sigacts change is unsafe.  sthen@ was the victim
for this one

Revision 1.176 / (download) - annotate - [select for diffs], Fri Apr 15 04:52:40 2011 UTC (13 years, 2 months ago) by guenther
Branch: MAIN
Changes since 1.175: +5 -2 lines
Diff to previous 1.175 (colored)

Correct the sharing of the signal handling state: stuff that should
be shared (p_sigignore, p_sigcatch, P_NOCLDSTOP, P_NOCLDWAIT) moves
to struct sigacts, wihle stuff that should be per rthread (ps_oldmask,
SAS_OLDMASK, ps_sigstk) moves to struct proc.  Treat the coredumping
state bits (ps_sig, ps_code, ps_type, ps_sigval) as per-rthread
until our locking around coredumping is better.

Oh, and remove the old SunOS-compat ps_usertramp member.

"I like the sound of this" tedu@

Revision 1.175 / (download) - annotate - [select for diffs], Mon Mar 7 07:07:13 2011 UTC (13 years, 3 months ago) by guenther
Branch: MAIN
Changes since 1.174: +2 -2 lines
Diff to previous 1.174 (colored)

The scheduling 'nice' value is per-process, not per-thread, so move it
into struct process.

ok tedu@ deraadt@

Revision 1.174 / (download) - annotate - [select for diffs], Sat Jan 8 19:45:09 2011 UTC (13 years, 5 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_4_9_BASE, OPENBSD_4_9
Changes since 1.173: +5 -2 lines
Diff to previous 1.173 (colored)

split randomattach into random_init() and random_start(), so that we
can make attempts to load 'entropy' into the RC4.
ok miod ariane

Revision 1.173 / (download) - annotate - [select for diffs], Sat Jan 1 06:54:51 2011 UTC (13 years, 5 months ago) by deraadt
Branch: MAIN
Changes since 1.172: +2 -2 lines
Diff to previous 1.172 (colored)

copyright++;

Revision 1.172 / (download) - annotate - [select for diffs], Tue Dec 21 14:56:24 2010 UTC (13 years, 5 months ago) by claudio
Branch: MAIN
Changes since 1.171: +3 -1 lines
Diff to previous 1.171 (colored)

Convert netisr to a normal soft interrupt instead of hanving MD code
for it. This makes the netisr a real C function which will help further
development. No noticable performance change on i386 and amd64.
With input from kettenis@ and miod@ additional OKs mikeb@ and henning@

Revision 1.171 / (download) - annotate - [select for diffs], Wed Sep 8 14:15:56 2010 UTC (13 years, 9 months ago) by jsing
Branch: MAIN
Changes since 1.170: +2 -6 lines
Diff to previous 1.170 (colored)

Reintroduce most crypto/crypto.c r1.55:

Move pool initialization to init_crypto and zap the crypto_pool_initialized
variable. This way we don't have to check if the pool are initialized every
time we do a crypto_getreq().

However, also perform the crypto initialisation earlier in init_main so
that the crypto pools are initialised before they are used.

ok mikeb@ thib@ deraadt@

Revision 1.170 / (download) - annotate - [select for diffs], Mon Jul 26 01:56:27 2010 UTC (13 years, 10 months ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_4_8_BASE, OPENBSD_4_8
Changes since 1.169: +7 -6 lines
Diff to previous 1.169 (colored)

Correct the links between threads, processes, pgrps, and sessions,
so that the process-level stuff is to/from struct process and not
struct proc.  This fixes a bunch of problem cases in rthreads.
Based on earlier work by blambert and myself, but mostly written
at c2k10.

Tested by many: deraadt, sthen, krw, ray, and in snapshots

Revision 1.169 / (download) - annotate - [select for diffs], Sat Jul 3 04:44:51 2010 UTC (13 years, 11 months ago) by guenther
Branch: MAIN
Changes since 1.168: +3 -3 lines
Diff to previous 1.168 (colored)

Fix the naming of interfaces and variables for rdomains and rtables
and make it possible to bind sockets (including listening sockets!)
to rtables and not just rdomains.  This changes the name of the
system calls, socket option, and ioctl.  After building with this
you should remove the files /usr/share/man/cat2/[gs]etrdomain.0.

Since this removes the existing [gs]etrdomain() system calls, the
libc major is bumped.

Written by claudio@, criticized^Wcritiqued by me

Revision 1.168 / (download) - annotate - [select for diffs], Tue Jun 29 20:25:57 2010 UTC (13 years, 11 months ago) by guenther
Branch: MAIN
Changes since 1.167: +1 -2 lines
Diff to previous 1.167 (colored)

We always copy struct pcred when creating a new process, so the reference
count was always one.  That's pointless, so remove the member and the code.
ok tedu@

Revision 1.167 / (download) - annotate - [select for diffs], Fri May 14 18:47:56 2010 UTC (14 years, 1 month ago) by kettenis
Branch: MAIN
Changes since 1.166: +2 -1 lines
Diff to previous 1.166 (colored)

Make sure we initialize sched_lock before we try to use it.

ok miod@, thib@, oga@, jsing@

Revision 1.166 / (download) - annotate - [select for diffs], Tue Jan 12 04:06:26 2010 UTC (14 years, 5 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_4_7_BASE, OPENBSD_4_7
Changes since 1.165: +4 -2 lines
Diff to previous 1.165 (colored)

Since ifinit() is now safe to be called earlier, call it just before
configure(), since some upcoming changes will require it.
ok henning

Revision 1.165 / (download) - annotate - [select for diffs], Fri Jan 1 13:13:58 2010 UTC (14 years, 5 months ago) by miod
Branch: MAIN
Changes since 1.164: +2 -2 lines
Diff to previous 1.164 (colored)

copyright++;

Revision 1.164 / (download) - annotate - [select for diffs], Wed Dec 23 07:40:31 2009 UTC (14 years, 5 months ago) by guenther
Branch: MAIN
Changes since 1.163: +4 -4 lines
Diff to previous 1.163 (colored)

The process's rdomain should be, well, per-process and not per-rthread,
so put it in struct process instead of struct proc.  While at it,
move the p_emul member inside struct proc so that it gets copied
automatically instead of requiring manual assignment.

ok deraadt@

Revision 1.163 / (download) - annotate - [select for diffs], Fri Nov 27 20:05:50 2009 UTC (14 years, 6 months ago) by guenther
Branch: MAIN
Changes since 1.162: +4 -1 lines
Diff to previous 1.162 (colored)

Add setrdomain() and getrdomain() system calls.  Committing now to
catch the libc major bump per request from deraadt@

Diff by reyk.

ok guenther@

Revision 1.162 / (download) - annotate - [select for diffs], Tue Aug 11 18:43:33 2009 UTC (14 years, 10 months ago) by blambert
Branch: MAIN
Changes since 1.161: +6 -3 lines
Diff to previous 1.161 (colored)

uvm_scheduler() sounds important, but ``while(1) tsleep()'' is kinda lame

inline the loop in the one place it exists, and remove it from uvm

adjust a comment mentioning it accordingly

originally inspired by a diff fixing a comment from oga@

ok art@ beck@ miod@ oga@

Revision 1.161 / (download) - annotate - [select for diffs], Sun Aug 9 12:47:23 2009 UTC (14 years, 10 months ago) by dlg
Branch: MAIN
Changes since 1.160: +4 -0 lines
Diff to previous 1.160 (colored)

add mpath(4), a driver that steals paths to scsi devices if it
thinks they could be available via multiple paths. those stolen
devices are then made available via mpath(4).

this is the minimum amount of code to implement the stealing. it
is generally broken and very brittle, so it is currently disabled.

it is going in so i can work on it in the tree.

Revision 1.160 / (download) - annotate - [select for diffs], Thu Jul 9 22:29:56 2009 UTC (14 years, 11 months ago) by thib
Branch: MAIN
Changes since 1.159: +2 -2 lines
Diff to previous 1.159 (colored)

Remove the VREF() macro and replaces all instances with a call to verf(),
which is exactly what the macro does.

Macro's that are nothing more then:
#define FUNCTION(arg) function(arg)
are almost always pointless and should go away.

OK blambert@
Agreed by many.

Revision 1.159 / (download) - annotate - [select for diffs], Sun Apr 19 17:53:38 2009 UTC (15 years, 1 month ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_4_6_BASE, OPENBSD_4_6
Changes since 1.158: +2 -1 lines
Diff to previous 1.158 (colored)

Count number of cpus found (potentially not attached) and store that
in sysctl hw.ncpufound; ok miod kettenis

Revision 1.158 / (download) - annotate - [select for diffs], Thu Mar 5 19:52:24 2009 UTC (15 years, 3 months ago) by kettenis
Branch: MAIN
Changes since 1.157: +3 -1 lines
Diff to previous 1.157 (colored)

Make ELF platforms generate ELF core dumps.  Somewhat based on code from
NetBSD.

ok kurt@, drahn@, miod@

Revision 1.157 / (download) - annotate - [select for diffs], Fri Feb 13 19:58:27 2009 UTC (15 years, 3 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_4_5_BASE, OPENBSD_4_5
Changes since 1.156: +3 -3 lines
Diff to previous 1.156 (colored)

use nitems(); dunnoseriously@gmail

Revision 1.156 / (download) - annotate - [select for diffs], Thu Jan 1 15:45:09 2009 UTC (15 years, 5 months ago) by miod
Branch: MAIN
Changes since 1.155: +2 -2 lines
Diff to previous 1.155 (colored)

copyright_year++;

Revision 1.155 / (download) - annotate - [select for diffs], Wed Dec 3 23:39:32 2008 UTC (15 years, 6 months ago) by dlg
Branch: MAIN
Changes since 1.154: +4 -0 lines
Diff to previous 1.154 (colored)

add vscsi(4), a virtual scsi controller that passes all scsi requests up to
userland for handling. this is to scsi what tun(4) is for networks.

this is going into the tree so i can work on some crazy scsi stuff, but its
not being enabled since it is useless unless you're working on some crazy
scsi stuff.

Revision 1.154 / (download) - annotate - [select for diffs], Wed Oct 15 23:23:51 2008 UTC (15 years, 7 months ago) by deraadt
Branch: MAIN
Changes since 1.153: +2 -2 lines
Diff to previous 1.153 (colored)

make random(9) return per-cpu values (by saving the seed in the cpuinfo),
which are uniform for the profclock on each cpu in a SMP system (but using
a different seed for each cpu).  on all cpus, avoid seeding with a value out
of the [0, 2^31-1] range (since that is not stable)
ok kettenis drahn

Revision 1.153 / (download) - annotate - [select for diffs], Tue Oct 14 18:27:29 2008 UTC (15 years, 8 months ago) by guenther
Branch: MAIN
Changes since 1.152: +2 -1 lines
Diff to previous 1.152 (colored)

Back-in; problems were apparently elsewhere.
Put a reference count in struct process to prevent use-after-free
if the main thread reaches the reaper ahead of some other thread
in the process.  Use the reference count to update the user process
count correctly when changin real uid.

"please re-commit before something else nasty comes in" deraadt@

Revision 1.152 / (download) - annotate - [select for diffs], Fri Oct 10 14:35:06 2008 UTC (15 years, 8 months ago) by deraadt
Branch: MAIN
Changes since 1.151: +0 -1 lines
Diff to previous 1.151 (colored)

backout; is causing some people difficulty

Revision 1.151 / (download) - annotate - [select for diffs], Thu Oct 9 06:31:53 2008 UTC (15 years, 8 months ago) by guenther
Branch: MAIN
Changes since 1.150: +2 -1 lines
Diff to previous 1.150 (colored)

Put a reference count in struct process to prevent use-after-free
if the main thread reaches the reaper ahead of some other thread
in the process.

ok art@ tedu@

Revision 1.150 / (download) - annotate - [select for diffs], Mon Jun 9 07:07:16 2008 UTC (16 years ago) by djm
Branch: MAIN
CVS Tags: OPENBSD_4_4_BASE, OPENBSD_4_4
Changes since 1.149: +2 -2 lines
Diff to previous 1.149 (colored)

rename arc4random_bytes => arc4random_buf to match libc's nicer name;
ok deraadt@

Revision 1.149 / (download) - annotate - [select for diffs], Tue May 6 17:19:40 2008 UTC (16 years, 1 month ago) by thib
Branch: MAIN
Changes since 1.148: +3 -3 lines
Diff to previous 1.148 (colored)

retire vfs_mountroot();

setroot() is now (and has been) responsible for setting
the mountroot function pointer "to the right thing", or
failing todo that, to ffs_mountroot;

based on a discussion/diff from deraadt@.
OK deraadt@

Revision 1.148 / (download) - annotate - [select for diffs], Tue Jan 1 16:31:42 2008 UTC (16 years, 5 months ago) by miod
Branch: MAIN
CVS Tags: OPENBSD_4_3_BASE, OPENBSD_4_3
Changes since 1.147: +2 -2 lines
Diff to previous 1.147 (colored)

Welcome to the jungle of 2008.

Revision 1.147 / (download) - annotate - [select for diffs], Sun Nov 25 15:56:17 2007 UTC (16 years, 6 months ago) by tedu
Branch: MAIN
Changes since 1.146: +3 -13 lines
Diff to previous 1.146 (colored)

convert crypto thread to workq.  add WQ_DIRECTOK flag to workq.
combined, this lets us use crypto before the thread is running
and therefore cryptoraid can attach nice and early.
ok/testing deraadt mbalmer marco

Revision 1.146 / (download) - annotate - [select for diffs], Tue Oct 16 23:41:42 2007 UTC (16 years, 7 months ago) by fgsch
Branch: MAIN
Changes since 1.145: +1 -2 lines
Diff to previous 1.145 (colored)

more remove unneeded declarations that shadows existing vars; ok by many.

Revision 1.145 / (download) - annotate - [select for diffs], Wed Oct 10 15:53:53 2007 UTC (16 years, 8 months ago) by art
Branch: MAIN
Changes since 1.144: +4 -2 lines
Diff to previous 1.144 (colored)

Make context switching much more MI:
 - 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

Revision 1.144 / (download) - annotate - [select for diffs], Mon Sep 10 18:49:45 2007 UTC (16 years, 9 months ago) by miod
Branch: MAIN
Changes since 1.143: +2 -2 lines
Diff to previous 1.143 (colored)

Introduce a md pmap hook, pmap_remove_holes(), which is supposed to mark
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.

Revision 1.143 / (download) - annotate - [select for diffs], Wed Jul 25 23:11:52 2007 UTC (16 years, 10 months ago) by art
Branch: MAIN
CVS Tags: OPENBSD_4_2_BASE, OPENBSD_4_2
Changes since 1.142: +1 -3 lines
Diff to previous 1.142 (colored)

Back out the tracking of procs in struct selinfo. There's one serious
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.

Revision 1.142 / (download) - annotate - [select for diffs], Fri Jun 1 19:25:09 2007 UTC (17 years ago) by deraadt
Branch: MAIN
Changes since 1.141: +2 -4 lines
Diff to previous 1.141 (colored)

some architectures called setroot() from cpu_configure(), *way* before some
subsystems were enabled.  others used a *md_diskconf -> diskconf() method to
make sure init_main could "do late setroot".  Change all architectures to
have diskconf(), use it directly & late.  tested by todd and myself on most
architectures, ok miod too

Revision 1.141 / (download) - annotate - [select for diffs], Thu May 31 18:16:59 2007 UTC (17 years ago) by dlg
Branch: MAIN
Changes since 1.140: +6 -1 lines
Diff to previous 1.140 (colored)

add an interface for work queues run from a kernel thread.

this type of code is implemented many times already in the kernel, this is
a generic version of all those replicated code bases.

originally from tedu@
ok tedu@ tom@ deraadt@

Revision 1.140 / (download) - annotate - [select for diffs], Wed May 16 17:27:30 2007 UTC (17 years, 1 month ago) by art
Branch: MAIN
Changes since 1.139: +1 -14 lines
Diff to previous 1.139 (colored)

The world of __HAVEs and __HAVE_NOTs is reducing. All architectures
have cpu_info now, so kill the option.

eyeballed by jsg@ and grange@

Revision 1.139 / (download) - annotate - [select for diffs], Thu Apr 12 22:14:15 2007 UTC (17 years, 2 months ago) by tedu
Branch: MAIN
Changes since 1.138: +2 -2 lines
Diff to previous 1.138 (colored)

move p_limit and p_cred into struct process
leave macros behind for now to keep the commit small
ok art beck miod pedro

Revision 1.138 / (download) - annotate - [select for diffs], Tue Apr 3 08:05:43 2007 UTC (17 years, 2 months ago) by art
Branch: MAIN
Changes since 1.137: +8 -4 lines
Diff to previous 1.137 (colored)

Start moving state that is shared among threads in a process into
a new struct. Instead of doing a huge rename and deal with the fallout
for weeks, like other projects that need no mention, we will slowly and
carefully move things out of struct proc into a new struct process.

 - Create struct process and the infrastructure to create and remove them.
 - Move threads in a process into struct process.

deraadt@, tedu@ ok

Revision 1.137 / (download) - annotate - [select for diffs], Sat Mar 24 16:01:22 2007 UTC (17 years, 2 months ago) by art
Branch: MAIN
Changes since 1.136: +3 -1 lines
Diff to previous 1.136 (colored)

Kill the horrible hack of storing the pid in struct selinfo.

Instead, keep the proc pointer in it and put the selinfo on a list
in struct proc in selrecord. Then clean up the list when leaving
sys_select and sys_poll.

miod@ ok, testing by many, including Bobs spamd boxes.

Revision 1.136 / (download) - annotate - [select for diffs], Mon Mar 19 14:33:28 2007 UTC (17 years, 2 months ago) by dlg
Branch: MAIN
Changes since 1.135: +6 -0 lines
Diff to previous 1.135 (colored)

attach softraid to the root of the device tree in a machine independant
way, rather than requiring some glue in each machines mainbus probe.

it is still commented out.

based on a discussion with miod@ ok marco@ deraadt@

Revision 1.135 / (download) - annotate - [select for diffs], Thu Mar 15 10:22:30 2007 UTC (17 years, 3 months ago) by art
Branch: MAIN
Changes since 1.134: +2 -2 lines
Diff to previous 1.134 (colored)

Since p_flag is often manipulated in interrupts and without biglock
it's a good idea to use atomic.h operations on it. This mechanic
change updates all bit operations on p_flag to atomic_{set,clear}bits_int.

Only exception is that P_OWEUPC is set by MI code before calling
need_proftick and it's automatically cleared by ADDUPC. There's
no reason for MD handling of that flag since everyone handles it the
same way.

kettenis@ ok

Revision 1.134 / (download) - annotate - [select for diffs], Fri Jan 12 07:41:31 2007 UTC (17 years, 5 months ago) by art
Branch: MAIN
CVS Tags: OPENBSD_4_1_BASE, OPENBSD_4_1
Changes since 1.133: +1 -4 lines
Diff to previous 1.133 (colored)

Switch some lockmgr locks to rwlocks.
In this commit:
 - gdt lock on amd64
 - sysctl lock
 - malloc sysctl lock
 - disk sysctl lock
 - swap syscall lock

miod@, pedro@ ok (and "looks good" others@)

Revision 1.133 / (download) - annotate - [select for diffs], Tue Jan 2 06:07:58 2007 UTC (17 years, 5 months ago) by drahn
Branch: MAIN
Changes since 1.132: +2 -2 lines
Diff to previous 1.132 (colored)

2007

Revision 1.132 / (download) - annotate - [select for diffs], Wed Nov 29 12:24:17 2006 UTC (17 years, 6 months ago) by miod
Branch: MAIN
Changes since 1.131: +2 -2 lines
Diff to previous 1.131 (colored)

Kernel stack can be swapped. This means that stuff that's on the stack
should never be referenced outside the context of the process to which
this stack belongs unless we do the PHOLD/PRELE dance. Loads of code
doesn't follow the rules here. Instead of trying to track down all
offenders and fix this hairy situation, it makes much more sense
to not swap kernel stacks.

From art@, tested by many some time ago.

Revision 1.131 / (download) - annotate - [select for diffs], Tue Nov 14 18:00:27 2006 UTC (17 years, 7 months ago) by jmc
Branch: MAIN
Changes since 1.130: +2 -2 lines
Diff to previous 1.130 (colored)

grammar, spelling, and style fixes from bret lambert;
kern_descrip.c change ok deraadt

Revision 1.130 / (download) - annotate - [select for diffs], Sat May 6 23:02:36 2006 UTC (18 years, 1 month ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_4_0_BASE, OPENBSD_4_0
Changes since 1.129: +10 -2 lines
Diff to previous 1.129 (colored)

initialize the propolice cookie more carefully so -fstack-protector-all
will work; ok miod

Revision 1.129 / (download) - annotate - [select for diffs], Sat Mar 4 22:40:15 2006 UTC (18 years, 3 months ago) by brad
Branch: MAIN
Changes since 1.128: +2 -2 lines
Diff to previous 1.128 (colored)

With the exception of two other small uncommited diffs this moves
the remainder of the network stack from splimp to splnet.

ok miod@

Revision 1.128 / (download) - annotate - [select for diffs], Sun Jan 1 11:54:31 2006 UTC (18 years, 5 months ago) by miod
Branch: MAIN
CVS Tags: OPENBSD_3_9_BASE, OPENBSD_3_9
Changes since 1.127: +2 -2 lines
Diff to previous 1.127 (colored)

2006

Revision 1.127 / (download) - annotate - [select for diffs], Thu Dec 22 06:55:03 2005 UTC (18 years, 5 months ago) by tedu
Branch: MAIN
Changes since 1.126: +1 -2 lines
Diff to previous 1.126 (colored)

fix memory leak conditions in thrsleep and significantly simplify

Revision 1.126 / (download) - annotate - [select for diffs], Sat Dec 3 18:09:08 2005 UTC (18 years, 6 months ago) by tedu
Branch: MAIN
Changes since 1.125: +5 -1 lines
Diff to previous 1.125 (colored)

kernel support for threaded processes (rthreads).
uses rfork(RFTHREAD) to create threads, which are presently processes
that are a little more tightly bound together.  several new syscalls
added to facilitate a userland thread library.
all conditional on RTHREADS, currently disabled.
ok deraadt

Revision 1.125 / (download) - annotate - [select for diffs], Sat Nov 12 04:31:24 2005 UTC (18 years, 7 months ago) by jsg
Branch: MAIN
Changes since 1.124: +8 -15 lines
Diff to previous 1.124 (colored)

ansi. No binary change.

Revision 1.124 / (download) - annotate - [select for diffs], Mon Jul 18 11:43:14 2005 UTC (18 years, 10 months ago) by tom
Branch: MAIN
CVS Tags: OPENBSD_3_8_BASE, OPENBSD_3_8
Changes since 1.123: +1 -1 lines
Diff to previous 1.123 (colored)

Typo in comment, from Giorgos Keramidas, keramida (at) ceid (dot)
upatras (dot) gr.  Thanks.

Revision 1.123 / (download) - annotate - [select for diffs], Sat Jan 1 18:12:58 2005 UTC (19 years, 5 months ago) by mickey
Branch: MAIN
CVS Tags: OPENBSD_3_7_BASE, OPENBSD_3_7
Changes since 1.122: +2 -2 lines
Diff to previous 1.122 (colored)

2005

Revision 1.122 / (download) - annotate - [select for diffs], Sun Dec 26 21:22:13 2004 UTC (19 years, 5 months ago) by miod
Branch: MAIN
Changes since 1.121: +2 -2 lines
Diff to previous 1.121 (colored)

Use list and queue macros where applicable to make the code easier to read;
no change in compiler assembly output.

Revision 1.121 / (download) - annotate - [select for diffs], Sun Nov 28 02:11:33 2004 UTC (19 years, 6 months ago) by deraadt
Branch: MAIN
Changes since 1.120: +3 -1 lines
Diff to previous 1.120 (colored)

mountroothooks are called after the root filesystem is mounted.

Revision 1.120 / (download) - annotate - [select for diffs], Tue Nov 23 19:08:55 2004 UTC (19 years, 6 months ago) by miod
Branch: MAIN
Changes since 1.119: +66 -22 lines
Diff to previous 1.119 (colored)

Create the init process earlier, before the root filesystem is mounted,
and have it stall on a semaphore. This allows all kthread creations which
could have been requested during autoconf to be processed before root
is mounted as well.

This causes umass devices attached to any usb with flags 1 (such as on macppc)
to configure properly instead of panicing the kernel at mountroot time.

From NetBSD; tested by various.

Revision 1.119 / (download) - annotate - [select for diffs], Wed Jul 28 17:15:12 2004 UTC (19 years, 10 months ago) by tholo
Branch: MAIN
CVS Tags: OPENBSD_3_6_BASE, OPENBSD_3_6
Changes since 1.118: +7 -3 lines
Diff to previous 1.118 (colored)

This touches only MI code, and adds new time keeping code.  The
code is all conditionalized on __HAVE_TIMECOUNTER, and not
enabled on any platforms.

adjtime(2) support exists, courtesy of nordin@, sysctl(2) support
and a concept of quality for each time source attached exists.

High quality time sources exists for PIIX4 ACPI timer as well as
some AMD power management chips.  This will have to be redone
once we actually add ACPI support (at that time we need to use
the ACPI interfaces to get at these clocks).

ok art@ ken@ miod@ jmc@ and many more

Revision 1.118 / (download) - annotate - [select for diffs], Tue Jul 20 20:19:52 2004 UTC (19 years, 10 months ago) by art
Branch: MAIN
Changes since 1.117: +1 -4 lines
Diff to previous 1.117 (colored)

protect printf with a mutex instead of SIMPLELOCK.

Revision 1.117 / (download) - annotate - [select for diffs], Thu Jun 24 19:35:24 2004 UTC (19 years, 11 months ago) by tholo
Branch: MAIN
Changes since 1.116: +3 -2 lines
Diff to previous 1.116 (colored)

This moves access to wall and uptime variables in MI code,
encapsulating all such access into wall-defined functions
that makes sure locking is done as needed.

It also cleans up some uses of wall time vs. uptime some
places, but there is sure to be more of these needed as
well, particularily in MD code.  Also, many current calls
to microtime() should probably be changed to getmicrotime(),
or to the {,get}microuptime() versions.

ok art@ deraadt@ aaron@ matthieu@ beck@ sturm@ millert@ others
"Oh, that is not your problem!" from miod@

Revision 1.116 / (download) - annotate - [select for diffs], Sun Jun 13 21:49:26 2004 UTC (20 years ago) by niklas
Branch: MAIN
Changes since 1.115: +23 -7 lines
Diff to previous 1.115 (colored)

debranch SMP, have fun

Revision 1.46.2.24 / (download) - annotate - [select for diffs], Thu Jun 10 11:40:33 2004 UTC (20 years ago) by niklas
Branch: SMP
Changes since 1.46.2.23: +5 -5 lines
Diff to previous 1.46.2.23 (colored) to branchpoint 1.46 (colored) next main 1.47 (colored)

sync with head, make i386 __HAVE_CPUINFO

Revision 1.115 / (download) - annotate - [select for diffs], Wed Jun 9 20:18:28 2004 UTC (20 years ago) by art
Branch: MAIN
CVS Tags: SMP_SYNC_B, SMP_SYNC_A
Changes since 1.114: +13 -2 lines
Diff to previous 1.114 (colored)

Merge in a piece of the SMP branch into HEAD.

Introduce the cpu_info structure, p_cpu field in struct proc and global
scheduling context and various changed code to deal with this. At the
moment no architecture uses this stuff yet, but it will allow us slow and
controlled migration to the new APIs.

All new code is ifdef:ed out.

ok deraadt@ niklas@

Revision 1.46.2.23 / (download) - annotate - [select for diffs], Tue Jun 8 19:39:49 2004 UTC (20 years ago) by art
Branch: SMP
Changes since 1.46.2.22: +4 -2 lines
Diff to previous 1.46.2.22 (colored) to branchpoint 1.46 (colored)

Set runtime in the !MP case too.
deraadt@ ok

Revision 1.114 / (download) - annotate - [select for diffs], Tue Jun 8 18:09:31 2004 UTC (20 years ago) by marc
Branch: MAIN
Changes since 1.113: +2 -1 lines
Diff to previous 1.113 (colored)

pull ncpus support from smp tree into main branch.
remove alpha specific definition of ncpus.
OK (and tested on alpha) deraadt@

Revision 1.46.2.22 / (download) - annotate - [select for diffs], Sun Jun 6 21:46:12 2004 UTC (20 years ago) by tedu
Branch: SMP
Changes since 1.46.2.21: +3 -1 lines
Diff to previous 1.46.2.21 (colored) to branchpoint 1.46 (colored)

don't rely on curcpu() and other fixes for non-mp

Revision 1.46.2.21 / (download) - annotate - [select for diffs], Sat Jun 5 23:13:01 2004 UTC (20 years ago) by niklas
Branch: SMP
Changes since 1.46.2.20: +9 -4 lines
Diff to previous 1.46.2.20 (colored) to branchpoint 1.46 (colored)

Merge with the trunk

Revision 1.46.2.20 / (download) - annotate - [select for diffs], Sat Jun 5 17:19:55 2004 UTC (20 years ago) by niklas
Branch: SMP
Changes since 1.46.2.19: +9 -4 lines
Diff to previous 1.46.2.19 (colored) to branchpoint 1.46 (colored)

Make a few scheduling globals per-cpu, mostly NetBSD code

Revision 1.113 / (download) - annotate - [select for diffs], Thu Apr 1 00:27:51 2004 UTC (20 years, 2 months ago) by tedu
Branch: MAIN
Changes since 1.112: +8 -2 lines
Diff to previous 1.112 (colored)

init kqueues normally, from pedro martelletto

Revision 1.112 / (download) - annotate - [select for diffs], Sun Mar 14 23:12:11 2004 UTC (20 years, 3 months ago) by tedu
Branch: MAIN
CVS Tags: OPENBSD_3_5_BASE, OPENBSD_3_5
Changes since 1.111: +2 -3 lines
Diff to previous 1.111 (colored)

nicer printf for copyright.  from Pedro Martelletto

Revision 1.46.2.19 / (download) - annotate - [select for diffs], Thu Feb 19 10:56:37 2004 UTC (20 years, 3 months ago) by niklas
Branch: SMP
Changes since 1.46.2.18: +21 -15 lines
Diff to previous 1.46.2.18 (colored) to branchpoint 1.46 (colored)

Merge of current from two weeks agointo the SMP branch

Revision 1.111 / (download) - annotate - [select for diffs], Wed Jan 21 19:03:44 2004 UTC (20 years, 4 months ago) by tedu
Branch: MAIN
Changes since 1.110: +6 -6 lines
Diff to previous 1.110 (colored)

call timeout_startup early, so timeouts are available.  report from sam smith
ok art deraadt

Revision 1.110 / (download) - annotate - [select for diffs], Wed Jan 14 19:34:05 2004 UTC (20 years, 5 months ago) by grange
Branch: MAIN
Changes since 1.109: +5 -1 lines
Diff to previous 1.109 (colored)

Get rid of M_LOCKF and use pool for allocating lockf structures.
 From NetBSD.

Tested by many people, ok art@.

Revision 1.109 / (download) - annotate - [select for diffs], Thu Jan 1 00:04:35 2004 UTC (20 years, 5 months ago) by deraadt
Branch: MAIN
Changes since 1.108: +2 -2 lines
Diff to previous 1.108 (colored)

2004

Revision 1.108 / (download) - annotate - [select for diffs], Mon Nov 3 18:24:52 2003 UTC (20 years, 7 months ago) by tedu
Branch: MAIN
Changes since 1.107: +2 -6 lines
Diff to previous 1.107 (colored)

use arc4random_bytes

Revision 1.107 / (download) - annotate - [select for diffs], Mon Sep 1 18:06:03 2003 UTC (20 years, 9 months ago) by henning
Branch: MAIN
CVS Tags: OPENBSD_3_4_BASE, OPENBSD_3_4
Changes since 1.106: +4 -4 lines
Diff to previous 1.106 (colored)

match syscallargs comments with reality
from Patrick Latifi <patrick.l@hermes.usherb.ca>
ok jason@ tedu@

Revision 1.106 / (download) - annotate - [select for diffs], Thu Aug 21 18:56:07 2003 UTC (20 years, 9 months ago) by tedu
Branch: MAIN
Changes since 1.105: +7 -1 lines
Diff to previous 1.105 (colored)

emulation is now controlled by sysctl.  changes:
add e_flags to struct emul.  this stores on/off and native flags.
check for emul enabled in check_exec().  gather all the emuls into a
emulsw so a sysctl can find them.  create sysctl.  move maxhdrsiz calcualation
into init_main so it cleans up sys_execve codepath.  teach sysctl utility
to grok kern.emul hierarchy.
requested and ok deraadt@  some comments from mickey@

Revision 1.46.2.18 / (download) - annotate - [select for diffs], Sat Jun 7 11:03:40 2003 UTC (21 years ago) by ho
Branch: SMP
Changes since 1.46.2.17: +2 -6 lines
Diff to previous 1.46.2.17 (colored) to branchpoint 1.46 (colored)

Sync SMP branch to -current

Revision 1.105 / (download) - annotate - [select for diffs], Mon Jun 2 23:28:05 2003 UTC (21 years ago) by millert
Branch: MAIN
Changes since 1.104: +2 -6 lines
Diff to previous 1.104 (colored)

Remove the advertising clause in the UCB license which Berkeley
rescinded 22 July 1999.  Proofed by myself and Theo.

Revision 1.88.2.3 / (download) - annotate - [select for diffs], Mon May 19 22:31:09 2003 UTC (21 years ago) by tedu
Branch: UBC
Changes since 1.88.2.2: +46 -41 lines
Diff to previous 1.88.2.2 (colored) to branchpoint 1.88 (colored) next main 1.89 (colored)

sync

Revision 1.46.2.17 / (download) - annotate - [select for diffs], Sun May 18 17:41:16 2003 UTC (21 years ago) by niklas
Branch: SMP
Changes since 1.46.2.16: +3 -3 lines
Diff to previous 1.46.2.16 (colored) to branchpoint 1.46 (colored)

Go back to defining simplelocks as noops, even if MULTIPROCESSOR.  Instead use
a new real simple recursive-lock capable lock implementation for the few
necessary locks (kernel, scheduler, tlb shootdown, printf and ddb MP).
This because we cannot trust the old fine-grained locks spread out all over
our kernel, and not really tested.

Revision 1.46.2.16 / (download) - annotate - [select for diffs], Fri May 16 00:29:43 2003 UTC (21 years, 1 month ago) by niklas
Branch: SMP
Changes since 1.46.2.15: +15 -1 lines
Diff to previous 1.46.2.15 (colored) to branchpoint 1.46 (colored)

merge the trunk so we will get the genfs and locking fixes

Revision 1.46.2.15 / (download) - annotate - [select for diffs], Thu May 15 04:08:02 2003 UTC (21 years, 1 month ago) by niklas
Branch: SMP
Changes since 1.46.2.14: +14 -3 lines
Diff to previous 1.46.2.14 (colored) to branchpoint 1.46 (colored)

Biglock!  Most of the logic
comes from NetBSD.
Also a lot of fixes, enough to get a dual cpu machine actually run MP for a
very short while (we are just talking about seconds) before starving out one
of the cpus.  More coming very soon.

Revision 1.104 / (download) - annotate - [select for diffs], Tue May 13 22:45:11 2003 UTC (21 years, 1 month ago) by miod
Branch: MAIN
CVS Tags: UBC_SYNC_A
Changes since 1.103: +7 -1 lines
Diff to previous 1.103 (colored)

Add option NO_PROPOLICE, which explicitely disables the use of the propolice
stack protection when building kernels. Intended to be used on installation
media, with tight space constraints - currently, only added where
SMALL_KERNEL was already defined.

Not thoroughly tested, but requested by deraadt.

Revision 1.46.2.14 / (download) - annotate - [select for diffs], Tue May 13 19:21:28 2003 UTC (21 years, 1 month ago) by ho
Branch: SMP
Changes since 1.46.2.13: +2 -2 lines
Diff to previous 1.46.2.13 (colored) to branchpoint 1.46 (colored)

Sync the SMP branch to -current. This includes moving to ELF.

Revision 1.103 / (download) - annotate - [select for diffs], Tue May 13 06:11:11 2003 UTC (21 years, 1 month ago) by tedu
Branch: MAIN
Changes since 1.102: +9 -1 lines
Diff to previous 1.102 (colored)

support for propolice in the kernel.
some style input itojun@ tdeval@ toby@
tested, mostly by deraadt, on i386, macppc, vax, sparc64
ok deraadt@ miod@

Revision 1.102 / (download) - annotate - [select for diffs], Fri May 9 00:49:46 2003 UTC (21 years, 1 month ago) by art
Branch: MAIN
Changes since 1.101: +2 -2 lines
Diff to previous 1.101 (colored)

Don't map the fake arg list for init with X permissions.

niklas@ tdeval@ ok

Revision 1.46.2.13 / (download) - annotate - [select for diffs], Fri Mar 28 00:41:26 2003 UTC (21 years, 2 months ago) by niklas
Branch: SMP
Changes since 1.46.2.12: +31 -39 lines
Diff to previous 1.46.2.12 (colored) to branchpoint 1.46 (colored)

Sync the SMP branch with 3.3

Revision 1.101 / (download) - annotate - [select for diffs], Thu Mar 6 17:06:18 2003 UTC (21 years, 3 months ago) by mickey
Branch: MAIN
CVS Tags: OPENBSD_3_3_BASE, OPENBSD_3_3
Changes since 1.100: +14 -14 lines
Diff to previous 1.100 (colored)

move cpu_configre() lower after the proc0 is more completely initialized.
still calculate the memory limits for proc0 at after the autoconf is done.
miod@ testing on everything; art@ ok

Revision 1.100 / (download) - annotate - [select for diffs], Thu Jan 9 22:27:12 2003 UTC (21 years, 5 months ago) by miod
Branch: MAIN
Changes since 1.99: +7 -5 lines
Diff to previous 1.99 (colored)

Remove fetch(9) and store(9) functions from the kernel, and replace the few
remaining instances of them with appropriate copy(9) usage.

ok art@, tested on all arches unless my memory is non-ECC

Revision 1.99 / (download) - annotate - [select for diffs], Wed Jan 1 21:05:36 2003 UTC (21 years, 5 months ago) by pvalchev
Branch: MAIN
Changes since 1.98: +2 -2 lines
Diff to previous 1.98 (colored)

2003 in copyright

Revision 1.98 / (download) - annotate - [select for diffs], Thu Dec 19 00:57:07 2002 UTC (21 years, 5 months ago) by mickey
Branch: MAIN
Changes since 1.97: +1 -5 lines
Diff to previous 1.97 (colored)

simplify stack grownups (growndowns are not touched)

Revision 1.97 / (download) - annotate - [select for diffs], Fri Nov 22 16:47:28 2002 UTC (21 years, 6 months ago) by art
Branch: MAIN
Changes since 1.96: +6 -14 lines
Diff to previous 1.96 (colored)

Instead of statically allocating filedescs for proc0, use fdinit.

Revision 1.96 / (download) - annotate - [select for diffs], Fri Nov 22 09:50:08 2002 UTC (21 years, 6 months ago) by deraadt
Branch: MAIN
Changes since 1.95: +6 -5 lines
Diff to previous 1.95 (colored)

repair proc0 rlimit setup for >2GB machines

Revision 1.88.2.2 / (download) - annotate - [select for diffs], Tue Jun 11 03:29:40 2002 UTC (22 years ago) by art
Branch: UBC
Changes since 1.88.2.1: +16 -15 lines
Diff to previous 1.88.2.1 (colored) to branchpoint 1.88 (colored)

Sync UBC branch to -current

Revision 1.95 / (download) - annotate - [select for diffs], Mon May 27 13:42:16 2002 UTC (22 years ago) by itojun
Branch: MAIN
CVS Tags: UBC_SYNC_B, OPENBSD_3_2_BASE, OPENBSD_3_2
Changes since 1.94: +2 -1 lines
Diff to previous 1.94 (colored)

if_attach() gets called before domaininit().  scan all interfaces for if_afdata
initialization after domaininit().

Revision 1.46.2.12 / (download) - annotate - [select for diffs], Thu Mar 28 11:43:04 2002 UTC (22 years, 2 months ago) by niklas
Branch: SMP
Changes since 1.46.2.11: +14 -14 lines
Diff to previous 1.46.2.11 (colored) to branchpoint 1.46 (colored)

Merge in -current from about a week ago

Revision 1.94 / (download) - annotate - [select for diffs], Thu Mar 14 20:31:31 2002 UTC (22 years, 3 months ago) by mickey
Branch: MAIN
CVS Tags: OPENBSD_3_1_BASE, OPENBSD_3_1
Changes since 1.93: +2 -2 lines
Diff to previous 1.93 (colored)

remove ambiguity in version,ostype,osversion,osrelease and their constanity, they are and declarre 'em accordingly also removing private externies of those

Revision 1.93 / (download) - annotate - [select for diffs], Thu Mar 14 01:27:04 2002 UTC (22 years, 3 months ago) by millert
Branch: MAIN
Changes since 1.92: +14 -14 lines
Diff to previous 1.92 (colored)

First round of __P removal in sys

Revision 1.46.2.11 / (download) - annotate - [select for diffs], Wed Mar 6 02:13:22 2002 UTC (22 years, 3 months ago) by niklas
Branch: SMP
Changes since 1.46.2.10: +2 -4 lines
Diff to previous 1.46.2.10 (colored) to branchpoint 1.46 (colored)

Merge in trunk

Revision 1.88.2.1 / (download) - annotate - [select for diffs], Thu Jan 31 22:55:40 2002 UTC (22 years, 4 months ago) by niklas
Branch: UBC
Changes since 1.88: +3 -3 lines
Diff to previous 1.88 (colored)

Merge in -current, builds on i386, otherwise untested

Revision 1.92 / (download) - annotate - [select for diffs], Wed Jan 30 20:29:44 2002 UTC (22 years, 4 months ago) by nordin
Branch: MAIN
Changes since 1.91: +2 -1 lines
Diff to previous 1.91 (colored)

Add proc0 to the PIDHASH table. art@ ok

Revision 1.91 / (download) - annotate - [select for diffs], Wed Jan 16 20:50:17 2002 UTC (22 years, 4 months ago) by miod
Branch: MAIN
Changes since 1.90: +1 -2 lines
Diff to previous 1.90 (colored)

Don't include <sys/map.h> when you don't need what's in it.

Revision 1.90 / (download) - annotate - [select for diffs], Tue Jan 1 20:41:56 2002 UTC (22 years, 5 months ago) by deraadt
Branch: MAIN
Changes since 1.89: +2 -2 lines
Diff to previous 1.89 (colored)

2002

Revision 1.89 / (download) - annotate - [select for diffs], Wed Dec 19 08:58:06 2001 UTC (22 years, 5 months ago) by art
Branch: MAIN
Changes since 1.88: +2 -4 lines
Diff to previous 1.88 (colored)

UBC was a disaster. It worked very good when it worked, but on some
machines or some configurations or in some phase of the moon (we actually
don't know when or why) files disappeared. Since we've not been able to
track down the problem in two weeks intense debugging and we need -current
to be stable, back out everything to a state it had before UBC.

We apologise for the inconvenience.

Revision 1.46.2.10 / (download) - annotate - [select for diffs], Wed Dec 5 01:02:39 2001 UTC (22 years, 6 months ago) by niklas
Branch: SMP
Changes since 1.46.2.9: +7 -2 lines
Diff to previous 1.46.2.9 (colored) to branchpoint 1.46 (colored)

Merge in -current

Revision 1.88 / (download) - annotate - [select for diffs], Tue Dec 4 23:22:42 2001 UTC (22 years, 6 months ago) by art
Branch: MAIN
CVS Tags: UBC_BASE
Branch point for: UBC
Changes since 1.87: +2 -2 lines
Diff to previous 1.87 (colored)

Yet another sync to NetBSD uvm.
Today we add a pmap argument to pmap_update() and allocate map entries for
kernel_map from kmem_map instead of using the static entries. This should
get rid of MAX_KMAPENT panics. Also some uvm_loan problems are fixed.

Revision 1.87 / (download) - annotate - [select for diffs], Wed Nov 28 13:47:39 2001 UTC (22 years, 6 months ago) by art
Branch: MAIN
Changes since 1.86: +2 -3 lines
Diff to previous 1.86 (colored)

Sync in more uvm changes from NetBSD.
This time we're getting rid of KERN_* and VM_PAGER_* error codes and
use errnos instead.

Revision 1.86 / (download) - annotate - [select for diffs], Tue Nov 27 22:53:19 2001 UTC (22 years, 6 months ago) by provos
Branch: MAIN
Changes since 1.85: +5 -1 lines
Diff to previous 1.85 (colored)

change socket allocation to pool allocator; from netbsd; okay niklas@

Revision 1.85 / (download) - annotate - [select for diffs], Tue Nov 27 05:27:11 2001 UTC (22 years, 6 months ago) by art
Branch: MAIN
Changes since 1.84: +3 -1 lines
Diff to previous 1.84 (colored)

Merge in the unified buffer cache code as found in NetBSD 2001/03/10. The
code is written mostly by Chuck Silvers <chuq@chuq.com>/<chs@netbsd.org>.

Tested for the past few weeks by many developers, should be in a pretty stable
state, but will require optimizations and additional cleanups.

Revision 1.46.2.9 / (download) - annotate - [select for diffs], Tue Nov 13 23:04:23 2001 UTC (22 years, 7 months ago) by niklas
Branch: SMP
Changes since 1.46.2.8: +11 -18 lines
Diff to previous 1.46.2.8 (colored) to branchpoint 1.46 (colored)

merge in -current

Revision 1.84 / (download) - annotate - [select for diffs], Sat Nov 10 18:42:31 2001 UTC (22 years, 7 months ago) by art
Branch: MAIN
Changes since 1.83: +6 -2 lines
Diff to previous 1.83 (colored)

Merge in some parts of the ubc work that has been done in NetBSD that are not
UBC, but prerequsites for it.

- Create a daemon that processes async I/O (swap and paging in the future)
  requests that need processing in process context and that were processed
  in the pagedaemon before.
- Convert some ugly ifdef DIAGNOSTIC code to less intrusive KASSERTs.
- misc other cleanups.

Revision 1.83 / (download) - annotate - [select for diffs], Wed Nov 7 01:18:01 2001 UTC (22 years, 7 months ago) by art
Branch: MAIN
Changes since 1.82: +2 -2 lines
Diff to previous 1.82 (colored)

Add an alignment argument to uvm_map that specifies an alignment hint
for the virtual address.

Revision 1.82 / (download) - annotate - [select for diffs], Tue Nov 6 19:53:20 2001 UTC (22 years, 7 months ago) by miod
Branch: MAIN
Changes since 1.81: +1 -3 lines
Diff to previous 1.81 (colored)

Replace inclusion of <vm/foo.h> with the correct <uvm/bar.h> when necessary.
(Look ma, I might have broken the tree)

Revision 1.81 / (download) - annotate - [select for diffs], Tue Nov 6 18:41:10 2001 UTC (22 years, 7 months ago) by art
Branch: MAIN
Changes since 1.80: +4 -4 lines
Diff to previous 1.80 (colored)

Let fork1, uvm_fork, and cpu_fork take a function/argument pair as argument,
instead of doing fork1, cpu_set_kpc. This lets us retire cpu_set_kpc and
avoid a multiprocessor race.

This commit breaks vax because it doesn't look like any other arch, someone
working on vax might want to look at this and try to adapt the code to be
more like the rest of the world.

Idea and uvm parts from NetBSD.

Revision 1.80 / (download) - annotate - [select for diffs], Tue Nov 6 13:36:52 2001 UTC (22 years, 7 months ago) by art
Branch: MAIN
Changes since 1.79: +2 -11 lines
Diff to previous 1.79 (colored)

More sync to NetBSD.
 - Use malloc/free instead of MALLOC/FREE for variable sized allocations.
 - Move the memory inheritance code to sys/mman.h and rename from VM_* to MAP_*
 - various cleanups and simplifications.

Revision 1.46.2.8 / (download) - annotate - [select for diffs], Wed Oct 31 03:26:28 2001 UTC (22 years, 7 months ago) by nate
Branch: SMP
Changes since 1.46.2.7: +31 -23 lines
Diff to previous 1.46.2.7 (colored) to branchpoint 1.46 (colored)

Sync the SMP branch to something just after 3.0

Revision 1.46.2.7 / (download) - annotate - [select for diffs], Sat Oct 27 10:00:47 2001 UTC (22 years, 7 months ago) by niklas
Branch: SMP
Changes since 1.46.2.6: +8 -2 lines
Diff to previous 1.46.2.6 (colored) to branchpoint 1.46 (colored)

Try to spinup the application processors, not yet working.

Revision 1.79 / (download) - annotate - [select for diffs], Thu Oct 11 08:07:12 2001 UTC (22 years, 8 months ago) by gluk
Branch: MAIN
CVS Tags: OPENBSD_3_0_BASE, OPENBSD_3_0
Changes since 1.78: +6 -6 lines
Diff to previous 1.78 (colored)

Count pages not buffers. This fixes deadlock condition which mainly
occurs on the fs with large block size. We can have situation where
numcleanbufs < locleanbufs and numdirtybufs < hidirtybufs.  So, buffer
flushing daemon never wakeups and other processes asleep forever waiting
for a clean buffers. We count pages only for the dirty buffers which are
on freelist(BQ_DIRTY).

niklas@ found this.

Rename flasher to cleaner. Suggested by costa@.

Discussed with niklas@, costa@, millert@, art@.
Ok deraadt@.

Revision 1.78 / (download) - annotate - [select for diffs], Sat Sep 29 20:09:34 2001 UTC (22 years, 8 months ago) by gluk
Branch: MAIN
Changes since 1.77: +6 -6 lines
Diff to previous 1.77 (colored)

Move signal initialization before dostartuphooks to avoid panic at
start of raid autoconfiguration thread. Required for upcoming RAIDFrame
code update.

From Thierry Deval <TDeval@PrimeOBJ.COM>

Revision 1.77 / (download) - annotate - [select for diffs], Mon Sep 17 19:17:30 2001 UTC (22 years, 8 months ago) by gluk
Branch: MAIN
Changes since 1.76: +17 -7 lines
Diff to previous 1.76 (colored)

 The first implementation of the buffer flushing daemon. It solves our
problem when syncer can't do its work because of vnode locks (PR1983).
This also solves our problem where bigger number of buffers results in a
much worse perfomance. In my configuration (i386, 128mb, BUFCACHEPERCENT=35)
this speedup tar -xzf ports.tar.gz in 2-4 times. In configuration with
low number of buffers and softupdates this may slowdown some operations
up to 15%.

 The major difference with current buffer cache is that new implementation
uses separate queues for dirty and clean buffers. I.e. BQ_LRU and BQ_AGE
replaced by BQ_CLEAN and BQ_DIRTY. This simplifies things a lot and
doesn't affect perfomance in a bad manner.

Thanks to art and costa for pointing on errors.

Tested by brad, millert, naddy, art, jj, camield

art, millert ok.

Revision 1.76 / (download) - annotate - [select for diffs], Wed Sep 12 15:48:45 2001 UTC (22 years, 9 months ago) by art
Branch: MAIN
Changes since 1.75: +2 -2 lines
Diff to previous 1.75 (colored)

Rename timeout_init to timeout_startup to deconfuse a bit.

Revision 1.75 / (download) - annotate - [select for diffs], Fri Sep 7 12:58:18 2001 UTC (22 years, 9 months ago) by art
Branch: MAIN
Changes since 1.74: +3 -4 lines
Diff to previous 1.74 (colored)

make starting of init slightly cleaner. Also sets initproc earlier.

Revision 1.74 / (download) - annotate - [select for diffs], Thu Aug 23 14:01:02 2001 UTC (22 years, 9 months ago) by art
Branch: MAIN
Changes since 1.73: +6 -1 lines
Diff to previous 1.73 (colored)

We can now move timeout_init into main().

Revision 1.73 / (download) - annotate - [select for diffs], Fri Jul 27 09:55:07 2001 UTC (22 years, 10 months ago) by niklas
Branch: MAIN
Changes since 1.72: +3 -1 lines
Diff to previous 1.72 (colored)

Startup hooks.  Can be used for providing root/swap devices from device
systems which want configuration to finish late, like I2O.  Implemented via
a general hooks mechanism which the shutdown hooks have been converted to
use as well.  It even has manpages!

Revision 1.46.2.6 / (download) - annotate - [select for diffs], Sat Jul 14 10:02:19 2001 UTC (22 years, 11 months ago) by ho
Branch: SMP
Changes since 1.46.2.5: +2 -1 lines
Diff to previous 1.46.2.5 (colored) to branchpoint 1.46 (colored)

Initial import of some SMP code from NetBSD.
Not really working here yet, but there is some work in progress.

Revision 1.72 / (download) - annotate - [select for diffs], Thu Jul 5 10:12:24 2001 UTC (22 years, 11 months ago) by art
Branch: MAIN
Changes since 1.71: +1 -9 lines
Diff to previous 1.71 (colored)

Get rid of REAL_CLISTS. It was never implemented and the tentacles are
everywhhere.

Revision 1.46.2.5 / (download) - annotate - [select for diffs], Wed Jul 4 10:48:14 2001 UTC (22 years, 11 months ago) by niklas
Branch: SMP
Changes since 1.46.2.4: +29 -85 lines
Diff to previous 1.46.2.4 (colored) to branchpoint 1.46 (colored)

Merge in -current from two days ago in the SMP branch.
As usual with merges, they do not indicate progress, so do not hold
your breath for working SMP, and do not mail me and ask about the
state of it.  It has not changed.  There is work ongoing, but very, very
slowly.  The commit is done in parts as to not lock up the tree in too
big chunks at a time.

Revision 1.71 / (download) - annotate - [select for diffs], Wed Jun 27 07:16:28 2001 UTC (22 years, 11 months ago) by art
Branch: MAIN
Changes since 1.70: +1 -27 lines
Diff to previous 1.70 (colored)

no more cpu_set_init_frame

Revision 1.70 / (download) - annotate - [select for diffs], Wed Jun 27 07:02:45 2001 UTC (22 years, 11 months ago) by art
Branch: MAIN
Changes since 1.69: +1 -2 lines
Diff to previous 1.69 (colored)

vm_pageout.h bye bye.

Revision 1.69 / (download) - annotate - [select for diffs], Wed Jun 27 04:49:40 2001 UTC (22 years, 11 months ago) by art
Branch: MAIN
Changes since 1.68: +1 -45 lines
Diff to previous 1.68 (colored)

remove old vm

Revision 1.68 / (download) - annotate - [select for diffs], Sat Jun 23 18:30:37 2001 UTC (22 years, 11 months ago) by deraadt
Branch: MAIN
Changes since 1.67: +2 -2 lines
Diff to previous 1.67 (colored)

merge crypto/crypto{dev,}.h to crypto/cryptodev.h, to avoid name conflicts inside OpenSSL codebase

Revision 1.67 / (download) - annotate - [select for diffs], Sat Jun 23 06:04:34 2001 UTC (22 years, 11 months ago) by art
Branch: MAIN
Changes since 1.66: +7 -1 lines
Diff to previous 1.66 (colored)

Add pipe_init, call it from main, move the pool initialization into it.

Revision 1.66 / (download) - annotate - [select for diffs], Fri Jun 22 14:14:08 2001 UTC (22 years, 11 months ago) by deraadt
Branch: MAIN
Changes since 1.65: +9 -10 lines
Diff to previous 1.65 (colored)

KNF

Revision 1.65 / (download) - annotate - [select for diffs], Thu May 17 18:41:44 2001 UTC (23 years, 1 month ago) by provos
Branch: MAIN
Changes since 1.64: +8 -4 lines
Diff to previous 1.64 (colored)

convert mbuf and cluster allocation to pool, mostly from NetBSD
okay art@ miod@

Revision 1.64 / (download) - annotate - [select for diffs], Wed May 16 12:49:45 2001 UTC (23 years, 1 month ago) by art
Branch: MAIN
Changes since 1.63: +6 -1 lines
Diff to previous 1.63 (colored)

Use pool to allocate struct filedesc0 and struct file.

Revision 1.46.2.4 / (download) - annotate - [select for diffs], Mon May 14 22:32:39 2001 UTC (23 years, 1 month ago) by niklas
Branch: SMP
Changes since 1.46.2.3: +51 -16 lines
Diff to previous 1.46.2.3 (colored) to branchpoint 1.46 (colored)

merge in approximately 2.9 into SMP branch

Revision 1.63 / (download) - annotate - [select for diffs], Sat May 5 22:34:32 2001 UTC (23 years, 1 month ago) by art
Branch: MAIN
Changes since 1.62: +2 -1 lines
Diff to previous 1.62 (colored)

Rename configure() to cpu_configure().
Move it from cpu_startup() to main().

Revision 1.62 / (download) - annotate - [select for diffs], Fri Apr 6 23:41:02 2001 UTC (23 years, 2 months ago) by art
Branch: MAIN
CVS Tags: OPENBSD_2_9_BASE, OPENBSD_2_9
Changes since 1.61: +2 -3 lines
Diff to previous 1.61 (colored)

Get rid of vm_pmap from struct vmspace.

Revision 1.61 / (download) - annotate - [select for diffs], Mon Apr 2 21:43:11 2001 UTC (23 years, 2 months ago) by niklas
Branch: MAIN
Changes since 1.60: +7 -5 lines
Diff to previous 1.60 (colored)

On popular demand, the Linux-compatibility clone(2) implementation based
on NetBSD's code, as well as some faked Posix RT extensions by me.  This makes
at least simple linuxthreads tests work.

Revision 1.60 / (download) - annotate - [select for diffs], Fri Mar 16 15:49:05 2001 UTC (23 years, 3 months ago) by art
Branch: MAIN
Changes since 1.59: +2 -2 lines
Diff to previous 1.59 (colored)

Use CIRCLEQ macros for mountlist.

Revision 1.59 / (download) - annotate - [select for diffs], Fri Mar 16 08:49:09 2001 UTC (23 years, 3 months ago) by art
Branch: MAIN
Changes since 1.58: +4 -1 lines
Diff to previous 1.58 (colored)

Use a lockmgr lock for keeping down the vslocked memory in sysctl
instead of a home-brew equivalent.

Revision 1.58 / (download) - annotate - [select for diffs], Mon Feb 5 21:28:06 2001 UTC (23 years, 4 months ago) by mickey
Branch: MAIN
Changes since 1.57: +3 -2 lines
Diff to previous 1.57 (colored)

only attach pseudo-device if it's counter is above zero; deraadt@, maja@ ok

Revision 1.57 / (download) - annotate - [select for diffs], Mon Jan 1 16:06:12 2001 UTC (23 years, 5 months ago) by aaron
Branch: MAIN
Changes since 1.56: +2 -2 lines
Diff to previous 1.56 (colored)

2001

Revision 1.56 / (download) - annotate - [select for diffs], Wed Nov 8 05:41:04 2000 UTC (23 years, 7 months ago) by art
Branch: MAIN
Changes since 1.55: +6 -2 lines
Diff to previous 1.55 (colored)

If MD code has defined curproc, don't do it here.
This is not a perfect solution.

Revision 1.55 / (download) - annotate - [select for diffs], Sun Jun 18 03:07:48 2000 UTC (23 years, 11 months ago) by angelos
Branch: MAIN
CVS Tags: OPENBSD_2_8_BASE, OPENBSD_2_8
Changes since 1.54: +18 -1 lines
Diff to previous 1.54 (colored)

Process ID 5 is now the crypto kernel thread.

Revision 1.54 / (download) - annotate - [select for diffs], Fri Jun 16 21:47:14 2000 UTC (24 years ago) by provos
Branch: MAIN
Changes since 1.53: +1 -5 lines
Diff to previous 1.53 (colored)

take MIN/MAX from param.h, okay theo@

Revision 1.53 / (download) - annotate - [select for diffs], Mon Jun 5 11:02:50 2000 UTC (24 years ago) by art
Branch: MAIN
Changes since 1.52: +15 -2 lines
Diff to previous 1.52 (colored)

Changes to exit handling.

cpu_exit no longer frees the vmspace and u-area. This is now handled by a
separate kernel thread "reaper". This is to avoid sleeping locks in the
critical path of cpu_exit where we're not allowed to sleep.

From NetBSD

Revision 1.46.2.3 / (download) - annotate - [select for diffs], Fri Mar 24 09:09:23 2000 UTC (24 years, 2 months ago) by niklas
Branch: SMP
Changes since 1.46.2.2: +37 -8 lines
Diff to previous 1.46.2.2 (colored) to branchpoint 1.46 (colored)

Sync with -current

Revision 1.52 / (download) - annotate - [select for diffs], Thu Mar 23 16:54:44 2000 UTC (24 years, 2 months ago) by art
Branch: MAIN
CVS Tags: OPENBSD_2_7_BASE, OPENBSD_2_7
Changes since 1.51: +7 -1 lines
Diff to previous 1.51 (colored)

Don't reinitialize the tsleep and ITIMER_REAL timers all the time.
The function and the argument never change.

Revision 1.51 / (download) - annotate - [select for diffs], Thu Mar 23 10:13:58 2000 UTC (24 years, 2 months ago) by art
Branch: MAIN
Changes since 1.50: +4 -6 lines
Diff to previous 1.50 (colored)

Adapt roundrobin and schedcpu to the new timeout API.

Revision 1.50 / (download) - annotate - [select for diffs], Wed Mar 22 21:35:37 2000 UTC (24 years, 2 months ago) by mickey
Branch: MAIN
Changes since 1.49: +20 -4 lines
Diff to previous 1.49 (colored)

some more machine_stack_grows_up

Revision 1.49 / (download) - annotate - [select for diffs], Mon Mar 20 15:29:53 2000 UTC (24 years, 2 months ago) by deraadt
Branch: MAIN
Changes since 1.48: +2 -1 lines
Diff to previous 1.48 (colored)

bring proto into scope

Revision 1.48 / (download) - annotate - [select for diffs], Fri Mar 17 10:25:21 2000 UTC (24 years, 3 months ago) by angelos
Branch: MAIN
Changes since 1.47: +9 -1 lines
Diff to previous 1.47 (colored)

Cryptographic services framework, and software "device driver". The
idea is to support various cryptographic hardware accelerators (which
may be (detachable) cards, secondary/tertiary/etc processors,
software crypto, etc). Supports session migration between crypto
devices. What it doesn't (yet) support:
 - multiple instances of the same algorithm used in the same session
 - use of multiple crypto drivers in the same session
 - asymmetric crypto

No support for a userland device yet.

IPsec code path modified to allow for asynchronous cryptography
(callbacks used in both input and output processing). Some unrelated
code simplification done in the process (especially for AH).

Development of this code kindly supported by Network Security
Technologies (NSTI). The code was writen mostly in Greece, and is
being committed from Montreal.

Revision 1.46.2.2 / (download) - annotate - [select for diffs], Thu Mar 2 07:04:40 2000 UTC (24 years, 3 months ago) by niklas
Branch: SMP
Changes since 1.46.2.1: +3 -1 lines
Diff to previous 1.46.2.1 (colored) to branchpoint 1.46 (colored)

Sync with -current

Revision 1.47 / (download) - annotate - [select for diffs], Mon Feb 28 18:04:08 2000 UTC (24 years, 3 months ago) by provos
Branch: MAIN
Changes since 1.46: +3 -1 lines
Diff to previous 1.46 (colored)

Optimized fdalloc as in Banga and Mogul paper:
http://www.usenix.org/publications/library/proceedings/usenix98/banga.html

Revision 1.46.2.1 / (download) - annotate - [select for diffs], Sun Feb 20 11:57:17 2000 UTC (24 years, 3 months ago) by niklas
Branch: SMP
Changes since 1.46: +2 -1 lines
Diff to previous 1.46 (colored)

Merge in recent code from the trunk

Revision 1.46 / (download) - annotate - [select for diffs], Mon Jan 31 19:57:18 2000 UTC (24 years, 4 months ago) by deraadt
Branch: MAIN
CVS Tags: SMP_BASE
Branch point for: SMP
Changes since 1.45: +2 -2 lines
Diff to previous 1.45 (colored)

re-add fixed vfork code from art

Revision 1.45 / (download) - annotate - [select for diffs], Mon Jan 31 01:09:10 2000 UTC (24 years, 4 months ago) by deraadt
Branch: MAIN
Changes since 1.44: +1 -1 lines
Diff to previous 1.44 (colored)

undo vfork changes, since non-UVM was not considered

Revision 1.44 / (download) - annotate - [select for diffs], Fri Jan 28 19:45:04 2000 UTC (24 years, 4 months ago) by art
Branch: MAIN
Changes since 1.43: +2 -2 lines
Diff to previous 1.43 (colored)

Change fork1() from taking forktype and rforkflags, into a single flags
argument. Let sys_rfork build the arguments to fork1() and do the
sanity checks itself.

Revision 1.43 / (download) - annotate - [select for diffs], Sat Jan 1 19:27:18 2000 UTC (24 years, 5 months ago) by deraadt
Branch: MAIN
Changes since 1.42: +2 -2 lines
Diff to previous 1.42 (colored)

2000

Revision 1.42 / (download) - annotate - [select for diffs], Fri Nov 5 01:18:01 1999 UTC (24 years, 7 months ago) by mickey
Branch: MAIN
CVS Tags: kame_19991208
Changes since 1.41: +9 -1 lines
Diff to previous 1.41 (colored)

more stack direction fixes; art@ ok

Revision 1.41 / (download) - annotate - [select for diffs], Sun Sep 12 19:44:04 1999 UTC (24 years, 9 months ago) by weingart
Branch: MAIN
CVS Tags: OPENBSD_2_6_BASE, OPENBSD_2_6
Changes since 1.40: +5 -11 lines
Diff to previous 1.40 (colored)

Fix rootdev handling, use disk checksums to find the device we were booted
from.  Hopefully this will fix all the hangs/panics where the root device
was not found.

Revision 1.40 / (download) - annotate - [select for diffs], Tue Aug 17 10:32:18 1999 UTC (24 years, 10 months ago) by niklas
Branch: MAIN
Changes since 1.39: +2 -2 lines
Diff to previous 1.39 (colored)

New cpu_fork API to take a stack in which you point the child's stackpointer
to, at the bottom or the top, depending on your architecture's stack growth
direction.  This is in preparation for Linux' clone(2) emulation.
port maintainers, please check that I did the work right.

Revision 1.39 / (download) - annotate - [select for diffs], Thu Jul 15 14:07:41 1999 UTC (24 years, 11 months ago) by art
Branch: MAIN
Changes since 1.38: +3 -3 lines
Diff to previous 1.38 (colored)

vm_offset_t -> {v,p}addr_t ; vm_size_t -> {v,p}size_t

Revision 1.38 / (download) - annotate - [select for diffs], Thu Apr 22 19:28:07 1999 UTC (25 years, 1 month ago) by art
Branch: MAIN
Changes since 1.37: +2 -2 lines
Diff to previous 1.37 (colored)

better panic message

Revision 1.37 / (download) - annotate - [select for diffs], Mon Mar 1 04:41:38 1999 UTC (25 years, 3 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_2_5_BASE, OPENBSD_2_5
Changes since 1.36: +5 -5 lines
Diff to previous 1.36 (colored)

re-do how copyright messages are done

Revision 1.36 / (download) - annotate - [select for diffs], Fri Feb 26 04:44:43 1999 UTC (25 years, 3 months ago) by art
Branch: MAIN
Changes since 1.35: +46 -1 lines
Diff to previous 1.35 (colored)

initialize uvm, make allocations work with uvm, namchanges for uvm, etc

Revision 1.35 / (download) - annotate - [select for diffs], Mon Jan 11 01:37:13 1999 UTC (25 years, 5 months ago) by niklas
Branch: MAIN
Changes since 1.34: +16 -43 lines
Diff to previous 1.34 (colored)

kthread abstraction from NetBSD, implemented with our rfork

Revision 1.34 / (download) - annotate - [select for diffs], Sun Jan 10 13:34:17 1999 UTC (25 years, 5 months ago) by niklas
Branch: MAIN
Changes since 1.33: +16 -13 lines
Diff to previous 1.33 (colored)

Generalize cpu_set_kpc to take any kind of arg; mostly from NetBSD

Revision 1.33 / (download) - annotate - [select for diffs], Sat Jan 2 00:38:37 1999 UTC (25 years, 5 months ago) by deraadt
Branch: MAIN
Changes since 1.32: +2 -2 lines
Diff to previous 1.32 (colored)

1999

Revision 1.32 / (download) - annotate - [select for diffs], Wed Sep 16 06:21:08 1998 UTC (25 years, 9 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_2_4_BASE, OPENBSD_2_4
Changes since 1.31: +5 -2 lines
Diff to previous 1.31 (colored)

add openbsd copyright; if you have not talked to me about this already, do so now

Revision 1.31 / (download) - annotate - [select for diffs], Sun Mar 1 00:37:54 1998 UTC (26 years, 3 months ago) by niklas
Branch: MAIN
CVS Tags: OPENBSD_2_3_BASE, OPENBSD_2_3
Changes since 1.30: +4 -1 lines
Diff to previous 1.30 (colored)

Merge of MACHINE_NEW_CONTIG (aka MNN) code from Chuck Cranor,
<chuck@openbsd.org>. This code is as of yet disabled on all platforms,
actually not yet supported on more than mvme68k, although other
platforms are expected soon, as code is already available.
This code makes handling of multiple physical memory regions
consistent over all platforms, as well as keeping the performance of
maintaining a single continuous memory chunk.  It is also a
requirement for the upcoming UVM replacement VM system.

What I did in this merge: just declared the pmap_map function in a
MD include file per port that needs it.  It's not an exported pmap
interface, says Chuck.  It ended up in differnt include files on
differnet ports, as I tried to follow the current policy on a per-arch
basis.

Revision 1.30 / (download) - annotate - [select for diffs], Fri Feb 20 13:41:33 1998 UTC (26 years, 3 months ago) by niklas
Branch: MAIN
Changes since 1.29: +2 -2 lines
Diff to previous 1.29 (colored)

prototype dkcsumattach correctly

Revision 1.29 / (download) - annotate - [select for diffs], Thu Nov 6 05:58:14 1997 UTC (26 years, 7 months ago) by csapuntz
Branch: MAIN
Changes since 1.28: +4 -5 lines
Diff to previous 1.28 (colored)

Updates for VFS Lite 2 + soft update.

Revision 1.28 / (download) - annotate - [select for diffs], Thu Nov 6 02:17:29 1997 UTC (26 years, 7 months ago) by mickey
Branch: MAIN
Changes since 1.27: +4 -1 lines
Diff to previous 1.27 (colored)

mak kernel compiles w/o bios0

Revision 1.27 / (download) - annotate - [select for diffs], Tue Oct 28 10:52:17 1997 UTC (26 years, 7 months ago) by niklas
Branch: MAIN
CVS Tags: OPENBSD_2_2_BASE, OPENBSD_2_2
Changes since 1.26: +9 -1 lines
Diff to previous 1.26 (colored)

dkcsum is *really* mandatory.  XXX will be done differently later.

Revision 1.26 / (download) - annotate - [select for diffs], Mon Oct 6 20:19:49 1997 UTC (26 years, 8 months ago) by deraadt
Branch: MAIN
Changes since 1.25: +4 -3 lines
Diff to previous 1.25 (colored)

back out vfs lite2 till after 2.2

Revision 1.25 / (download) - annotate - [select for diffs], Mon Oct 6 15:12:12 1997 UTC (26 years, 8 months ago) by csapuntz
Branch: MAIN
Changes since 1.24: +4 -5 lines
Diff to previous 1.24 (colored)

VFS Lite2 Changes

Revision 1.24 / (download) - annotate - [select for diffs], Mon Jul 28 09:13:17 1997 UTC (26 years, 10 months ago) by deraadt
Branch: MAIN
Changes since 1.23: +2 -4 lines
Diff to previous 1.23 (colored)

two unneeded variables; enami@ba2.so-net.or.jp

Revision 1.23 / (download) - annotate - [select for diffs], Thu Jun 5 10:15:24 1997 UTC (27 years ago) by deraadt
Branch: MAIN
Changes since 1.22: +2 -1 lines
Diff to previous 1.22 (colored)

random pid generation, heh

Revision 1.22 / (download) - annotate - [select for diffs], Sat Apr 19 18:40:02 1997 UTC (27 years, 1 month ago) by pefo
Branch: MAIN
CVS Tags: OPENBSD_2_1_BASE, OPENBSD_2_1
Changes since 1.21: +2 -2 lines
Diff to previous 1.21 (colored)

Fix return with missin value...

Revision 1.21 / (download) - annotate - [select for diffs], Thu Mar 27 05:35:28 1997 UTC (27 years, 2 months ago) by millert
Branch: MAIN
Changes since 1.20: +8 -1 lines
Diff to previous 1.20 (colored)

Implement NOFILE_MAX--hard limit on max descriptors per proccess.
Future direction, might make sense to make this a kernel symbol tha
is sysctl-able.

Revision 1.20 / (download) - annotate - [select for diffs], Wed Nov 6 01:29:46 1996 UTC (27 years, 7 months ago) by deraadt
Branch: MAIN
Changes since 1.19: +0 -1 lines
Diff to previous 1.19 (colored)

mountroot is prototyped elsewhere

Revision 1.19 / (download) - annotate - [select for diffs], Sat Oct 19 13:26:00 1996 UTC (27 years, 7 months ago) by mickey
Branch: MAIN
Changes since 1.18: +2 -1 lines
Diff to previous 1.18 (colored)

random device is permanent now.

Revision 1.18 / (download) - annotate - [select for diffs], Sat Sep 21 11:06:08 1996 UTC (27 years, 8 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_2_0_BASE, OPENBSD_2_0
Changes since 1.17: +8 -1 lines
Diff to previous 1.17 (colored)

fix NFSSERVER w/o NFSCLIENT; netbsd pr#1780, cgd@netbsd (yes, a 10month
old PR and the fix is mostly unchanged).

Revision 1.17 / (download) - annotate - [select for diffs], Wed Sep 4 22:35:27 1996 UTC (27 years, 9 months ago) by niklas
Branch: MAIN
Changes since 1.16: +9 -8 lines
Diff to previous 1.16 (colored)

more Swedish pedantery, kill statics, provide protos etc

Revision 1.16 / (download) - annotate - [select for diffs], Sat Aug 31 09:24:08 1996 UTC (27 years, 9 months ago) by pefo
Branch: MAIN
Changes since 1.15: +2 -1 lines
Diff to previous 1.15 (colored)

Cleanup exec

Revision 1.15 / (download) - annotate - [select for diffs], Wed Aug 21 09:46:21 1996 UTC (27 years, 9 months ago) by deraadt
Branch: MAIN
Changes since 1.14: +22 -1 lines
Diff to previous 1.14 (colored)

spit out a warning if /dev/console does not exist; from mouse@Collatz.McRCIM.McGill.EDU

Revision 1.14 / (download) - annotate - [select for diffs], Tue Aug 13 03:12:41 1996 UTC (27 years, 10 months ago) by deraadt
Branch: MAIN
Changes since 1.13: +4 -2 lines
Diff to previous 1.13 (colored)

microtime for srandom

Revision 1.13 / (download) - annotate - [select for diffs], Sat Aug 10 21:41:13 1996 UTC (27 years, 10 months ago) by deraadt
Branch: MAIN
Changes since 1.12: +3 -1 lines
Diff to previous 1.12 (colored)

srandom() seeds random() at boottime

Revision 1.12 / (download) - annotate - [select for diffs], Sun Jun 16 10:28:39 1996 UTC (28 years ago) by deraadt
Branch: MAIN
Changes since 1.11: +1 -2 lines
Diff to previous 1.11 (colored)

only call config_init() once

Revision 1.11 / (download) - annotate - [select for diffs], Tue Jun 11 03:25:12 1996 UTC (28 years ago) by tholo
Branch: MAIN
Changes since 1.10: +31 -1 lines
Diff to previous 1.10 (colored)

Kernel-implementation of update(8) my me

Revision 1.10 / (download) - annotate - [select for diffs], Mon Jun 10 07:25:54 1996 UTC (28 years ago) by deraadt
Branch: MAIN
Changes since 1.9: +5 -2 lines
Diff to previous 1.9 (colored)

call tty_init() and config_init()

Revision 1.9 / (download) - annotate - [select for diffs], Mon May 27 07:59:02 1996 UTC (28 years ago) by deraadt
Branch: MAIN
Changes since 1.8: +3 -3 lines
Diff to previous 1.8 (colored)

native emul is now called "native"

Revision 1.8 / (download) - annotate - [select for diffs], Tue May 7 15:23:35 1996 UTC (28 years, 1 month ago) by niklas
Branch: MAIN
Changes since 1.7: +2 -1 lines
Diff to previous 1.7 (colored)

Make sure config_init gets called before consinit, as at least one port
actually uses config_* functions for console attachment.  Document
config_init should not call malloc as the move was over the mem-init
function calls too.

Revision 1.7 / (download) - annotate - [select for diffs], Mon May 6 09:56:20 1996 UTC (28 years, 1 month ago) by niklas
Branch: MAIN
Changes since 1.6: +4 -2 lines
Diff to previous 1.6 (colored)

Return int from main(), so gcc -Werror won't complain.  Rhyme not intended.

Revision 1.6 / (download) - annotate - [select for diffs], Thu May 2 13:12:05 1996 UTC (28 years, 1 month ago) by deraadt
Branch: MAIN
Changes since 1.5: +2 -3 lines
Diff to previous 1.5 (colored)

sync syscalls, no sys/cpu.h

Revision 1.5 / (download) - annotate - [select for diffs], Sun Apr 21 22:26:50 1996 UTC (28 years, 1 month ago) by deraadt
Branch: MAIN
Changes since 1.4: +3 -2 lines
Diff to previous 1.4 (colored)

partial sync with netbsd 960418, more to come

Revision 1.4 / (download) - annotate - [select for diffs], Sun Mar 3 17:19:39 1996 UTC (28 years, 3 months ago) by niklas
Branch: MAIN
Changes since 1.3: +21 -3 lines
Diff to previous 1.3 (colored)

From NetBSD: 960217 merge

Revision 1.3 / (download) - annotate - [select for diffs], Fri Jan 12 20:21:26 1996 UTC (28 years, 5 months ago) by deraadt
Branch: MAIN
Changes since 1.2: +3 -1 lines
Diff to previous 1.2 (colored)

from netbsd;
New generic disk framework.  Highlights:
New metrics handling.  Metrics are now kept in the new `struct disk'.
Busy time is now stored as a timeval, and transfer count in bytes.
Storage for disklabels is now dynamically allocated, so that the size
of the disk structure is not machine-dependent.
Several new functions for attaching and detaching disks, and handling
metrics calculation.
Old-style instrumentation is still supported in drivers that did it
before.  However, old-style instrumentation is being deprecated, and
will go away once the userland utilities are updated for the new
framework.
For usage and architectural details, see the forthcoming disk(9)
manual page.

Revision 1.2 / (download) - annotate - [select for diffs], Thu Dec 14 04:08:44 1995 UTC (28 years, 6 months ago) by deraadt
Branch: MAIN
Changes since 1.1: +11 -13 lines
Diff to previous 1.1 (colored)

from netbsd; init proc0 fd0 differently

Revision 1.1.1.1 / (download) - annotate - [select for diffs] (vendor branch), Wed Oct 18 08:52:43 1995 UTC (28 years, 8 months ago) by deraadt
CVS Tags: netbsd_1_1
Changes since 1.1: +0 -0 lines
Diff to previous 1.1 (colored)

initial import of NetBSD tree

Revision 1.1 / (download) - annotate - [select for diffs], Wed Oct 18 08:52:43 1995 UTC (28 years, 8 months ago) by deraadt
Branch: MAIN

Initial revision

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.