The NetBSD Project

CVS log for src/sys/rump/librump/rumpkern/rump.c

[BACK] Up to [cvs.NetBSD.org] / src / sys / rump / librump / rumpkern

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.361 / (download) - annotate - [select for diffs], Thu Oct 5 19:41:07 2023 UTC (4 months, 3 weeks ago) by ad
Branch: MAIN
CVS Tags: thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation, HEAD
Changes since 1.360: +3 -3 lines
Diff to previous 1.360 (colored)

Arrange to update cached LWP credentials in userret() rather than during
syscall/trap entry, eliminating a test+branch on every syscall/trap.

This wasn't possible in the 3.99.x timeframe when l->l_cred came about
because there wasn't a reliable/timely way to force an ONPROC LWP running on
a remote CPU into the kernel (which is just about the only new thing in
this scheme).

Revision 1.360 / (download) - annotate - [select for diffs], Sat Sep 23 18:21:11 2023 UTC (5 months ago) by ad
Branch: MAIN
Changes since 1.359: +2 -4 lines
Diff to previous 1.359 (colored)

Repply this change with a couple of bugs fixed:

- Do away with separate pool_cache for some kernel objects that have no special
  requirements and use the general purpose allocator instead. On one of my
  test systems this makes for a small (~1%) but repeatable reduction in system
  time during builds presumably because it decreases the kernel's cache /
  memory bandwidth footprint a little.
- vfs_lockf: cache a pointer to the uidinfo and put mutex in the data segment.

Revision 1.359 / (download) - annotate - [select for diffs], Tue Sep 12 16:17:21 2023 UTC (5 months, 2 weeks ago) by ad
Branch: MAIN
Changes since 1.358: +4 -2 lines
Diff to previous 1.358 (colored)

Back out recent change to replace pool_cache with then general allocator.
Will return to this when I have time again.

Revision 1.358 / (download) - annotate - [select for diffs], Sun Sep 10 14:45:52 2023 UTC (5 months, 2 weeks ago) by ad
Branch: MAIN
Changes since 1.357: +2 -4 lines
Diff to previous 1.357 (colored)

- Do away with separate pool_cache for some kernel objects that have no special
  requirements and use the general purpose allocator instead.  On one of my
  test systems this makes for a small (~1%) but repeatable reduction in system
  time during builds presumably because it decreases the kernel's cache /
  memory bandwidth footprint a little.
- vfs_lockf: cache a pointer to the uidinfo and put mutex in the data segment.

Revision 1.357 / (download) - annotate - [select for diffs], Sat Aug 5 11:51:47 2023 UTC (6 months, 3 weeks ago) by riastradh
Branch: MAIN
Changes since 1.356: +7 -7 lines
Diff to previous 1.356 (colored)

Revert "rump: Set mp_online = true and start threads _after_ cold = 0."

This breaks some tests, e.g. dev/scsipi/t_cd:noisyeject, which relies
on config_finalize to wait for driver threads.  Trouble is, the
actual setting of cold=0 happens near the call to config_finalize in
RUMP__FACTION_DEV.  Need to think harder about this.

Revision 1.356 / (download) - annotate - [select for diffs], Sat Aug 5 08:05:57 2023 UTC (6 months, 3 weeks ago) by riastradh
Branch: MAIN
Changes since 1.355: +7 -7 lines
Diff to previous 1.355 (colored)

rump: Set mp_online = true and start threads _after_ cold = 0.

Otherwise we may have threads running while cold, which is a
contradiction in terms.

Deferring mp_online = true is necessary because things like xcall(9)
use rely on it to decide whether to wait for threads on other CPUs.

Revision 1.355 / (download) - annotate - [select for diffs], Mon Mar 28 20:49:32 2022 UTC (23 months ago) by christos
Branch: MAIN
CVS Tags: netbsd-10-base, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1, netbsd-10, bouyer-sunxi-drm-base, bouyer-sunxi-drm
Changes since 1.354: +2 -4 lines
Diff to previous 1.354 (colored)

no need to include suser; it gets autoloaded as a module.

Revision 1.354 / (download) - annotate - [select for diffs], Mon Mar 28 12:38:59 2022 UTC (23 months ago) by riastradh
Branch: MAIN
Changes since 1.353: +3 -2 lines
Diff to previous 1.353 (colored)

sys: Split struct device into a private device_impl.h.

Include this only inside autoconf itself, and a few files that abuse
autoconf in ways I can't confidently make easy fixes for.

XXX kernel ABI change requires bump -- no more use of struct device
internals allowed, previously done by some drivers

Revision 1.349.2.2 / (download) - annotate - [select for diffs], Sat Apr 3 22:29:02 2021 UTC (2 years, 10 months ago) by thorpej
Branch: thorpej-futex
Changes since 1.349.2.1: +12 -4 lines
Diff to previous 1.349.2.1 (colored) next main 1.350 (colored)

Sync with HEAD.

Revision 1.353 / (download) - annotate - [select for diffs], Sun Jan 17 22:32:25 2021 UTC (3 years, 1 month ago) by chs
Branch: MAIN
CVS Tags: thorpej-i2c-spi-conf2-base, thorpej-i2c-spi-conf2, thorpej-i2c-spi-conf-base, thorpej-i2c-spi-conf, thorpej-futex2-base, thorpej-futex2, thorpej-futex-base, thorpej-cfargs2-base, thorpej-cfargs2, thorpej-cfargs-base, thorpej-cfargs, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x
Changes since 1.352: +12 -4 lines
Diff to previous 1.352 (colored)

rump_component_init() is called recursively, so LIST_FOREACH_SAFE is not
actually safe, since the recursive calls can result in elements other than
the current element being removed from the list.  instead use an explicit
marker element to do safe list traversal.

Revision 1.352 / (download) - annotate - [select for diffs], Sat Jan 16 23:50:49 2021 UTC (3 years, 1 month ago) by chs
Branch: MAIN
Changes since 1.351: +3 -3 lines
Diff to previous 1.351 (colored)

remove a const to allow building with QUEUEDEBUG.

Revision 1.349.2.1 / (download) - annotate - [select for diffs], Mon Dec 14 14:38:16 2020 UTC (3 years, 2 months ago) by thorpej
Branch: thorpej-futex
Changes since 1.349: +23 -11 lines
Diff to previous 1.349 (colored)

Sync w/ HEAD.

Revision 1.351 / (download) - annotate - [select for diffs], Sun Dec 6 09:03:29 2020 UTC (3 years, 2 months ago) by skrll
Branch: MAIN
Changes since 1.350: +2 -3 lines
Diff to previous 1.350 (colored)

Fix build after interval timers refectoring by thorpej@

Revision 1.350 / (download) - annotate - [select for diffs], Wed Nov 4 22:06:39 2020 UTC (3 years, 3 months ago) by christos
Branch: MAIN
Changes since 1.349: +23 -10 lines
Diff to previous 1.349 (colored)

PR/55781: Ruslan Nikolaev: rump_init() does differentiate when all CPUs are
initialized

Revision 1.349 / (download) - annotate - [select for diffs], Thu Jun 11 00:33:30 2020 UTC (3 years, 8 months ago) by kamil
Branch: MAIN
Branch point for: thorpej-futex
Changes since 1.348: +5 -3 lines
Diff to previous 1.348 (colored)

Follow the syscall() logic and mask unsupported syscall ranges in rump

Avoids invalid pointer dereference from too large syscall numbers.

Revision 1.348 / (download) - annotate - [select for diffs], Sat May 23 23:42:44 2020 UTC (3 years, 9 months ago) by ad
Branch: MAIN
Changes since 1.347: +4 -4 lines
Diff to previous 1.347 (colored)

Move proc_lock into the data segment.  It was dynamically allocated because
at the time we had mutex_obj_alloc() but not __cacheline_aligned.

Revision 1.347 / (download) - annotate - [select for diffs], Thu Apr 30 03:28:19 2020 UTC (3 years, 10 months ago) by riastradh
Branch: MAIN
Changes since 1.346: +3 -6 lines
Diff to previous 1.346 (colored)

Rewrite entropy subsystem.

Primary goals:

1. Use cryptography primitives designed and vetted by cryptographers.
2. Be honest about entropy estimation.
3. Propagate full entropy as soon as possible.
4. Simplify the APIs.
5. Reduce overhead of rnd_add_data and cprng_strong.
6. Reduce side channels of HWRNG data and human input sources.
7. Improve visibility of operation with sysctl and event counters.

Caveat: rngtest is no longer used generically for RND_TYPE_RNG
rndsources.  Hardware RNG devices should have hardware-specific
health tests.  For example, checking for two repeated 256-bit outputs
works to detect AMD's 2019 RDRAND bug.  Not all hardware RNGs are
necessarily designed to produce exactly uniform output.

ENTROPY POOL

- A Keccak sponge, with test vectors, replaces the old LFSR/SHA-1
  kludge as the cryptographic primitive.

- `Entropy depletion' is available for testing purposes with a sysctl
  knob kern.entropy.depletion; otherwise it is disabled, and once the
  system reaches full entropy it is assumed to stay there as far as
  modern cryptography is concerned.

- No `entropy estimation' based on sample values.  Such `entropy
  estimation' is a contradiction in terms, dishonest to users, and a
  potential source of side channels.  It is the responsibility of the
  driver author to study the entropy of the process that generates
  the samples.

- Per-CPU gathering pools avoid contention on a global queue.

- Entropy is occasionally consolidated into global pool -- as soon as
  it's ready, if we've never reached full entropy, and with a rate
  limit afterward.  Operators can force consolidation now by running
  sysctl -w kern.entropy.consolidate=1.

- rndsink(9) API has been replaced by an epoch counter which changes
  whenever entropy is consolidated into the global pool.
  . Usage: Cache entropy_epoch() when you seed.  If entropy_epoch()
    has changed when you're about to use whatever you seeded, reseed.
  . Epoch is never zero, so initialize cache to 0 if you want to reseed
    on first use.
  . Epoch is -1 iff we have never reached full entropy -- in other
    words, the old rnd_initial_entropy is (entropy_epoch() != -1) --
    but it is better if you check for changes rather than for -1, so
    that if the system estimated its own entropy incorrectly, entropy
    consolidation has the opportunity to prevent future compromise.

- Sysctls and event counters provide operator visibility into what's
  happening:
  . kern.entropy.needed - bits of entropy short of full entropy
  . kern.entropy.pending - bits known to be pending in per-CPU pools,
    can be consolidated with sysctl -w kern.entropy.consolidate=1
  . kern.entropy.epoch - number of times consolidation has happened,
    never 0, and -1 iff we have never reached full entropy

CPRNG_STRONG

- A cprng_strong instance is now a collection of per-CPU NIST
  Hash_DRBGs.  There are only two in the system: user_cprng for
  /dev/urandom and sysctl kern.?random, and kern_cprng for kernel
  users which may need to operate in interrupt context up to IPL_VM.

  (Calling cprng_strong in interrupt context does not strike me as a
  particularly good idea, so I added an event counter to see whether
  anything actually does.)

- Event counters provide operator visibility into when reseeding
  happens.

INTEL RDRAND/RDSEED, VIA C3 RNG (CPU_RNG)

- Unwired for now; will be rewired in a subsequent commit.

Revision 1.346 / (download) - annotate - [select for diffs], Sat Apr 25 15:42:15 2020 UTC (3 years, 10 months ago) by bouyer
Branch: MAIN
Changes since 1.345: +2 -2 lines
Diff to previous 1.345 (colored)

Merge the bouyer-xenpvh branch, bringing in Xen PV drivers support under HVM
guests in GENERIC.
Xen support can be disabled at runtime with
boot -c
disable hypervisor

Revision 1.344.2.1 / (download) - annotate - [select for diffs], Sat Apr 25 11:24:07 2020 UTC (3 years, 10 months ago) by bouyer
Branch: bouyer-xenpvh
Changes since 1.344: +3 -3 lines
Diff to previous 1.344 (colored) next main 1.345 (colored)

Sync with bouyer-xenpvh-base2 (HEAD)

Revision 1.345 / (download) - annotate - [select for diffs], Thu Apr 23 00:34:29 2020 UTC (3 years, 10 months ago) by joerg
Branch: MAIN
CVS Tags: bouyer-xenpvh-base2
Changes since 1.344: +3 -3 lines
Diff to previous 1.344 (colored)

rump doesn't own pnbuf_cache, externalize it

Revision 1.331.4.3 / (download) - annotate - [select for diffs], Mon Apr 13 08:05:19 2020 UTC (3 years, 10 months ago) by martin
Branch: phil-wifi
Changes since 1.331.4.2: +1 -1 lines
Diff to previous 1.331.4.2 (colored) to branchpoint 1.331 (colored) next main 1.332 (colored)

Mostly merge changes from HEAD upto 20200411

Revision 1.331.4.2 / (download) - annotate - [select for diffs], Wed Apr 8 14:09:01 2020 UTC (3 years, 10 months ago) by martin
Branch: phil-wifi
Changes since 1.331.4.1: +23 -28 lines
Diff to previous 1.331.4.1 (colored) to branchpoint 1.331 (colored)

Merge changes from current as of 20200406

Revision 1.344 / (download) - annotate - [select for diffs], Mon Mar 23 14:49:50 2020 UTC (3 years, 11 months ago) by pgoyette
Branch: MAIN
CVS Tags: phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, bouyer-xenpvh-base1, bouyer-xenpvh-base
Branch point for: bouyer-xenpvh
Changes since 1.343: +3 -5 lines
Diff to previous 1.343 (colored)

Don't attempt to detach an evcnt before attaching it.  If its not
already attached, we will panic.

It turns out that this check wasn't really needed anyway, it was
simply paranoia on my part.

Thanks to hannken@ for bringing this to my attention.

Revision 1.343 / (download) - annotate - [select for diffs], Sun Mar 22 13:30:10 2020 UTC (3 years, 11 months ago) by pgoyette
Branch: MAIN
Changes since 1.342: +16 -3 lines
Diff to previous 1.342 (colored)

Teach rump to process __link_set_evcnts entries.  (Second part of
fix for PR kern/55088)

Revision 1.339.2.1 / (download) - annotate - [select for diffs], Sat Feb 29 20:21:09 2020 UTC (4 years ago) by ad
Branch: ad-namecache
Changes since 1.339: +4 -18 lines
Diff to previous 1.339 (colored) next main 1.340 (colored)

Sync with head.

Revision 1.342 / (download) - annotate - [select for diffs], Sat Feb 22 21:45:34 2020 UTC (4 years ago) by ad
Branch: MAIN
CVS Tags: is-mlppp-base, is-mlppp, ad-namecache-base3
Changes since 1.341: +3 -2 lines
Diff to previous 1.341 (colored)

rump_init(): need to call config_init() now.

PR kern/55004 (Hundreds of file system tests now fail on real hardware)

Revision 1.341 / (download) - annotate - [select for diffs], Tue Feb 18 20:23:17 2020 UTC (4 years ago) by chs
Branch: MAIN
Changes since 1.340: +2 -18 lines
Diff to previous 1.340 (colored)

remove the aiodoned thread.  I originally added this to provide a thread context
for doing page cache iodone work, but since then biodone() has changed to
hand off all iodone work to a softint thread, so we no longer need the
special-purpose aiodoned thread.

Revision 1.340 / (download) - annotate - [select for diffs], Mon Feb 10 03:23:29 2020 UTC (4 years ago) by riastradh
Branch: MAIN
Changes since 1.339: +3 -2 lines
Diff to previous 1.339 (colored)

Initialize struct cpu_info::ci_cpuname (= ci_data.cpu_name) in rump.

Revision 1.339 / (download) - annotate - [select for diffs], Thu Jan 2 15:42:27 2020 UTC (4 years, 1 month ago) by thorpej
Branch: MAIN
CVS Tags: ad-namecache-base2, ad-namecache-base1, ad-namecache-base
Branch point for: ad-namecache
Changes since 1.338: +6 -7 lines
Diff to previous 1.338 (colored)

- Eliminate the global "boottime" variable, which was being accessed
  without any synchronization against changes by e.g. clock_settime().
- Replace with new getbinboottime() / getnanoboottime() / getmicroboottime()
  functions (naming mirrors that of other time access functions in kern_tc.c).
  It returns the (maybe-converted) value of timebasebin, which also tracks
  our estimate of when the system was booted (i.e. the legacy "boottime" was
  redundant).

XXX There needs to be a lockless synchronization mechanism for reading
timebasebin, but this is a problem in kern_tc.c that pre-existed these
"boottime" changes.  At least now the problem is centralized in one location.

Revision 1.338 / (download) - annotate - [select for diffs], Sun Dec 15 14:21:34 2019 UTC (4 years, 2 months ago) by pgoyette
Branch: MAIN
Changes since 1.337: +4 -2 lines
Diff to previous 1.337 (colored)

Initialize the module_hook synchronization variables in rump, too.

Fixes recently reported test failures for dev/sysmon/t_swsensor
and net/if_vlan/t_vlan

Revision 1.337 / (download) - annotate - [select for diffs], Sat Dec 7 14:55:58 2019 UTC (4 years, 2 months ago) by riastradh
Branch: MAIN
Changes since 1.336: +4 -2 lines
Diff to previous 1.336 (colored)

Restore call to pserialize_init.

We need it after all for psz_lock on the event counter.

Revision 1.336 / (download) - annotate - [select for diffs], Tue Dec 3 05:07:49 2019 UTC (4 years, 2 months ago) by riastradh
Branch: MAIN
Changes since 1.335: +2 -7 lines
Diff to previous 1.335 (colored)

Rip out pserialize(9) logic now that the RCU patent has expired.

pserialize_perform() is now basically just xc_barrier(XC_HIGHPRI).
No more tentacles throughout the scheduler.  Simplify the psz read
count for diagnostic assertions by putting it unconditionally into
cpu_info.

From rmind@, tidied up by me.

Revision 1.335 / (download) - annotate - [select for diffs], Tue Oct 15 18:36:38 2019 UTC (4 years, 4 months ago) by christos
Branch: MAIN
CVS Tags: phil-wifi-20191119
Changes since 1.334: +3 -3 lines
Diff to previous 1.334 (colored)

Add a function cast for enosys

Revision 1.331.4.1 / (download) - annotate - [select for diffs], Mon Jun 10 22:09:53 2019 UTC (4 years, 8 months ago) by christos
Branch: phil-wifi
Changes since 1.331: +11 -2 lines
Diff to previous 1.331 (colored)

Sync with HEAD

Revision 1.334 / (download) - annotate - [select for diffs], Fri May 17 03:34:26 2019 UTC (4 years, 9 months ago) by ozaki-r
Branch: MAIN
CVS Tags: phil-wifi-20190609, netbsd-9-base, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, netbsd-9
Changes since 1.333: +6 -2 lines
Diff to previous 1.333 (colored)

Implement an aggressive psref leak detector

It is yet another psref leak detector that enables to tell where a leak occurs
while a simpler version that is already committed just tells an occurrence of a
leak.

Investigating of psref leaks is hard because once a leak occurs a percpu list of
psref that tracks references can be corrupted.  A reference to a tracking object
is memorized in the list via an intermediate object (struct psref) that is
normally allocated on a stack of a thread.  Thus, the intermediate object can be
overwritten on a leak resulting in corruption of the list.

The tracker makes a shadow entry to an intermediate object and stores some hints
into it (currently it's a caller address of psref_acquire).  We can detect a
leak by checking the entries on certain points where any references should be
released such as the return point of syscalls and the end of each softint
handler.

The feature is expensive and enabled only if the kernel is built with
PSREF_DEBUG.

Proposed on tech-kern

Revision 1.333 / (download) - annotate - [select for diffs], Fri Mar 29 02:09:14 2019 UTC (4 years, 11 months ago) by christos
Branch: MAIN
CVS Tags: isaki-audio2-base, isaki-audio2
Changes since 1.332: +4 -2 lines
Diff to previous 1.332 (colored)

fix the build (pnbuf_cache move to vfs_init.c)

Revision 1.331.2.1 / (download) - annotate - [select for diffs], Fri Jan 18 08:50:58 2019 UTC (5 years, 1 month ago) by pgoyette
Branch: pgoyette-compat
CVS Tags: pgoyette-compat-merge-20190127
Changes since 1.331: +5 -2 lines
Diff to previous 1.331 (colored) next main 1.332 (colored)

Synch with HEAD

Revision 1.332 / (download) - annotate - [select for diffs], Wed Dec 26 22:16:27 2018 UTC (5 years, 2 months ago) by thorpej
Branch: MAIN
CVS Tags: pgoyette-compat-20190127, pgoyette-compat-20190118
Changes since 1.331: +5 -2 lines
Diff to previous 1.331 (colored)

Rather than performing lazy initialization, statically initialize early
in the respective kernel startup routines.

Revision 1.329.10.2 / (download) - annotate - [select for diffs], Mon Jan 22 12:30:20 2018 UTC (6 years, 1 month ago) by martin
Branch: netbsd-8
CVS Tags: netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1
Changes since 1.329.10.1: +4 -2 lines
Diff to previous 1.329.10.1 (colored) to branchpoint 1.329 (colored) next main 1.330 (colored)

Pull up following revision(s) (requested by jdolecek in ticket #506):
	sys/kern/kern_softint.c: revision 1.45
	sys/rump/librump/rumpkern/rump.c: revision 1.331
	sys/kern/subr_pserialize.c: revision 1.10
	sys/kern/subr_psref.c: revision 1.10
Prevent panic or hangup in softint_disestablish(), pserialize_perform() or
psref_target_destroy() while mp_online == false.
 See http://mail-index.netbsd.org/tech-kern/2017/12/25/msg022829.html
Set mp_online = true. This change might fix PR#52886.

Revision 1.331 / (download) - annotate - [select for diffs], Tue Jan 9 04:55:43 2018 UTC (6 years, 1 month ago) by msaitoh
Branch: MAIN
CVS Tags: phil-wifi-base, pgoyette-compat-base, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315
Branch point for: phil-wifi, pgoyette-compat
Changes since 1.330: +4 -2 lines
Diff to previous 1.330 (colored)

 Set mp_online = ture. I don't know the "best" location to set it true.
This change might fix PR#52886.

Revision 1.246.2.5 / (download) - annotate - [select for diffs], Sun Dec 3 11:39:16 2017 UTC (6 years, 2 months ago) by jdolecek
Branch: tls-maxphys
Changes since 1.246.2.4: +96 -196 lines
Diff to previous 1.246.2.4 (colored) next main 1.247 (colored)

update from HEAD

Revision 1.329.10.1 / (download) - annotate - [select for diffs], Thu Nov 30 14:40:46 2017 UTC (6 years, 3 months ago) by martin
Branch: netbsd-8
Changes since 1.329: +3 -3 lines
Diff to previous 1.329 (colored)

Pull up following revision(s) (requested by ozaki-r in ticket #405):
	sys/sys/pserialize.h: revision 1.2
	sys/kern/kern_lock.c: revision 1.160
	sys/kern/subr_pserialize.c: revision 1.9
	sys/rump/librump/rumpkern/emul.c: revision 1.184
	sys/rump/librump/rumpkern/emul.c: revision 1.185
	sys/rump/librump/rumpkern/rump.c: revision 1.330
Implement debugging feature for pserialize(9)
The debugging feature detects violations of pserialize constraints.
It causes a panic:
- if a context switch happens in a read section, or
- if a sleepable function is called in a read section.
The feature is enabled only if LOCKDEBUG is on.
Discussed on tech-kern@
Add missing inclusion of pserialize.h (fix build)

Revision 1.330 / (download) - annotate - [select for diffs], Tue Nov 21 08:49:14 2017 UTC (6 years, 3 months ago) by ozaki-r
Branch: MAIN
CVS Tags: tls-maxphys-base-20171202
Changes since 1.329: +3 -3 lines
Diff to previous 1.329 (colored)

Implement debugging feature for pserialize(9)

The debugging feature detects violations of pserialize constraints.
It causes a panic:
- if a context switch happens in a read section, or
- if a sleepable function is called in a read section.

The feature is enabled only if LOCKDEBUG is on.

Discussed on tech-kern@

Revision 1.329.8.1 / (download) - annotate - [select for diffs], Thu Apr 27 05:36:38 2017 UTC (6 years, 10 months ago) by pgoyette
Branch: prg-localcount2
Changes since 1.329: +3 -2 lines
Diff to previous 1.329 (colored) next main 1.330 (colored)

Restore all work from the former pgoyette-localcount branch (which is
now abandoned doe to cvs merge botch).

The branch now builds, and installs via anita.  There are still some
problems (cgd is non-functional and all atf tests time-out) but they
will get resolved soon.

Revision 1.329.2.1 / (download) - annotate - [select for diffs], Mon Jul 18 06:58:44 2016 UTC (7 years, 7 months ago) by pgoyette
Branch: pgoyette-localcount
Changes since 1.329: +3 -2 lines
Diff to previous 1.329 (colored) next main 1.330 (colored)

We also need to init devsw's pserialize stuff when running as rump.

XXX Noted that in rump, pserialize is initialized much sooner than devsw,
XXX while in "real" kernels, pserialize comes _after_ devsw.  Hmmm.

Revision 1.308.2.4 / (download) - annotate - [select for diffs], Mon May 9 19:40:44 2016 UTC (7 years, 9 months ago) by snj
Branch: netbsd-7
CVS Tags: netbsd-7-nhusb-base-20170116, netbsd-7-nhusb-base, netbsd-7-nhusb, netbsd-7-2-RELEASE, netbsd-7-1-RELEASE, netbsd-7-1-RC2, netbsd-7-1-RC1, netbsd-7-1-2-RELEASE, netbsd-7-1-1-RELEASE, netbsd-7-1
Changes since 1.308.2.3: +4 -3 lines
Diff to previous 1.308.2.3 (colored) to branchpoint 1.308 (colored) next main 1.309 (colored)

Pull up following revision(s) (requested by joerg in ticket #1162):
	sys/rump/librump/rumpkern/rump.c: revision 1.329
Align the message buffer. The kernel routines normally are used only
with page aligned buffers and they assume at least pointer alignment. Be
defensive here and align to 256 Bytes.

Revision 1.312.2.4 / (download) - annotate - [select for diffs], Sat Mar 19 11:30:37 2016 UTC (7 years, 11 months ago) by skrll
Branch: nick-nhusb
Changes since 1.312.2.3: +30 -10 lines
Diff to previous 1.312.2.3 (colored) to branchpoint 1.312 (colored) next main 1.313 (colored)

Sync with HEAD

Revision 1.329 / (download) - annotate - [select for diffs], Tue Mar 8 14:30:48 2016 UTC (7 years, 11 months ago) by joerg
Branch: MAIN
CVS Tags: prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, pgoyette-localcount-base, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, perseant-stdc-iso10646-base, perseant-stdc-iso10646, nick-nhusb-base-20170825, nick-nhusb-base-20170204, nick-nhusb-base-20161204, nick-nhusb-base-20161004, nick-nhusb-base-20160907, nick-nhusb-base-20160529, nick-nhusb-base-20160422, nick-nhusb-base-20160319, netbsd-8-base, matt-nb8-mediatek-base, matt-nb8-mediatek, localcount-20160914, jdolecek-ncq-base, jdolecek-ncq, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan
Branch point for: prg-localcount2, pgoyette-localcount, netbsd-8
Changes since 1.328: +4 -3 lines
Diff to previous 1.328 (colored)

Align the message buffer. The kernel routines normally are used only
with page aligned buffers and they assume at least pointer alignment. Be
defensive here and align to 256 Bytes.

Revision 1.328 / (download) - annotate - [select for diffs], Mon Feb 8 18:18:19 2016 UTC (8 years ago) by pooka
Branch: MAIN
Changes since 1.327: +3 -3 lines
Diff to previous 1.327 (colored)

Allocate struct cpu_info dynamically.  Saves quite a lot of BSS in the
common case and reduces rump kernel memory requirements by 10% or more
in really tiny deployments.

Revision 1.327 / (download) - annotate - [select for diffs], Tue Jan 26 23:12:17 2016 UTC (8 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.326: +7 -7 lines
Diff to previous 1.326 (colored)

Put the kernelside rump kernel headers into <rump-sys> instead of
sprinkling them around the faction directories.  Avoids having
to add a CPPFLAGS (or several) to pretty much every component
Makefile.

Leave compat headers around in the old locations.

The commit changes some autogenerated files, but I'll fix the
generators shortly and regen.

Revision 1.326 / (download) - annotate - [select for diffs], Mon Jan 18 16:46:08 2016 UTC (8 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.325: +22 -3 lines
Diff to previous 1.325 (colored)

Fix dlopen()/dlclose()+RUMP_USE_CTOR to not leave dangling pointers around.

Revision 1.312.2.3 / (download) - annotate - [select for diffs], Tue Sep 22 12:06:15 2015 UTC (8 years, 5 months ago) by skrll
Branch: nick-nhusb
Changes since 1.312.2.2: +6 -22 lines
Diff to previous 1.312.2.2 (colored) to branchpoint 1.312 (colored)

Sync with HEAD

Revision 1.325 / (download) - annotate - [select for diffs], Mon Aug 31 07:38:48 2015 UTC (8 years, 6 months ago) by ozaki-r
Branch: MAIN
CVS Tags: nick-nhusb-base-20151226, nick-nhusb-base-20150921
Changes since 1.324: +3 -2 lines
Diff to previous 1.324 (colored)

Allow rumpkernel to use rw_obj_*

Revision 1.324 / (download) - annotate - [select for diffs], Tue Aug 25 14:53:25 2015 UTC (8 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.323: +3 -2 lines
Diff to previous 1.323 (colored)

initialize ncpuonline

Revision 1.323 / (download) - annotate - [select for diffs], Tue Aug 25 14:52:59 2015 UTC (8 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.322: +2 -22 lines
Diff to previous 1.322 (colored)

remove mksysctls(), now provided by init_sysctl_base

Revision 1.322 / (download) - annotate - [select for diffs], Tue Jul 7 12:38:02 2015 UTC (8 years, 7 months ago) by justin
Branch: MAIN
Changes since 1.321: +3 -2 lines
Diff to previous 1.321 (colored)

Move hw.machine and hw.machine_arch sysctls to base so rump can use them

This allows uname(3) and uname(1) to work on rump kernels.

Revision 1.321 / (download) - annotate - [select for diffs], Mon Jun 8 12:16:47 2015 UTC (8 years, 8 months ago) by pooka
Branch: MAIN
Changes since 1.320: +3 -2 lines
Diff to previous 1.320 (colored)

Allow device components to create symlinks in /dev
e.g. /dev/audio -> audio0

from Robert Millan <rmh@freebsd.org> via rumpkernel-users

Revision 1.312.2.2 / (download) - annotate - [select for diffs], Sat Jun 6 14:40:29 2015 UTC (8 years, 8 months ago) by skrll
Branch: nick-nhusb
Changes since 1.312.2.1: +7 -15 lines
Diff to previous 1.312.2.1 (colored) to branchpoint 1.312 (colored)

Sync with HEAD

Revision 1.320 / (download) - annotate - [select for diffs], Wed May 20 11:02:54 2015 UTC (8 years, 9 months ago) by pooka
Branch: MAIN
CVS Tags: nick-nhusb-base-20150606
Changes since 1.319: +4 -3 lines
Diff to previous 1.319 (colored)

call loginit() later, a lot later

Revision 1.319 / (download) - annotate - [select for diffs], Wed Apr 22 18:12:39 2015 UTC (8 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.318: +2 -13 lines
Diff to previous 1.318 (colored)

Define rump_nativeabi_p() under arch, where one would logically expect
it to be defined.

Revision 1.318 / (download) - annotate - [select for diffs], Fri Apr 17 13:02:54 2015 UTC (8 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.317: +3 -2 lines
Diff to previous 1.317 (colored)

set the local clients' comm to "rumplocal" instead of "system"

Revision 1.317 / (download) - annotate - [select for diffs], Mon Apr 13 16:46:33 2015 UTC (8 years, 10 months ago) by riastradh
Branch: MAIN
Changes since 1.316: +3 -2 lines
Diff to previous 1.316 (colored)

Convert remaining MI <sys/rnd.h> stragglers.  Many MD ones left.

Revision 1.312.2.1 / (download) - annotate - [select for diffs], Mon Apr 6 15:18:30 2015 UTC (8 years, 10 months ago) by skrll
Branch: nick-nhusb
Changes since 1.312: +60 -164 lines
Diff to previous 1.312 (colored)

Sync with HEAD

Revision 1.308.2.3 / (download) - annotate - [select for diffs], Wed Mar 25 16:54:37 2015 UTC (8 years, 11 months ago) by snj
Branch: netbsd-7
CVS Tags: netbsd-7-0-RELEASE, netbsd-7-0-RC3, netbsd-7-0-RC2, netbsd-7-0-RC1, netbsd-7-0-2-RELEASE, netbsd-7-0-1-RELEASE, netbsd-7-0
Changes since 1.308.2.2: +2 -3 lines
Diff to previous 1.308.2.2 (colored) to branchpoint 1.308 (colored)

Pull up following revision(s) (requested by maxv in ticket #617):
	sys/kern/kern_malloc.c: revision 1.144, 1.145
	sys/kern/kern_pmf.c: revision 1.37
	sys/rump/librump/rumpkern/rump.c: revision 1.316
	sys/uvm/uvm_extern.h: revision 1.193
	sys/uvm/uvm_km.c: revision 1.139
Don't include <uvm/uvm_extern.h>
--
Kill kmeminit().
--
Remove this MALLOC_DEFINE (M_PMF unused).

Revision 1.316 / (download) - annotate - [select for diffs], Fri Feb 6 18:19:22 2015 UTC (9 years ago) by maxv
Branch: MAIN
CVS Tags: nick-nhusb-base-20150406
Changes since 1.315: +2 -3 lines
Diff to previous 1.315 (colored)

Kill kmeminit().

Revision 1.315 / (download) - annotate - [select for diffs], Wed Jan 7 22:24:04 2015 UTC (9 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.314: +37 -7 lines
Diff to previous 1.314 (colored)

Move sysproxy support into a separate component, rumpkern_sysproxy,
instead of it being always provided by the rump kernel base.  This
move accomplishes two things:

1) it is no longer necessary to provide sysproxy hypercall stubs for
   platforms which do not want to use sysproxy
2) it is easier to reason about the security aspects, since configurations
   not linking the sysproxy component simply do not support remote
   system calls

discussed on rumpkernel-users

Revision 1.314 / (download) - annotate - [select for diffs], Sun Jan 4 22:11:40 2015 UTC (9 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.313: +26 -4 lines
Diff to previous 1.313 (colored)

Extend RUMP_USE_CTOR to SYSCTL_SETUP(), similar to what is already
done in MODULE().  The sysctl tree nodes from all components which
were loaded when rump_init() was called now get created -- mimics the
monolithic kernel.

No change to the monolithic kernel.

Revision 1.313 / (download) - annotate - [select for diffs], Sat Jan 3 17:23:51 2015 UTC (9 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.312: +7 -162 lines
Diff to previous 1.312 (colored)

Put all sysproxy routines to their own C module, sysproxy.c

Revision 1.308.2.2 / (download) - annotate - [select for diffs], Tue Dec 9 19:14:27 2014 UTC (9 years, 2 months ago) by martin
Branch: netbsd-7
Changes since 1.308.2.1: +23 -3 lines
Diff to previous 1.308.2.1 (colored) to branchpoint 1.308 (colored)

Pull up following revision(s) (requested by gson in ticket #299):
	sys/rump/librump/rumpkern/cons.c: revision 1.4
	sys/rump/librump/rumpkern/rump.c: revision 1.311
	lib/librumpuser/rumpuser_sp.c: revision 1.67
No longer create a special process context to fork remote clients off
of, simply always rfork off of proc1 closing all descriptors, and have
the rump kernel open 0/1/2 if the parent process is "1".
Fixes tests/rump/rumpkernel/t_sp, which was failing since the
abovementioned special process change due to attempting to deliver a
signal to the special process and the special process was not equipped
to handle one.

Revision 1.312 / (download) - annotate - [select for diffs], Mon Aug 25 18:44:02 2014 UTC (9 years, 6 months ago) by pooka
Branch: MAIN
CVS Tags: nick-nhusb-base
Branch point for: nick-nhusb
Changes since 1.311: +2 -15 lines
Diff to previous 1.311 (colored)

Remove and obsolete rumpkern_time as a separate component.

Revision 1.311 / (download) - annotate - [select for diffs], Mon Aug 25 14:58:48 2014 UTC (9 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.310: +23 -3 lines
Diff to previous 1.310 (colored)

No longer create a special process context to fork remote clients off
of, simply always rfork off of proc1 closing all descriptors, and have
the rump kernel open 0/1/2 if the parent process is "1".

Fixes tests/rump/rumpkernel/t_sp, which was failing since the
abovementioned special process change due to attempting to deliver a
signal to the special process and the special process was not equipped
to handle one.

Revision 1.246.2.4 / (download) - annotate - [select for diffs], Wed Aug 20 00:04:40 2014 UTC (9 years, 6 months ago) by tls
Branch: tls-maxphys
Changes since 1.246.2.3: +207 -271 lines
Diff to previous 1.246.2.3 (colored)

Rebase to HEAD as of a few days ago.

Revision 1.308.2.1 / (download) - annotate - [select for diffs], Fri Aug 15 12:58:45 2014 UTC (9 years, 6 months ago) by martin
Branch: netbsd-7
Changes since 1.308: +6 -5 lines
Diff to previous 1.308 (colored)

Pull up following revision(s) (requested by riastradh in ticket #23):
	sys/rump/librump/rumpkern/rump.c: revision 1.310
	sys/rump/librump/rumpkern/rump.c: revision 1.309
	sys/kern/init_main.c: revision 1.459
Defer cprng_fast_init until CPUs are detected.
Restore placement of percpu_init in rump_init.
Probably doesn't matter, but let's avoid needless churn around the
real bug fix.

Revision 1.310 / (download) - annotate - [select for diffs], Thu Aug 14 16:28:49 2014 UTC (9 years, 6 months ago) by riastradh
Branch: MAIN
Changes since 1.309: +1 -2 lines
Diff to previous 1.309 (colored)

Restore placement of percpu_init in rump_init.

Probably doesn't matter, but let's avoid needless churn around the
real bug fix.

Revision 1.309 / (download) - annotate - [select for diffs], Thu Aug 14 16:27:56 2014 UTC (9 years, 6 months ago) by riastradh
Branch: MAIN
Changes since 1.308: +5 -3 lines
Diff to previous 1.308 (colored)

Defer cprng_fast_init until CPUs are detected.

Revision 1.308 / (download) - annotate - [select for diffs], Mon Aug 11 04:27:24 2014 UTC (9 years, 6 months ago) by ozaki-r
Branch: MAIN
CVS Tags: tls-maxphys-base, netbsd-7-base
Branch point for: netbsd-7
Changes since 1.307: +6 -3 lines
Diff to previous 1.307 (colored)

Do cprng_fast_init in rump_init

It fixes rump bootup failure:
  panic: kernel diagnostic assertion "off < percpu_nextoff" failed:
  file "/usr/src/lib/librump/../../sys/rump/../kern/subr_percpu.c", line 76

Revision 1.292.2.1 / (download) - annotate - [select for diffs], Sun Aug 10 06:56:51 2014 UTC (9 years, 6 months ago) by tls
Branch: tls-earlyentropy
Changes since 1.292: +89 -240 lines
Diff to previous 1.292 (colored) next main 1.293 (colored)

Rebase.

Revision 1.307 / (download) - annotate - [select for diffs], Sun Jun 29 11:36:52 2014 UTC (9 years, 8 months ago) by justin
Branch: MAIN
CVS Tags: tls-earlyentropy-base
Changes since 1.306: +3 -3 lines
Diff to previous 1.306 (colored)

Change assertion as rump_component_load may be called before curlwp available

Revision 1.306 / (download) - annotate - [select for diffs], Fri Jun 13 15:45:02 2014 UTC (9 years, 8 months ago) by pooka
Branch: MAIN
Changes since 1.305: +19 -2 lines
Diff to previous 1.305 (colored)

Add rump_boot_etfs_register(), which can be used to specify etfs
nodes that will be available immediately when mountroot is done
and file systems are available.

The intended use is for example for firmware images to be available when
config_mountroot() hooks run.

Revision 1.305 / (download) - annotate - [select for diffs], Sun May 25 16:31:51 2014 UTC (9 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.304: +2 -7 lines
Diff to previous 1.304 (colored)

Call biodone() in the bdev_strategy() error via a pointer.  Decouples
subr_devsw from VFS -- not that I/O buffers are _VFS_ entities -- and
eliminates the last weak alias from librump, which means things now
fully work on glibc (w/o LD_DYNAMIC_WEAK) and musl.

The whole code path is suspect anyway, since nothing prevents the device
from escaping after the lookup, suggesting that the whole error path
should be handled by the caller, but oh well.

Revision 1.234.4.5 / (download) - annotate - [select for diffs], Thu May 22 11:41:15 2014 UTC (9 years, 9 months ago) by yamt
Branch: yamt-pagecache
Changes since 1.234.4.4: +302 -292 lines
Diff to previous 1.234.4.4 (colored) to branchpoint 1.234 (colored) next main 1.235 (colored)

sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs.  ("Protocol error: too many arguments")

Revision 1.270.2.2 / (download) - annotate - [select for diffs], Sun May 18 17:46:18 2014 UTC (9 years, 9 months ago) by rmind
Branch: rmind-smpnet
Changes since 1.270.2.1: +185 -265 lines
Diff to previous 1.270.2.1 (colored) next main 1.271 (colored)

sync with head

Revision 1.304 / (download) - annotate - [select for diffs], Sun Apr 27 15:08:52 2014 UTC (9 years, 10 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-pagecache-base9, rmind-smpnet-nbase, rmind-smpnet-base
Changes since 1.303: +19 -62 lines
Diff to previous 1.303 (colored)

Eliminate weak symbols from rump kernel syscall handlers, part 4:

Do not query system call handlers by using the rumpuser_dl_globalsym()
hypercall -- it will not work in environments which are not in control
of their own symbols (e.g. rumpuser-xen).  Instead, provide
rump_syscall_boot_establish(), which component constructors can use
to establish their non-modular syscalls.

Revision 1.303 / (download) - annotate - [select for diffs], Sat Apr 26 11:17:55 2014 UTC (9 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.302: +2 -3 lines
Diff to previous 1.302 (colored)

kill weak aliases which are no longer necessary

Revision 1.302 / (download) - annotate - [select for diffs], Fri Apr 25 19:56:01 2014 UTC (9 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.301: +2 -45 lines
Diff to previous 1.301 (colored)

cpu_reboot() is more of an emul.c thing than a rump.c thing

Revision 1.301 / (download) - annotate - [select for diffs], Fri Apr 25 18:25:38 2014 UTC (9 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.300: +2 -88 lines
Diff to previous 1.300 (colored)

gardenize rump.c: move data structure helper routines to accessors.c

Revision 1.300 / (download) - annotate - [select for diffs], Fri Apr 25 18:13:59 2014 UTC (9 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.299: +2 -7 lines
Diff to previous 1.299 (colored)

gardenizing rump.c: move rump_lockdebug to locks.c

Revision 1.299 / (download) - annotate - [select for diffs], Fri Apr 25 13:20:45 2014 UTC (9 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.298: +7 -8 lines
Diff to previous 1.298 (colored)

Init function pointers to nullop() so that callers don't need a dance

Revision 1.298 / (download) - annotate - [select for diffs], Fri Apr 25 13:13:26 2014 UTC (9 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.297: +2 -6 lines
Diff to previous 1.297 (colored)

g/c no longer necessary weak alias

Revision 1.297 / (download) - annotate - [select for diffs], Fri Apr 25 13:10:42 2014 UTC (9 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.296: +2 -7 lines
Diff to previous 1.296 (colored)

Move the etfs linkage from rumpvfs to rumpkern, and replace the
weak alias show with an honest pointer indirection.

No client-visible change. (apart from this version working e.g.
on musl w/ dlopen)

Revision 1.296 / (download) - annotate - [select for diffs], Wed Apr 23 23:25:45 2014 UTC (9 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.295: +32 -10 lines
Diff to previous 1.295 (colored)

Add a RUMP_USE_CTOR compile-time switch.  If defined, use
__attribute__((constructor)) to determine which rump kernel components
and kernel modules are linked into the rump kernel.  If not defined
(default), use the regular approach with link sets.

This option is aimed to fix problems with toolchains where using link
sets is not possible because the linker does not generate the requisite
__start/__stop symbols for the link set sections (e.g. GNU gold, OS X, ...).

Revision 1.295 / (download) - annotate - [select for diffs], Wed Apr 23 16:17:55 2014 UTC (9 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.294: +18 -18 lines
Diff to previous 1.294 (colored)

Include LIST_ENTRY() in "struct rump_component".

Main benefit: rump_component_load() can now be called from an
early-running constructor since the routine doesn't need to allocate
memory.

Revision 1.294 / (download) - annotate - [select for diffs], Wed Apr 9 23:53:36 2014 UTC (9 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.293: +3 -3 lines
Diff to previous 1.293 (colored)

implement lwp_create() and a few related interfaces.
main raison d'impalerment: the aio driver

Revision 1.293 / (download) - annotate - [select for diffs], Wed Apr 9 23:49:27 2014 UTC (9 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.292: +5 -2 lines
Diff to previous 1.292 (colored)

initialize exec_lock

Revision 1.292 / (download) - annotate - [select for diffs], Wed Apr 2 19:37:17 2014 UTC (9 years, 10 months ago) by pooka
Branch: MAIN
Branch point for: tls-earlyentropy
Changes since 1.291: +17 -2 lines
Diff to previous 1.291 (colored)

Put nanosleep() and folks in librump instead of maintaining them in
the separate rumpkern_time component.  Keeping time-related routines
elsewhere lead to some illogical behavior if you didn't think of linking
in rumpkern_time (hands up everyone who checks the return value of
nanosleep()).

Add warnings if rumpkern_time is linked or used.  I'll remove it in a
month or two instead of now since it was part of a buildrump.sh snapshot
and it's nicer if trying to use it gives a warning instead of an error
in the next snapshot.

"everything should be as modular as possible, but no more modular than that"

Revision 1.291 / (download) - annotate - [select for diffs], Thu Mar 20 20:42:08 2014 UTC (9 years, 11 months ago) by christos
Branch: MAIN
CVS Tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
Changes since 1.290: +4 -3 lines
Diff to previous 1.290 (colored)

kill sprintf

Revision 1.290 / (download) - annotate - [select for diffs], Sat Mar 15 15:15:27 2014 UTC (9 years, 11 months ago) by pooka
Branch: MAIN
CVS Tags: riastradh-drm2-base3
Changes since 1.289: +5 -7 lines
Diff to previous 1.289 (colored)

Allow compile-time optimizations to curlwp.  This can have a pretty
staggering impact on performance.  When running sendto() in a loop,
the improvement is 200k more calls per second with an inlined __thread
curlwp as opposed to the default.  In other words, it shaves off hundreds
of CPU cycles per call (~20%).  Even just eliminating the x86_curlwp()
call in favor of an inline gives an improvement of 60k calls per second.

Revision 1.289 / (download) - annotate - [select for diffs], Mon Mar 10 22:44:11 2014 UTC (9 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.288: +4 -2 lines
Diff to previous 1.288 (colored)

rump_getversion() does not require a thread context, so make it a straight
call instead of being wrapped around rump_pub_getversion().

Revision 1.288 / (download) - annotate - [select for diffs], Mon Mar 10 22:38:53 2014 UTC (9 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.287: +13 -2 lines
Diff to previous 1.287 (colored)

Move the "is arch capable of loading native kernel modules into
rump kernel" clauses from bsd.own.mk to Makefile.rump.  Also,
add a rump_nativeabi_p() call to determine if rump kernel is
compiled with native ABI support.

Revision 1.287 / (download) - annotate - [select for diffs], Fri Feb 28 10:16:51 2014 UTC (10 years ago) by skrll
Branch: MAIN
Changes since 1.286: +2 -3 lines
Diff to previous 1.286 (colored)

G/C sys/simplelock.h includes

Revision 1.286 / (download) - annotate - [select for diffs], Tue Feb 25 18:30:13 2014 UTC (10 years ago) by pooka
Branch: MAIN
Changes since 1.285: +2 -7 lines
Diff to previous 1.285 (colored)

Ensure that the top level sysctl nodes (kern, vfs, net, ...) exist before
the sysctl link sets are processed, and remove redundancy.

Shaves >13kB off of an amd64 GENERIC, not to mention >1k duplicate
lines of code.

Revision 1.285 / (download) - annotate - [select for diffs], Tue Feb 25 01:02:42 2014 UTC (10 years ago) by justin
Branch: MAIN
Changes since 1.284: +2 -12 lines
Diff to previous 1.284 (colored)

Add kern.{ostype,osrelease,osrevision,version} kern.domainname,
kern.rawpartition sysctl support to rump kernel.
Moved the sysctl support that is shared between rump and normal
kernels to init_sysctl_base.c as rump cannot use init_sysctl.c
in order to avoid code duplication. Agreed with pooka@.

Revision 1.284 / (download) - annotate - [select for diffs], Wed Jan 29 18:42:14 2014 UTC (10 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.283: +2 -4 lines
Diff to previous 1.283 (colored)

lwp0 needs l_proc set for panic->cpu_reboot to dump core the right way

Revision 1.283 / (download) - annotate - [select for diffs], Fri Jan 17 02:05:54 2014 UTC (10 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.282: +3 -3 lines
Diff to previous 1.282 (colored)

sysctl_init needs to be pretty much at the top of main()

Revision 1.282 / (download) - annotate - [select for diffs], Fri Jan 17 01:32:53 2014 UTC (10 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.281: +7 -8 lines
Diff to previous 1.281 (colored)

Use subr_cprng.c instead of stub implementation.  Rijndael migrates from
rumpkern_crypto to rumpkern due to it being mandatory for cprng.

Revision 1.281 / (download) - annotate - [select for diffs], Mon Dec 16 15:36:30 2013 UTC (10 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.280: +28 -2 lines
Diff to previous 1.280 (colored)

Translate return values for emulations, e.g. Linux.  For ports without
__HAVE_MINIMAL_EMUL, we simply look up the values from p->p_emul->e_errno.
For ports which cannot afford to keep an extra pointer per emul structure
around, we hope there is __HAVE_SYSCALL_INTERN support and thread the
errno values through p_emuldata.  Notably, we cannot alter the syscall
method like most ports do with syscall_intern, since they do it via
p_mdproc, so MI code is not possible there.

Revision 1.280 / (download) - annotate - [select for diffs], Mon Dec 9 17:57:11 2013 UTC (10 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.279: +4 -2 lines
Diff to previous 1.279 (colored)

Make ktrace a compile-time option

Revision 1.279 / (download) - annotate - [select for diffs], Mon Dec 9 16:56:11 2013 UTC (10 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.278: +3 -2 lines
Diff to previous 1.278 (colored)

need ktrace.h now

Revision 1.278 / (download) - annotate - [select for diffs], Mon Dec 9 16:54:20 2013 UTC (10 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.277: +4 -2 lines
Diff to previous 1.277 (colored)

Support ktrace for rump kernels.

Requested by Justin Cormack on rumpkernel-users.

Revision 1.277 / (download) - annotate - [select for diffs], Mon Dec 9 16:23:10 2013 UTC (10 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.276: +4 -4 lines
Diff to previous 1.276 (colored)

Use sy_invoke() instead of sy_call() directly.

Revision 1.276 / (download) - annotate - [select for diffs], Mon Nov 18 18:45:29 2013 UTC (10 years, 3 months ago) by njoly
Branch: MAIN
Changes since 1.275: +12 -12 lines
Diff to previous 1.275 (colored)

Do lwp0 initialisation as early as possible, right after
rumpuser_init(). This makes rump applications work again when
RUMP_LOCKDEBUG is enabled.

ok pooka.

Revision 1.275 / (download) - annotate - [select for diffs], Mon Sep 9 19:18:08 2013 UTC (10 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.274: +4 -2 lines
Diff to previous 1.274 (colored)

Fix minor bug in previous: make sure we come out of rump_init()
without a bound lwp set.

Revision 1.274 / (download) - annotate - [select for diffs], Sat Sep 7 17:58:00 2013 UTC (10 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.273: +12 -6 lines
Diff to previous 1.273 (colored)

Add an initial console device and open fd's 0/1/2 for initproc.  This is
again useful in standalone-type environments such as Xen, where all
printf/etc calls go through the rump kernel.

Revision 1.273 / (download) - annotate - [select for diffs], Wed Sep 4 17:56:08 2013 UTC (10 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.272: +19 -5 lines
Diff to previous 1.272 (colored)

Also create hw.pagesize, makes sysconf(_SC_PAGESIZE) return a more
sensible result.

Revision 1.272 / (download) - annotate - [select for diffs], Tue Sep 3 19:55:13 2013 UTC (10 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.271: +24 -2 lines
Diff to previous 1.271 (colored)

Don't autogenerate the wrapper that is called from the rump kernel
local syscall entry points.  The wrapper is now so big that it doesn't
get inlined (original intent for having it close to the entry points),
and autogenerating a regular function just loses in flexibility.

Revision 1.270.2.1 / (download) - annotate - [select for diffs], Wed Aug 28 23:59:37 2013 UTC (10 years, 6 months ago) by rmind
Branch: rmind-smpnet
Changes since 1.270: +4 -3 lines
Diff to previous 1.270 (colored)

sync with head

Revision 1.271 / (download) - annotate - [select for diffs], Wed Jul 3 17:10:28 2013 UTC (10 years, 7 months ago) by njoly
Branch: MAIN
CVS Tags: riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2
Changes since 1.270: +4 -3 lines
Diff to previous 1.270 (colored)

Make RUMP_LOCKDEBUG work again.
With some help from pooka@.

Revision 1.246.2.3 / (download) - annotate - [select for diffs], Sun Jun 23 06:20:28 2013 UTC (10 years, 8 months ago) by tls
Branch: tls-maxphys
Changes since 1.246.2.2: +142 -73 lines
Diff to previous 1.246.2.2 (colored)

resync from head

Revision 1.270 / (download) - annotate - [select for diffs], Fri May 31 16:16:40 2013 UTC (10 years, 9 months ago) by pooka
Branch: MAIN
Branch point for: rmind-smpnet
Changes since 1.269: +4 -2 lines
Diff to previous 1.269 (colored)

run shutdownhooks

Revision 1.269 / (download) - annotate - [select for diffs], Wed May 15 14:07:26 2013 UTC (10 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.268: +3 -3 lines
Diff to previous 1.268 (colored)

Add RUMPUSER_LWP_CLEAR instead of overloading RUMPUSER_LWP_SET.
This simplifies some alternative hypervisor implementations.

Revision 1.268 / (download) - annotate - [select for diffs], Thu May 2 21:45:28 2013 UTC (10 years, 10 months ago) by pooka
Branch: MAIN
CVS Tags: khorben-n900
Changes since 1.267: +4 -3 lines
Diff to previous 1.267 (colored)

Ok, maybe using int64 for nanoseconds in the (sec,nsec) tuple was
a bit too future-proof.  I think long is enough there (let's just
hope nobody redefines "nano").  Also, make seconds signed just in
case someone wants their clock to be in 1901.

Revision 1.267 / (download) - annotate - [select for diffs], Thu May 2 19:15:01 2013 UTC (10 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.266: +7 -4 lines
Diff to previous 1.266 (colored)

Inform the rump kernel hypervisor of valid thread contexts so
that the implementation can allocate and release storage for them
in an optimal fashion, if necessary.

Revision 1.266 / (download) - annotate - [select for diffs], Tue Apr 30 16:03:44 2013 UTC (10 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.265: +4 -4 lines
Diff to previous 1.265 (colored)

Flip parameter order in the clock hypercalls to make them consistent
with everything else wrt in/out parameters.

Revision 1.265 / (download) - annotate - [select for diffs], Mon Apr 29 18:00:19 2013 UTC (10 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.264: +19 -4 lines
Diff to previous 1.264 (colored)

Make rumpuser_dl_bootstrap() optional for platforms which don't
provide dynamic linking.

Revision 1.264 / (download) - annotate - [select for diffs], Mon Apr 29 17:31:05 2013 UTC (10 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.263: +15 -14 lines
Diff to previous 1.263 (colored)

Replace the various "get info from hypervisor" interfaces with one
unified rumpuser_getparam(), and make it return a plist.  The
contents can come e.g. from the env or a config file.  Make
identifiers starting with an underscore denote system identifiers
which must be implemented by hypervisor. (yea, j/k about the plist bit)

Revision 1.263 / (download) - annotate - [select for diffs], Mon Apr 29 14:51:41 2013 UTC (10 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.262: +26 -25 lines
Diff to previous 1.262 (colored)

Make the rump kernel upcalls which were previous available only to
the sysproxy module available for the entire hypervisor.

Revision 1.262 / (download) - annotate - [select for diffs], Sun Apr 28 13:17:25 2013 UTC (10 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.261: +5 -10 lines
Diff to previous 1.261 (colored)

Improve the time-related hypercalls so that's it's possible to
sleep until an absolute time on the host's monotonic clock (should
something like that be supported).

Revision 1.261 / (download) - annotate - [select for diffs], Sat Apr 27 16:32:57 2013 UTC (10 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.260: +3 -3 lines
Diff to previous 1.260 (colored)

roll mutex init hypercalls into one (one of them already took a flag anyway)

Revision 1.260 / (download) - annotate - [select for diffs], Sat Apr 27 16:02:56 2013 UTC (10 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.259: +8 -5 lines
Diff to previous 1.259 (colored)

wrap unportable register_t with a long.  should do it in the front
of the house too, but at least this is a start.

Revision 1.259 / (download) - annotate - [select for diffs], Sat Apr 27 15:13:11 2013 UTC (10 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.258: +5 -9 lines
Diff to previous 1.258 (colored)

Get rid of the rump__init() macro.  it was never useful and just makes
debugging less obvious.

Revision 1.258 / (download) - annotate - [select for diffs], Sat Apr 27 14:59:09 2013 UTC (10 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.257: +12 -13 lines
Diff to previous 1.257 (colored)

* integrate rumpuser_getversion() with the hypervisor initialization
* rename some identifiers to better match reality

Revision 1.257 / (download) - annotate - [select for diffs], Sun Mar 10 17:05:12 2013 UTC (10 years, 11 months ago) by pooka
Branch: MAIN
CVS Tags: agc-symver-base, agc-symver
Changes since 1.256: +3 -2 lines
Diff to previous 1.256 (colored)

Use kern_malloc.c instead of the relegated allocators in memalloc.c.
Previously this didn't make sense due to the use of kmem_map, but the
new malloc is more dynamic and puts sense into using it.

Revision 1.256 / (download) - annotate - [select for diffs], Sun Mar 10 16:51:31 2013 UTC (10 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.255: +6 -2 lines
Diff to previous 1.255 (colored)

Don't allow kernel threads to run before all CPUs have been initialized
to avoid them getting scheduled on non-initialized CPUs.

Revision 1.255 / (download) - annotate - [select for diffs], Fri Mar 8 19:04:28 2013 UTC (10 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.254: +40 -9 lines
Diff to previous 1.254 (colored)

Ensure that rump kernel component constructors from the main object
get processed.  This applies to ones which were linked statically.
Unfortunately, that's where it got a bit tricky, since the dlsym()
interface searches the handle and all its dependencies.  For the main
object the list of dependencies includes all the dynamic rump kernel
components that were included when the binary is linked.  So, a long
story short, make only one pass through the objects to harvest all the
component entries, weed out the dupes, and initialize components from
an in-memory dupe-free list when so requested.

Revision 1.254 / (download) - annotate - [select for diffs], Thu Mar 7 22:12:34 2013 UTC (10 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.253: +6 -2 lines
Diff to previous 1.253 (colored)

Make the device node creation routines function pointers which default
to nullop without VFS.  This relaxes the dependency between VFS and many
components, some of which can be used perfectly fine without VFS.

Revision 1.253 / (download) - annotate - [select for diffs], Thu Mar 7 18:33:27 2013 UTC (10 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.252: +8 -4 lines
Diff to previous 1.252 (colored)

Force references to the component setlist __start/__stop symbols so
that they get generated for rump kernels constructed from static libs.

Revision 1.252 / (download) - annotate - [select for diffs], Sun Mar 3 13:11:33 2013 UTC (10 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.251: +11 -2 lines
Diff to previous 1.251 (colored)

Add a dummy component to ensure that at least one component is present
in every possible rump kernel configuration.

Revision 1.246.2.2 / (download) - annotate - [select for diffs], Mon Feb 25 00:30:08 2013 UTC (11 years ago) by tls
Branch: tls-maxphys
Changes since 1.246.2.1: +45 -25 lines
Diff to previous 1.246.2.1 (colored)

resync with head

Revision 1.251 / (download) - annotate - [select for diffs], Tue Feb 19 09:04:54 2013 UTC (11 years ago) by martin
Branch: MAIN
Changes since 1.250: +22 -2 lines
Diff to previous 1.250 (colored)

Stopgap fix to make rump cooperate with pserialize, may be revisited later.
Patch from pooka, ok: rmind. No related regressions in a complete atf test
run (which works again with this, even on non x86 SMP machines).

Revision 1.234.4.4 / (download) - annotate - [select for diffs], Wed Jan 23 00:06:28 2013 UTC (11 years, 1 month ago) by yamt
Branch: yamt-pagecache
CVS Tags: yamt-pagecache-tag8
Changes since 1.234.4.3: +25 -25 lines
Diff to previous 1.234.4.3 (colored) to branchpoint 1.234 (colored)

sync with head

Revision 1.250 / (download) - annotate - [select for diffs], Mon Jan 14 16:52:35 2013 UTC (11 years, 1 month ago) by pooka
Branch: MAIN
CVS Tags: yamt-pagecache-base8
Changes since 1.249: +3 -3 lines
Diff to previous 1.249 (colored)

fix typo

Revision 1.249 / (download) - annotate - [select for diffs], Mon Jan 14 16:45:47 2013 UTC (11 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.248: +20 -25 lines
Diff to previous 1.248 (colored)

Don't use __weak_alias where the component framework is sufficient.

Revision 1.248 / (download) - annotate - [select for diffs], Mon Jan 14 16:35:06 2013 UTC (11 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.247: +7 -2 lines
Diff to previous 1.247 (colored)

Add some asserts to component initialization.

Revision 1.246.2.1 / (download) - annotate - [select for diffs], Tue Nov 20 03:02:50 2012 UTC (11 years, 3 months ago) by tls
Branch: tls-maxphys
Changes since 1.246: +4 -2 lines
Diff to previous 1.246 (colored)

Resync to 2012-11-19 00:00:00 UTC

Revision 1.240.2.1 / (download) - annotate - [select for diffs], Sun Nov 18 21:45:08 2012 UTC (11 years, 3 months ago) by riz
Branch: netbsd-6
CVS Tags: netbsd-6-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-1-5-RELEASE, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE, netbsd-6-1-1-RELEASE, netbsd-6-1
Changes since 1.240: +6 -2 lines
Diff to previous 1.240 (colored) next main 1.241 (colored)

Pull up following revision(s) (requested by rmind in ticket #678):
	sys/rump/librump/rumpkern/rump.c: revision 1.243
	sys/rump/librump/rumpkern/rump.c: revision 1.244
	sys/rump/librump/rumpkern/rump.c: revision 1.245
	sys/rump/librump/rumpkern/rump.c: revision 1.246
	usr.sbin/npf/npftest/npftest.c: revision 1.5
	usr.sbin/npf/npftest/README: revision 1.2
	usr.sbin/npf/npftest/npftest.h: revision 1.5
	sys/rump/net/Makefile.rumpnetcomp: revision 1.5
	sys/rump/net/lib/libnpf/shlib_version: revision 1.1
	sys/net/npf/npf_impl.h: revision 1.22
	sys/rump/dev/lib/libnpf/Makefile: file removal
	usr.sbin/npf/npftest/Makefile: revision 1.3
	sys/rump/dev/lib/libnpf/component.c: file removal
	sys/rump/dev/lib/libnpf/shlib_version: file removal
	sys/net/npf/npf_state.c: revision 1.12
	sys/rump/net/lib/libnpf/component.c: revision 1.1
	usr.sbin/npf/npftest/libnpftest/npf_test_subr.c: revision 1.4
	usr.sbin/npf/npftest/libnpftest/npf_test.h: revision 1.6
	sys/rump/net/lib/libnpf/Makefile: revision 1.1
Move and rename librumpdev_npf to librumpnet_npf.
Enable the build of librumpnet_npf.
Add npf_state_setsampler() for _NPF_TESTING case.  This also fixes the build.
Call pserialize_init() during rump start-up, since librump/net/npf
uses it.
It helps to include the declaration of the routine being called.
We also need kcpuset_init() now.
Use correct routine name - kcpuset_sysinit() vs kcpuset_init()

Revision 1.234.4.3 / (download) - annotate - [select for diffs], Tue Oct 30 17:22:53 2012 UTC (11 years, 4 months ago) by yamt
Branch: yamt-pagecache
Changes since 1.234.4.2: +10 -4 lines
Diff to previous 1.234.4.2 (colored) to branchpoint 1.234 (colored)

sync with head

Revision 1.247 / (download) - annotate - [select for diffs], Tue Oct 9 13:35:50 2012 UTC (11 years, 4 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-pagecache-base7, yamt-pagecache-base6
Changes since 1.246: +4 -2 lines
Diff to previous 1.246 (colored)

Gather some statistics about biglock usage.

Revision 1.246 / (download) - annotate - [select for diffs], Thu Aug 16 19:40:48 2012 UTC (11 years, 6 months ago) by pgoyette
Branch: MAIN
Branch point for: tls-maxphys
Changes since 1.245: +3 -3 lines
Diff to previous 1.245 (colored)

Use correct routine name - kcpuset_sysinit() vs kcpuset_init()

Revision 1.245 / (download) - annotate - [select for diffs], Thu Aug 16 19:09:01 2012 UTC (11 years, 6 months ago) by pgoyette
Branch: MAIN
Changes since 1.244: +4 -2 lines
Diff to previous 1.244 (colored)

We also need kcpuset_init() now.

Revision 1.244 / (download) - annotate - [select for diffs], Thu Aug 16 17:47:47 2012 UTC (11 years, 6 months ago) by pgoyette
Branch: MAIN
Changes since 1.243: +3 -2 lines
Diff to previous 1.243 (colored)

It helps to include the declaration of the routine being called.

Revision 1.243 / (download) - annotate - [select for diffs], Thu Aug 16 17:25:36 2012 UTC (11 years, 6 months ago) by pgoyette
Branch: MAIN
Changes since 1.242: +3 -2 lines
Diff to previous 1.242 (colored)

Call pserialize_init() during rump start-up, since librump/net/npf
uses it.

Revision 1.242 / (download) - annotate - [select for diffs], Sat Jun 9 15:48:38 2012 UTC (11 years, 8 months ago) by christos
Branch: MAIN
Changes since 1.241: +3 -3 lines
Diff to previous 1.241 (colored)

since uidinfo uses sysctl now, move sysctl initialization before it.

Revision 1.241 / (download) - annotate - [select for diffs], Sun Jun 3 10:45:10 2012 UTC (11 years, 8 months ago) by dsl
Branch: MAIN
Changes since 1.240: +3 -3 lines
Diff to previous 1.240 (colored)

Fix build now that sysctl_createv() checks its arg type.

Revision 1.234.4.2 / (download) - annotate - [select for diffs], Tue Apr 17 00:08:49 2012 UTC (11 years, 10 months ago) by yamt
Branch: yamt-pagecache
Changes since 1.234.4.1: +14 -24 lines
Diff to previous 1.234.4.1 (colored) to branchpoint 1.234 (colored)

sync with head

Revision 1.237.2.1 / (download) - annotate - [select for diffs], Sat Feb 18 07:35:46 2012 UTC (12 years ago) by mrg
Branch: jmcneill-usbmp
Changes since 1.237: +6 -3 lines
Diff to previous 1.237 (colored) next main 1.238 (colored)

merge to -current.

Revision 1.240 / (download) - annotate - [select for diffs], Sat Feb 4 10:02:25 2012 UTC (12 years ago) by njoly
Branch: MAIN
CVS Tags: yamt-pagecache-base5, yamt-pagecache-base4, netbsd-6-base, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-6-RELEASE, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, netbsd-6-0, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus, jmcneill-usbmp-base9, jmcneill-usbmp-base8, jmcneill-usbmp-base7, jmcneill-usbmp-base6, jmcneill-usbmp-base5, jmcneill-usbmp-base4, jmcneill-usbmp-base3, jmcneill-usbmp-base2, jmcneill-usbmp-base10
Branch point for: netbsd-6
Changes since 1.239: +4 -2 lines
Diff to previous 1.239 (colored)

Now that rnd is not optional anymore, add needed rnd_init() for rump.
Fix dev/{scsipi,sysmon} testcases.

Revision 1.239 / (download) - annotate - [select for diffs], Sun Jan 29 14:57:31 2012 UTC (12 years, 1 month ago) by njoly
Branch: MAIN
Changes since 1.238: +2 -3 lines
Diff to previous 1.238 (colored)

Move pool subsystem init from rump__init() to uvm_init(), following
kernel code. Fix RUMP_LOCKDEBUG early panic.

Revision 1.238 / (download) - annotate - [select for diffs], Sun Dec 4 19:24:59 2011 UTC (12 years, 2 months ago) by jym
Branch: MAIN
Changes since 1.237: +4 -2 lines
Diff to previous 1.237 (colored)

Implement the register/deregister/evaluation API for secmodel(9). It
allows registration of callbacks that can be used later for
cross-secmodel "safe" communication.

When a secmodel wishes to know a property maintained by another
secmodel, it has to submit a request to it so the other secmodel can
proceed to evaluating the request. This is done through the
secmodel_eval(9) call; example:

    bool isroot;
    error = secmodel_eval("org.netbsd.secmodel.suser", "is-root",
        cred, &isroot);
    if (error == 0 && !isroot)
            result = KAUTH_RESULT_DENY;

This one asks the suser module if the credentials are assumed to be root
when evaluated by suser module. If the module is present, it will
respond. If absent, the call will return an error.

Args and command are arbitrarily defined; it's up to the secmodel(9) to
document what it expects.

Typical example is securelevel testing: when someone wants to know
whether securelevel is raised above a certain level or not, the caller
has to request this property to the secmodel_securelevel(9) module.
Given that securelevel module may be absent from system's context (thus
making access to the global "securelevel" variable impossible or
unsafe), this API can cope with this absence and return an error.

We are using secmodel_eval(9) to implement a secmodel_extensions(9)
module, which plugs with the bsd44, suser and securelevel secmodels
to provide the logic behind curtain, usermount and user_set_cpu_affinity
modes, without adding hooks to traditional secmodels. This solves a
real issue with the current secmodel(9) code, as usermount or
user_set_cpu_affinity are not really tied to secmodel_suser(9).

The secmodel_eval(9) is also used to restrict security.models settings
when securelevel is above 0, through the "is-securelevel-above"
evaluation:
- curtain can be enabled any time, but cannot be disabled if
securelevel is above 0.
- usermount/user_set_cpu_affinity can be disabled any time, but cannot
be enabled if securelevel is above 0.

Regarding sysctl(7) entries:
curtain and usermount are now found under security.models.extensions
tree. The security.curtain and vfs.generic.usermount are still
accessible for backwards compat.

Documentation is incoming, I am proof-reading my writings.

Written by elad@, reviewed and tested (anita test + interact for rights
tests) by me. ok elad@.

See also
http://mail-index.netbsd.org/tech-security/2011/11/29/msg000422.html

XXX might consider va0 mapping too.

XXX Having a secmodel(9) specific printf (like aprint_*) for reporting
secmodel(9) errors might be a good idea, but I am not sure on how
to design such a function right now.

Revision 1.237 / (download) - annotate - [select for diffs], Thu Dec 1 19:15:15 2011 UTC (12 years, 3 months ago) by tls
Branch: MAIN
CVS Tags: jmcneill-usbmp-pre-base2, jmcneill-usbmp-base
Branch point for: jmcneill-usbmp
Changes since 1.236: +6 -20 lines
Diff to previous 1.236 (colored)

Initialize the kern_cprng in rump startup.  Oops.

Should fix some "mysterious" rump test failures.  Thanks to Nicholas Joly
for pointing out exactly what was wrong.

Revision 1.236 / (download) - annotate - [select for diffs], Sat Nov 26 21:41:02 2011 UTC (12 years, 3 months ago) by njoly
Branch: MAIN
Changes since 1.235: +10 -10 lines
Diff to previous 1.235 (colored)

Do not call cprng_fast32() before locks init. Makes rump build with
RUMP_LOCKDEBUG=yes work again.

Revision 1.235 / (download) - annotate - [select for diffs], Sat Nov 19 22:51:30 2011 UTC (12 years, 3 months ago) by tls
Branch: MAIN
Changes since 1.234: +4 -3 lines
Diff to previous 1.234 (colored)

First step of random number subsystem rework described in
<20111022023242.BA26F14A158@mail.netbsd.org>.  This change includes
the following:

	An initial cleanup and minor reorganization of the entropy pool
	code in sys/dev/rnd.c and sys/dev/rndpool.c.  Several bugs are
	fixed.  Some effort is made to accumulate entropy more quickly at
	boot time.

	A generic interface, "rndsink", is added, for stream generators to
	request that they be re-keyed with good quality entropy from the pool
	as soon as it is available.

	The arc4random()/arc4randbytes() implementation in libkern is
	adjusted to use the rndsink interface for rekeying, which helps
	address the problem of low-quality keys at boot time.

	An implementation of the FIPS 140-2 statistical tests for random
	number generator quality is provided (libkern/rngtest.c).  This
	is based on Greg Rose's implementation from Qualcomm.

	A new random stream generator, nist_ctr_drbg, is provided.  It is
	based on an implementation of the NIST SP800-90 CTR_DRBG by
	Henric Jungheim.  This generator users AES in a modified counter
	mode to generate a backtracking-resistant random stream.

	An abstraction layer, "cprng", is provided for in-kernel consumers
	of randomness.  The arc4random/arc4randbytes API is deprecated for
	in-kernel use.  It is replaced by "cprng_strong".  The current
	cprng_fast implementation wraps the existing arc4random
	implementation.  The current cprng_strong implementation wraps the
	new CTR_DRBG implementation.  Both interfaces are rekeyed from
	the entropy pool automatically at intervals justifiable from best
	current cryptographic practice.

	In some quick tests, cprng_fast() is about the same speed as
	the old arc4randbytes(), and cprng_strong() is about 20% faster
	than rnd_extract_data().  Performance is expected to improve.

	The AES code in src/crypto/rijndael is no longer an optional
	kernel component, as it is required by cprng_strong, which is
	not an optional kernel component.

	The entropy pool output is subjected to the rngtest tests at
	startup time; if it fails, the system will reboot.  There is
	approximately a 3/10000 chance of a false positive from these
	tests.  Entropy pool _input_ from hardware random numbers is
	subjected to the rngtest tests at attach time, as well as the
	FIPS continuous-output test, to detect bad or stuck hardware
	RNGs; if any are detected, they are detached, but the system
	continues to run.

	A problem with rndctl(8) is fixed -- datastructures with
	pointers in arrays are no longer passed to userspace (this
	was not a security problem, but rather a major issue for
	compat32).  A new kernel will require a new rndctl.

	The sysctl kern.arandom() and kern.urandom() nodes are hooked
	up to the new generators, but the /dev/*random pseudodevices
	are not, yet.

	Manual pages for the new kernel interfaces are forthcoming.

Revision 1.234.4.1 / (download) - annotate - [select for diffs], Wed Nov 2 21:53:59 2011 UTC (12 years, 3 months ago) by yamt
Branch: yamt-pagecache
Changes since 1.234: +4 -2 lines
Diff to previous 1.234 (colored)

page cache related changes

- maintain object pages in radix tree rather than rb tree.
- reduce unnecessary page scan in putpages.  esp. when an object has a ton of
  pages cached but only a few of them are dirty.
- reduce the number of pmap operations by tracking page dirtiness more
  precisely in uvm layer.
- fix nfs commit range tracking.
- fix nfs write clustering.  XXX hack

Revision 1.219.2.1 / (download) - annotate - [select for diffs], Mon Jun 6 09:10:07 2011 UTC (12 years, 8 months ago) by jruoho
Branch: jruoho-x86intr
Changes since 1.219: +83 -28 lines
Diff to previous 1.219 (colored) next main 1.220 (colored)

Sync with HEAD.

Revision 1.155.2.4 / (download) - annotate - [select for diffs], Thu Apr 21 01:42:17 2011 UTC (12 years, 10 months ago) by rmind
Branch: rmind-uvmplock
Changes since 1.155.2.3: +28 -26 lines
Diff to previous 1.155.2.3 (colored) to branchpoint 1.155 (colored) next main 1.156 (colored)

sync with head

Revision 1.234 / (download) - annotate - [select for diffs], Tue Mar 22 15:16:23 2011 UTC (12 years, 11 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, rmind-uvmplock-nbase, rmind-uvmplock-base, jmcneill-audiomp3-base, jmcneill-audiomp3, cherry-xenmp-base, cherry-xenmp
Branch point for: yamt-pagecache
Changes since 1.233: +3 -3 lines
Diff to previous 1.233 (colored)

pnbuf_cache is used all over the place outside of vfs, so put it
in one place to avoid many definitions.

Revision 1.233 / (download) - annotate - [select for diffs], Mon Mar 21 16:41:08 2011 UTC (12 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.232: +3 -5 lines
Diff to previous 1.232 (colored)

Update copyright statements.

no functional change.

Revision 1.232 / (download) - annotate - [select for diffs], Tue Mar 8 12:39:29 2011 UTC (12 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.231: +28 -24 lines
Diff to previous 1.231 (colored)

Nuke all threads belonging to a process calling exec before allowing
the exec handshake to return.

In addition to being The Right Thing To Do, fixes some nasty
conditions for CLOEXEC fd's (or at least does so in theory, I
couldn't create any problems although I tried).

Revision 1.155.2.3 / (download) - annotate - [select for diffs], Sat Mar 5 20:56:15 2011 UTC (12 years, 11 months ago) by rmind
Branch: rmind-uvmplock
Changes since 1.155.2.2: +301 -238 lines
Diff to previous 1.155.2.2 (colored) to branchpoint 1.155 (colored)

sync with head

Revision 1.219.4.2 / (download) - annotate - [select for diffs], Thu Feb 17 12:00:51 2011 UTC (13 years ago) by bouyer
Branch: bouyer-quota2
Changes since 1.219.4.1: +14 -3 lines
Diff to previous 1.219.4.1 (colored) to branchpoint 1.219 (colored) next main 1.220 (colored)

Sync with HEAD

Revision 1.231 / (download) - annotate - [select for diffs], Tue Feb 15 15:54:28 2011 UTC (13 years ago) by pooka
Branch: MAIN
CVS Tags: bouyer-quota2-nbase, bouyer-quota2-base
Changes since 1.230: +3 -5 lines
Diff to previous 1.230 (colored)

Support FD_CLOEXEC in rump kernels.

Revision 1.230 / (download) - annotate - [select for diffs], Tue Feb 15 10:35:05 2011 UTC (13 years ago) by pooka
Branch: MAIN
Changes since 1.229: +15 -2 lines
Diff to previous 1.229 (colored)

Add an "exec" callback for the proxy code.  The client can now
notify the rump kernel of an exec having taken place.

Revision 1.229 / (download) - annotate - [select for diffs], Thu Feb 10 13:31:55 2011 UTC (13 years ago) by pooka
Branch: MAIN
Changes since 1.228: +3 -3 lines
Diff to previous 1.228 (colored)

zalloc struct vmspace to avoid having one full of garbage

Revision 1.219.4.1 / (download) - annotate - [select for diffs], Tue Feb 8 16:20:04 2011 UTC (13 years ago) by bouyer
Branch: bouyer-quota2
Changes since 1.219: +55 -13 lines
Diff to previous 1.219 (colored)

Sync with HEAD

Revision 1.228 / (download) - annotate - [select for diffs], Thu Feb 3 11:01:51 2011 UTC (13 years ago) by pooka
Branch: MAIN
Changes since 1.227: +3 -2 lines
Diff to previous 1.227 (colored)

weakalias the "withsize" variant of rump_pub_etfs_register too

Revision 1.227 / (download) - annotate - [select for diffs], Sun Jan 30 16:31:42 2011 UTC (13 years, 1 month ago) by bouyer
Branch: MAIN
Changes since 1.226: +4 -3 lines
Diff to previous 1.226 (colored)

Move rumpuser_sp_fini() after the kernel has completed shuwdown
(and especially, after filesystems have been unmounted).
This way, rump.halt returns once the rump kernel is really out of the
game, which avoids races issues in test scripts using a rump kernel.
OK pooka@

Revision 1.226 / (download) - annotate - [select for diffs], Fri Jan 28 19:21:29 2011 UTC (13 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.225: +10 -6 lines
Diff to previous 1.225 (colored)

Pass the value of getprogname() from the client to the server and
record it in p_comm.  This is nice for things like sockstat, since
they now display the client command name:

pain-rustique:43:~> rump.sockstat
USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS
root     xulrunner- 16     0 tcp    192.168.2.114.65507   204.152.190.12.80
root     xulrunner- 16     1 tcp    192.168.2.114.65501   204.152.190.12.80
root     xulrunner- 16     2 tcp    192.168.2.114.65500   204.152.190.12.80
root     xulrunner- 16     3 tcp    192.168.2.114.65499   204.152.190.12.80
root     xulrunner- 16     5 tcp    192.168.2.114.65498   204.152.190.12.80
root     xulrunner- 16     6 tcp    192.168.2.114.65497   204.152.190.12.80
root     socket     62     0 tcp6   *.http                *.*
root     socket     62     1 tcp    *.http                *.*
root     socket     63     0 tcp6   *.81                  *.*
root     socket     63     1 tcp    *.81                  *.*

Revision 1.225 / (download) - annotate - [select for diffs], Fri Jan 28 18:48:21 2011 UTC (13 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.224: +2 -3 lines
Diff to previous 1.224 (colored)

Don't NULL out l_cpu, l_stat is the new rumpkernel way too.

Revision 1.224 / (download) - annotate - [select for diffs], Fri Jan 28 18:45:52 2011 UTC (13 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.223: +3 -2 lines
Diff to previous 1.223 (colored)

call procinit_sysctl to register the proc sysctl tree

Revision 1.223 / (download) - annotate - [select for diffs], Fri Jan 28 16:58:28 2011 UTC (13 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.222: +4 -4 lines
Diff to previous 1.222 (colored)

Some lwp-walkers expect the correct value for l_stat, so use a flag
in l_flag instead of l_stat for the purpose of flagging lwps in a
dying proc.

Revision 1.222 / (download) - annotate - [select for diffs], Thu Jan 27 17:36:27 2011 UTC (13 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.221: +34 -4 lines
Diff to previous 1.221 (colored)

Fix syscall name for compat syscalls.  Arguably makesyscalls.sh
should generate the right info, but it's easier to fix here now.

This fixes compat syscalls for rump servers with dynamically loaded
components.  Since the compat syscall revamp a little time ago e.g.
stat() didn't work on my system (which is 5.0-based) with e.g.
rump_server -lrumpvfs.  Static servers and non-compat syscalls
worked just fine, though, making this a little harder to spot that
the usual bug.

Revision 1.221 / (download) - annotate - [select for diffs], Sat Jan 22 18:33:25 2011 UTC (13 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.220: +3 -3 lines
Diff to previous 1.220 (colored)

inverse inversely incorrect comment

Revision 1.220 / (download) - annotate - [select for diffs], Sat Jan 22 13:41:22 2011 UTC (13 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.219: +9 -3 lines
Diff to previous 1.219 (colored)

In case sys_reboot() was called by a remote client, put the response
in the socket before we shut down.  This way the response to the
syscall travels to the caller and they know things worked correctly
instead of having to just assume.

Revision 1.219 / (download) - annotate - [select for diffs], Wed Jan 12 12:51:21 2011 UTC (13 years, 1 month ago) by pooka
Branch: MAIN
CVS Tags: jruoho-x86intr-base
Branch point for: jruoho-x86intr, bouyer-quota2
Changes since 1.218: +59 -2 lines
Diff to previous 1.218 (colored)

When the client and the rump kernel are the same host process, all
threads blocking in the kernel automatically exit when the process
exists.  However, for the sysproxy case this does not hold.
Typically it's ~harmless, but e.g. in the case of socket binding
following by poll it gets annoying.

Introduce sysproxy procexit, which wakes up all threads blocking
on a condition when a process's communication socket is closed.
The code is a little different from the regular kernel simply
because in a rump kernel l_mutex is not available at all times
(this is because scheduling happens on every kernel entry and exit,
and that path must be kept lockless for any reasonable performance).
Instead, use gating which makes sure all threads are either out of
the cv code or suspended in a well-known state.  Then, wake up the
threads and tell them to get the hell out of our galaxy.

Revision 1.218 / (download) - annotate - [select for diffs], Fri Jan 7 15:10:22 2011 UTC (13 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.217: +10 -3 lines
Diff to previous 1.217 (colored)

Avoid double init of tty_lock if rumpkern_tty is included.  LOCKDEBUG
does not tolerate double inits.

pointed out by njoly

Revision 1.217 / (download) - annotate - [select for diffs], Thu Jan 6 13:09:17 2011 UTC (13 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.216: +8 -2 lines
Diff to previous 1.216 (colored)

give the outside world some idea of if we have LOCKDEBUG or not

Revision 1.216 / (download) - annotate - [select for diffs], Thu Jan 6 11:22:55 2011 UTC (13 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.215: +6 -2 lines
Diff to previous 1.215 (colored)

Support LOCKDEBUG.  To use it, compile sys/rump with RUMP_LOCKDEBUG=yes.

requested by martin (sparc64 gdb cannot reliably produce a stack trace)

Revision 1.215 / (download) - annotate - [select for diffs], Tue Jan 4 16:23:36 2011 UTC (13 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.214: +2 -9 lines
Diff to previous 1.214 (colored)

Add SMP support for all architectures.

tested on sparc64 by martin

Revision 1.214 / (download) - annotate - [select for diffs], Sun Jan 2 12:52:25 2011 UTC (13 years, 1 month ago) by pooka
Branch: MAIN
CVS Tags: matt-mips64-premerge-20101231
Changes since 1.213: +6 -6 lines
Diff to previous 1.213 (colored)

There is a use case where preserving the parent's fd table is
relevant, so to accommodate that change rump_lwproc_newproc() to
rump_lwproc_rfork().  The new interface has the rfork() fd table
semantics.  The equivalent of rump_lwproc_newproc() is
rump_lwproc_rfork(RUMP_RFCFDG).

Revision 1.213 / (download) - annotate - [select for diffs], Thu Dec 30 16:46:32 2010 UTC (13 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.212: +31 -2 lines
Diff to previous 1.212 (colored)

Requery syscall handlers during rump kernel init.  This fixes
syscalls provided by a rump faction such as rumpvfs when the library
is not linked into the binary, but is dlopen()'d before calling
rump_init().
(it is illegal to dlopen() a faction after rump_init(), but syscalls
maybe be added the usual way with modules)

rump_server(1) -lstuff works now.

Revision 1.212 / (download) - annotate - [select for diffs], Thu Dec 16 12:38:20 2010 UTC (13 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.211: +3 -3 lines
Diff to previous 1.211 (colored)

Print a banner a connecting client.  The banner contains rump sp
protocol version, os name, os revision and machine.

Revision 1.211 / (download) - annotate - [select for diffs], Mon Dec 13 14:03:59 2010 UTC (13 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.210: +6 -2 lines
Diff to previous 1.210 (colored)

stubs to make life easier

Revision 1.210 / (download) - annotate - [select for diffs], Sun Dec 12 17:11:33 2010 UTC (13 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.209: +3 -2 lines
Diff to previous 1.209 (colored)

Call rumpuser_sp_fini() from cpu_reboot() to make sure sys_reboot
with RB_HALT does not hang.

Revision 1.209 / (download) - annotate - [select for diffs], Sun Dec 12 13:18:07 2010 UTC (13 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.208: +10 -5 lines
Diff to previous 1.208 (colored)

print a bit more diagnostics when halting

Revision 1.208 / (download) - annotate - [select for diffs], Wed Dec 1 14:59:38 2010 UTC (13 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.207: +3 -5 lines
Diff to previous 1.207 (colored)

Track lwp as the rumpuser mutex owner instead of pthread_t (this
is done in rumpuser for simplicity, since on the kernel side things
we assume we have only one pointer of space).  As a side-effect,
we can no longer know if the current thread is holding on to a
mutex locked without curlwp context (basically all mutexes inited
outside of mutex_init()).  The only thing that called rumpuser_mutex_held()
for a non-kmutex was the giant lock.  So, instead implement recursive
locking for the giant lock in the rump kernel and get rid of the
now-unused recursive pthread mutex in the hypercall interface.

Revision 1.207 / (download) - annotate - [select for diffs], Tue Nov 30 14:23:24 2010 UTC (13 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.206: +26 -9 lines
Diff to previous 1.206 (colored)

Require server to be explicitly initialized with rump_init_server(url).
Also, add rump_daemonize_begin() / rump_daemonize_end() to help
with the "can't daemon() after pthread_create()" problem.  Applications
could accomplish the same, but since it's such a common operation,
provide a little help.

Revision 1.206 / (download) - annotate - [select for diffs], Mon Nov 22 20:42:19 2010 UTC (13 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.205: +26 -11 lines
Diff to previous 1.205 (colored)

Support physio for remote processes.
==> add support for remote vmspace vmapbuf/vunmapbuf
  ==> add proper support for copyin/out_vmspace
    ==> add support for remote vmspace uvm_io
      ==> add support for non-curproc rumpuser_sp_copyin/out
        ==> store remote context in vm_map->pmap instead of
            pthread_specificdata

In short, makes read/write of most (all?) block devices work from
a remote rump client via rump syscalls.

Revision 1.205 / (download) - annotate - [select for diffs], Sun Nov 21 22:17:24 2010 UTC (13 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.204: +3 -3 lines
Diff to previous 1.204 (colored)

Encode smp-capability into the makefile so that it can be used to
avoid potential screwups.

Revision 1.204 / (download) - annotate - [select for diffs], Sun Nov 21 22:01:15 2010 UTC (13 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.203: +3 -3 lines
Diff to previous 1.203 (colored)

Fix situation where we try to configure >MAXCPUS cpus.

Revision 1.203 / (download) - annotate - [select for diffs], Sun Nov 21 17:34:11 2010 UTC (13 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.202: +7 -5 lines
Diff to previous 1.202 (colored)

Realize the >1yo comment above rump_reboot and retire them to make
room for sys_reboot.

Revision 1.202 / (download) - annotate - [select for diffs], Fri Nov 19 17:11:20 2010 UTC (13 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.201: +2 -4 lines
Diff to previous 1.201 (colored)

remove no longer necessary code

Revision 1.201 / (download) - annotate - [select for diffs], Fri Nov 19 17:06:56 2010 UTC (13 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.200: +12 -2 lines
Diff to previous 1.200 (colored)

Pass routines necessary for multithreaded operation down to rumpuser_sp.

Revision 1.200 / (download) - annotate - [select for diffs], Wed Nov 17 21:57:33 2010 UTC (13 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.199: +2 -11 lines
Diff to previous 1.199 (colored)

Remove unused rump_set_vmspace.  An equivalent needs to come back
later, though, but in its current form it's just unusable garbage.

Revision 1.199 / (download) - annotate - [select for diffs], Wed Nov 17 21:52:29 2010 UTC (13 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.198: +9 -9 lines
Diff to previous 1.198 (colored)

Provide a special rump_proxy_syscall for handling received proxy
syscalls and retire unused rump_syscall.

Revision 1.198 / (download) - annotate - [select for diffs], Wed Nov 17 19:54:09 2010 UTC (13 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.197: +4 -4 lines
Diff to previous 1.197 (colored)

cleanup some old garbage

Revision 1.197 / (download) - annotate - [select for diffs], Mon Nov 15 20:24:09 2010 UTC (13 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.196: +12 -11 lines
Diff to previous 1.196 (colored)

apply const

Revision 1.151.2.4 / (download) - annotate - [select for diffs], Sat Nov 6 08:08:51 2010 UTC (13 years, 3 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.151.2.3: +52 -52 lines
Diff to previous 1.151.2.3 (colored) to branchpoint 1.151 (colored) next main 1.152 (colored)

Sync with HEAD.

Revision 1.196 / (download) - annotate - [select for diffs], Thu Nov 4 20:54:07 2010 UTC (13 years, 3 months ago) by pooka
Branch: MAIN
CVS Tags: uebayasi-xip-base4
Changes since 1.195: +10 -32 lines
Diff to previous 1.195 (colored)

Refactor the sysproxy code so that rumpuser contains only the server side.

Revision 1.195 / (download) - annotate - [select for diffs], Mon Nov 1 13:55:20 2010 UTC (13 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.194: +4 -2 lines
Diff to previous 1.194 (colored)

Missed a few symbols in previous ...

Also, reorganize rumpuser header inclusion to make sure problem is
caught already by the compiler.

Revision 1.194 / (download) - annotate - [select for diffs], Mon Nov 1 13:49:10 2010 UTC (13 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.193: +9 -3 lines
Diff to previous 1.193 (colored)

Make librumpuser linkage once again free of librump.

problem pointed out by <he>

Revision 1.193 / (download) - annotate - [select for diffs], Fri Oct 29 15:32:24 2010 UTC (13 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.192: +17 -5 lines
Diff to previous 1.192 (colored)

Attach implicit threads to initproc instead of proc0.  This way
applications which alter, by purpose or by accident, the uid in an
implicit thread are don't affect kernel threads.

from discussion with njoly

Revision 1.192 / (download) - annotate - [select for diffs], Thu Oct 28 11:30:07 2010 UTC (13 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.191: +4 -3 lines
Diff to previous 1.191 (colored)

Count proc0 as uid 0's process.  Besides being the right thing to
do, this effectively allows changing the uid of proc0 without
running into KASSERT problems in uidinfo code (although I'm not
quite so sure changing proc0's uid is the right thing to do ...).

problem reported by njoly

Revision 1.191 / (download) - annotate - [select for diffs], Wed Oct 27 20:44:49 2010 UTC (13 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.190: +48 -31 lines
Diff to previous 1.190 (colored)

Start rework of system call proxying over socket ("sysproxy").
This incarnation is written in the user namespace as opposed to
the previous one which was done in kernel namespace.  Also, rump
does all the handshaking now instead of excepting an application
to come up with the user namespace socket.

There's still a lot to do, including making code "a bit" more
robust, actually running different clients in a different process
inside the kernel and splitting the client side library from librump.
I'm committing this now so that I don't lose it, plus it generally
works as long as you don't use it in unexcepted ways: i've tested
ifconfig(8), route(8), envstat(8) and sysctl(8).

Revision 1.190 / (download) - annotate - [select for diffs], Wed Oct 27 15:50:03 2010 UTC (13 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.189: +2 -18 lines
Diff to previous 1.189 (colored)

Remove old crud which is no longer used (since kern_proc).

Revision 1.189 / (download) - annotate - [select for diffs], Mon Oct 25 17:49:36 2010 UTC (13 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.188: +3 -3 lines
Diff to previous 1.188 (colored)

make printed string more accurate

Revision 1.151.2.3 / (download) - annotate - [select for diffs], Fri Oct 22 07:22:49 2010 UTC (13 years, 4 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.151.2.2: +34 -166 lines
Diff to previous 1.151.2.2 (colored) to branchpoint 1.151 (colored)

Sync with HEAD (-D20101022).

Revision 1.42.4.9 / (download) - annotate - [select for diffs], Sat Oct 9 03:32:43 2010 UTC (13 years, 4 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.42.4.8: +36 -168 lines
Diff to previous 1.42.4.8 (colored) to branchpoint 1.42 (colored) next main 1.43 (colored)

sync with head

Revision 1.188 / (download) - annotate - [select for diffs], Tue Sep 7 21:11:10 2010 UTC (13 years, 5 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-nfs-mp-base11, uebayasi-xip-base3
Changes since 1.187: +4 -2 lines
Diff to previous 1.187 (colored)

Make the Diabolical (Page)Daemon Director drain vfs buffers when
we are short of memory.

There are still some funnies left to iron out.  For example, with
a certain file system / memory size configuration it's still not
possible to create enough files to make the file system run out of
inodes before the kernel runs out of memory.  Also, with some other
configurations disk access slows down gargantually (though i'm sure
there are >0 buffers available).  Anyway, it ~works for now and
it's by no means worse than what it was before.

Revision 1.187 / (download) - annotate - [select for diffs], Tue Sep 7 18:25:38 2010 UTC (13 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.186: +3 -3 lines
Diff to previous 1.186 (colored)

Allocate softint vectors for the final number of CPUs, not the
number currently attached.  Deals with a SNAFU in my commit earlier
today which would cause softints established early to lack a
softint context on non-bootstrap CPUs.

Revision 1.186 / (download) - annotate - [select for diffs], Tue Sep 7 07:59:48 2010 UTC (13 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.185: +10 -4 lines
Diff to previous 1.185 (colored)

Attach only one CPU for the bootstrap phase.

Revision 1.185 / (download) - annotate - [select for diffs], Mon Sep 6 20:10:20 2010 UTC (13 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.184: +3 -2 lines
Diff to previous 1.184 (colored)

Use standard uvm aobj pager.  Most of the kernel aobj pager complexity
comes from swap handling, but that is included only with VMSWAP.

Revision 1.184 / (download) - annotate - [select for diffs], Wed Sep 1 19:37:58 2010 UTC (13 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.183: +21 -167 lines
Diff to previous 1.183 (colored)

Implement rump_lwproc: the new lwp/proc management routines for
rump.  These move the management of the pid/lwpid space from the
application into the kernel, make code more robust, and make it
possible to attach multiple lwp's to non-proc0 processes.

Revision 1.183 / (download) - annotate - [select for diffs], Mon Aug 30 10:49:40 2010 UTC (13 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.182: +5 -3 lines
Diff to previous 1.182 (colored)

* record proc's cred in p_cred too
* account procs for uids

Revision 1.182 / (download) - annotate - [select for diffs], Thu Aug 26 19:56:07 2010 UTC (13 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.181: +4 -2 lines
Diff to previous 1.181 (colored)

print one line of dmesg per cpu present

Revision 1.181 / (download) - annotate - [select for diffs], Mon Aug 23 14:00:40 2010 UTC (13 years, 6 months ago) by pgoyette
Branch: MAIN
Changes since 1.180: +3 -2 lines
Diff to previous 1.180 (colored)

Initialize the new kernconfig_lock for rump kernels before it can be used.

Should fix the rather massive breakage in the automated test runs, too.
Sorry for breaking rump.

Revision 1.151.2.2 / (download) - annotate - [select for diffs], Tue Aug 17 06:48:01 2010 UTC (13 years, 6 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.151.2.1: +62 -34 lines
Diff to previous 1.151.2.1 (colored) to branchpoint 1.151 (colored)

Sync with HEAD.

Revision 1.42.4.8 / (download) - annotate - [select for diffs], Wed Aug 11 22:55:07 2010 UTC (13 years, 6 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.42.4.7: +150 -47 lines
Diff to previous 1.42.4.7 (colored) to branchpoint 1.42 (colored)

sync with head.

Revision 1.180 / (download) - annotate - [select for diffs], Sun Jul 11 11:37:24 2010 UTC (13 years, 7 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-nfs-mp-base10, uebayasi-xip-base2
Changes since 1.179: +6 -2 lines
Diff to previous 1.179 (colored)

fd_hold() when creating new threads.  This makes the fd code use
multithreaded mode and actually work with a multithreaded process.

Revision 1.155.2.2 / (download) - annotate - [select for diffs], Sat Jul 3 01:20:02 2010 UTC (13 years, 8 months ago) by rmind
Branch: rmind-uvmplock
Changes since 1.155.2.1: +42 -34 lines
Diff to previous 1.155.2.1 (colored) to branchpoint 1.155 (colored)

sync with head

Revision 1.179 / (download) - annotate - [select for diffs], Sat Jun 12 07:13:54 2010 UTC (13 years, 8 months ago) by pooka
Branch: MAIN
Changes since 1.178: +7 -2 lines
Diff to previous 1.178 (colored)

Support rumpkern components and rumpkern components depending on vfs init.

Revision 1.178 / (download) - annotate - [select for diffs], Thu Jun 10 21:40:42 2010 UTC (13 years, 8 months ago) by pooka
Branch: MAIN
Changes since 1.177: +15 -33 lines
Diff to previous 1.177 (colored)

Use kern_proc.c instead of a collection of stubs.  But what we
really wanted from this commit was the support for proc_specificdata.

TODO: make creating a new process actually use kern_proc and
maybe even add an interface which starts a process with
"any pid you don't like"

Revision 1.177 / (download) - annotate - [select for diffs], Wed Jun 9 14:08:17 2010 UTC (13 years, 8 months ago) by pooka
Branch: MAIN
Changes since 1.176: +9 -2 lines
Diff to previous 1.176 (colored)

Version rumpuser ABI with a lightweight mechanism.

Revision 1.176 / (download) - annotate - [select for diffs], Wed Jun 9 13:51:02 2010 UTC (13 years, 8 months ago) by pooka
Branch: MAIN
Changes since 1.175: +4 -2 lines
Diff to previous 1.175 (colored)

initialize specificdata for lwp0 too

Revision 1.175 / (download) - annotate - [select for diffs], Thu Jun 3 10:56:20 2010 UTC (13 years, 8 months ago) by pooka
Branch: MAIN
Changes since 1.174: +12 -2 lines
Diff to previous 1.174 (colored)

Implement a sort-of pagedaemon: adjust all memory allocators to go
through an in-rumpkernel hypermemory allocator which knows it should
kick the pagedaemon and block in case ``waitok'' memory allocation
fails.

This allows us to recover from some out-of-memory situations.
Realworld'istically speaking (as opposed to whatever "should be"
theory), these OOM situations will happen extremely rarely if ever
when our hypervisor is a regular process.  Speculatively, this
should be useful for other types of hosts.

issues remaining:
 * the hypervisor does not know how to reclaim kernel memory (and
   for the reason I stated above, I'm not sure if it makes sense
   to teach the current implementation about that)
 * vfs memory (buffers, vm object pages etc.) is not reclaimed

Revision 1.174 / (download) - annotate - [select for diffs], Wed Jun 2 10:55:18 2010 UTC (13 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.173: +4 -3 lines
Diff to previous 1.173 (colored)

rumpvm_init -> uvm_init to get rid of local prototype.
no functional change

Revision 1.173 / (download) - annotate - [select for diffs], Mon May 31 23:18:33 2010 UTC (13 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.172: +3 -2 lines
Diff to previous 1.172 (colored)

Support mtsleep() without a biglocked sleeper (uvm uses this in
UVM_UNLOCK_AND_WAIT())

Revision 1.155.2.1 / (download) - annotate - [select for diffs], Sun May 30 05:18:06 2010 UTC (13 years, 9 months ago) by rmind
Branch: rmind-uvmplock
Changes since 1.155: +110 -19 lines
Diff to previous 1.155 (colored)

sync with head

Revision 1.172 / (download) - annotate - [select for diffs], Fri May 28 16:44:14 2010 UTC (13 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.171: +5 -4 lines
Diff to previous 1.171 (colored)

Improve the CPU scheduler for a host MP system with multithreaded
access.  The old scheduler had a global freelist which caused a
cache crisis with multiple host threads trying to schedule a virtual
CPU simultaneously.

The rump scheduler is different from a normal thread scheduler, so
it has different requirements.  First, we schedule a CPU for a
thread (which we get from the host scheduler) instead of scheduling
a thread onto a CPU.  Second, scheduling points are at every
entry/exit to/from the rump kernel, including (but not limited to)
syscall entry points and hypercalls.  This means scheduling happens
a lot more frequently than in a normal kernel.

For every lwp, cache the previously used CPU.  When scheduling,
attempt to reuse the same CPU.  If we get it, we can use it directly
without any memory barriers or expensive locks.  If the CPU is
taken, migrate.  Use a lock/wait only in the slowpath.  Be very
wary of walking the entire CPU array because that does not lead to
a happy cacher.

The migration algorithm could probably benefit from improved
heuristics and tuning.  Even as such, with the new scheduler an
application which has two threads making rlimit syscalls in a tight
loop experiences almost 400% speedup.  The exact speedup is difficult
to pinpoint, though, since the old scheduler caused very jittery
results due to cache contention.  Also, the rump version is now
70% faster than the counterpart which calls the host kernel.

Revision 1.171 / (download) - annotate - [select for diffs], Tue May 11 14:57:20 2010 UTC (13 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.170: +3 -2 lines
Diff to previous 1.170 (colored)

Initialize p_pgrp when creating a new process structure (and not
only for proc0).  This makes something work.  I just can't remember
what it was anymore.

Revision 1.170 / (download) - annotate - [select for diffs], Sat May 1 14:40:36 2010 UTC (13 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.169: +16 -2 lines
Diff to previous 1.169 (colored)

Add rump_printevcnts() which dumps values from all event counters.
(NOTE! it is run unscheduled for various experimentation etcetc. reasons)

Revision 1.151.2.1 / (download) - annotate - [select for diffs], Fri Apr 30 14:44:30 2010 UTC (13 years, 10 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.151: +148 -50 lines
Diff to previous 1.151 (colored)

Sync with HEAD.

Revision 1.169 / (download) - annotate - [select for diffs], Wed Apr 28 14:51:07 2010 UTC (13 years, 10 months ago) by pooka
Branch: MAIN
CVS Tags: uebayasi-xip-base1
Changes since 1.168: +4 -4 lines
Diff to previous 1.168 (colored)

Uncrack my brain, buggy let me !be.

In other words, make previous commit to this file actually work.
Funny how it's possible to fix things to not dump core and still
have them not work.

Revision 1.168 / (download) - annotate - [select for diffs], Wed Apr 28 14:23:57 2010 UTC (13 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.167: +3 -2 lines
Diff to previous 1.167 (colored)

Set l_sysent so that syscall autoload actually works instead of autocores.

Revision 1.167 / (download) - annotate - [select for diffs], Wed Apr 28 11:34:18 2010 UTC (13 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.166: +13 -3 lines
Diff to previous 1.166 (colored)

If RUMP_NCPU is set, use that for virtual CPU count instead of
host CPU count.

Revision 1.166 / (download) - annotate - [select for diffs], Wed Apr 28 00:43:16 2010 UTC (13 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.165: +10 -5 lines
Diff to previous 1.165 (colored)

Make number of virtual CPUs match number of host CPUs on NetBSD/x86 hosts.

Revision 1.165 / (download) - annotate - [select for diffs], Tue Apr 27 23:30:30 2010 UTC (13 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.164: +8 -2 lines
Diff to previous 1.164 (colored)

Fix multiple virtual cpu support.

... or at least on x86.  CPU_INFO_FOREACH() still isn't MI, and I
don't want to support 2^n different versions.

Revision 1.164 / (download) - annotate - [select for diffs], Mon Apr 26 20:10:23 2010 UTC (13 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.163: +3 -3 lines
Diff to previous 1.163 (colored)

Change machine from "rump" to MACHINE so that module_base goes
right.

Now, any guesses on how many archs this seemingly trivial change
will break the principal metric, i.e. The Build(tm)?  Keep the bets
coming in.

Revision 1.163 / (download) - annotate - [select for diffs], Thu Apr 22 07:10:47 2010 UTC (13 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.162: +2 -4 lines
Diff to previous 1.162 (colored)

more signal stuff to group.  no functional change.

Revision 1.162 / (download) - annotate - [select for diffs], Wed Apr 21 16:16:31 2010 UTC (13 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.161: +22 -4 lines
Diff to previous 1.161 (colored)

support kern_resource

Revision 1.161 / (download) - annotate - [select for diffs], Sat Apr 17 16:34:29 2010 UTC (13 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.160: +4 -7 lines
Diff to previous 1.160 (colored)

One emul is enough and since we need emul_netbsd, retire emul_rump.

Revision 1.160 / (download) - annotate - [select for diffs], Wed Apr 14 10:27:53 2010 UTC (13 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.159: +13 -2 lines
Diff to previous 1.159 (colored)

Include kern_tc and use a timecounter driver instead of homerolled
kern_tc implementation.

Revision 1.159 / (download) - annotate - [select for diffs], Mon Apr 12 22:17:23 2010 UTC (13 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.158: +5 -2 lines
Diff to previous 1.158 (colored)

support lwp specificdata

Revision 1.158 / (download) - annotate - [select for diffs], Wed Mar 31 18:56:07 2010 UTC (13 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.157: +23 -2 lines
Diff to previous 1.157 (colored)

Create kern.hostname sysctl node.  Using init_sysctl.c for creating
the nodes requires some weeding, so don't try to use it yet.

Revision 1.157 / (download) - annotate - [select for diffs], Wed Mar 31 12:16:15 2010 UTC (13 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.156: +7 -2 lines
Diff to previous 1.156 (colored)

set kernel boottime

Revision 1.156 / (download) - annotate - [select for diffs], Wed Mar 31 11:35:33 2010 UTC (13 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.155: +6 -6 lines
Diff to previous 1.155 (colored)

* initialize msgbuf
* for banner, use aprint_verbose instead of if (verbose) printf

Revision 1.42.4.7 / (download) - annotate - [select for diffs], Thu Mar 11 15:04:38 2010 UTC (13 years, 11 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.42.4.6: +262 -102 lines
Diff to previous 1.42.4.6 (colored) to branchpoint 1.42 (colored)

sync with head

Revision 1.155 / (download) - annotate - [select for diffs], Fri Mar 5 18:41:46 2010 UTC (13 years, 11 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-nfs-mp-base9
Branch point for: rmind-uvmplock
Changes since 1.154: +29 -36 lines
Diff to previous 1.154 (colored)

Use improved kernel module interfaces: instead of adding + loading
modules in bootstrap, just add them.  Load them later the same way
as the kernel does: module_init_class().

Change the signature of rump_module_init() to take a vector instead
of just one module.  All modules in a DSO should be init'd at the
same time because they might depend on each other, and code outside
the rump kernel cannot know which way.  (binary kernel modules are
still loaded with rump_sys_modctl() the usual way).

Revision 1.154 / (download) - annotate - [select for diffs], Mon Mar 1 13:12:20 2010 UTC (14 years ago) by pooka
Branch: MAIN
Changes since 1.153: +30 -2 lines
Diff to previous 1.153 (colored)

Introduce RUMP_COMPONENT.  It behaves mostly like a simplified
module which is linked into the kernel and cannot be unloaded.
The main purpose is to get the proper constructors run and create
any /dev nodes necessary for said component.  Once more of the
kernel (e.g. networking stack and device drivers) are converted to
MODULE and devfs pops up from somewhere, rump components can be
retired.

Revision 1.153 / (download) - annotate - [select for diffs], Fri Feb 26 15:23:20 2010 UTC (14 years ago) by pooka
Branch: MAIN
Changes since 1.152: +3 -3 lines
Diff to previous 1.152 (colored)

Rename rumpuser_dl_module_bootstrap() to rumpuser_dl_bootstrap(),
since it hasn't been involved only with modules for quite a while now.

Revision 1.152 / (download) - annotate - [select for diffs], Tue Feb 9 16:53:13 2010 UTC (14 years ago) by pooka
Branch: MAIN
Changes since 1.151: +4 -2 lines
Diff to previous 1.151 (colored)

Store l_name for kernel threads.

Revision 1.151 / (download) - annotate - [select for diffs], Fri Jan 15 20:39:46 2010 UTC (14 years, 1 month ago) by pooka
Branch: MAIN
CVS Tags: uebayasi-xip-base
Branch point for: uebayasi-xip
Changes since 1.150: +4 -13 lines
Diff to previous 1.150 (colored)

Accomplish messy stack with slightly less messy code.

Revision 1.150 / (download) - annotate - [select for diffs], Fri Jan 15 19:01:04 2010 UTC (14 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.149: +5 -3 lines
Diff to previous 1.149 (colored)

Use subr_percpu.c instead of homegrown implementation.  ...except
when using malloc(3)-relegated allocators (happens in production
e.g. on Linux), since subr_percpu.c uses vmem and i don't want to
reimplement vmem.

Revision 1.149 / (download) - annotate - [select for diffs], Wed Jan 13 00:07:40 2010 UTC (14 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.148: +7 -2 lines
Diff to previous 1.148 (colored)

If RUMP_VERBOSE is set in the env, set boothowto to AB_VERBOSE.

Revision 1.148 / (download) - annotate - [select for diffs], Wed Dec 16 20:59:04 2009 UTC (14 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.147: +7 -2 lines
Diff to previous 1.147 (colored)

print spammy banner in spammy bootstrap

Revision 1.147 / (download) - annotate - [select for diffs], Wed Dec 9 00:11:21 2009 UTC (14 years, 2 months ago) by pooka
Branch: MAIN
CVS Tags: matt-premerge-20091211
Changes since 1.146: +8 -20 lines
Diff to previous 1.146 (colored)

Get rid of useless stubs.

Revision 1.146 / (download) - annotate - [select for diffs], Sat Dec 5 13:01:31 2009 UTC (14 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.145: +2 -4 lines
Diff to previous 1.145 (colored)

Remove now-empty rump_sleepers_init()

Revision 1.145 / (download) - annotate - [select for diffs], Fri Dec 4 16:47:33 2009 UTC (14 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.144: +6 -3 lines
Diff to previous 1.144 (colored)

Provide the default_mapaddr method in default rump emul (since some
kernel callers want to use it).

Revision 1.144 / (download) - annotate - [select for diffs], Thu Dec 3 12:35:34 2009 UTC (14 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.143: +7 -6 lines
Diff to previous 1.143 (colored)

Decide it's not worth the fuss to have rumpfs as a module and just
hardcode attach into rump_vfs_init().  Saves us from a lot of
pingpong init bouncing from one component to another to get the order
right.

Revision 1.143 / (download) - annotate - [select for diffs], Tue Dec 1 09:50:51 2009 UTC (14 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.142: +16 -6 lines
Diff to previous 1.142 (colored)

Almost there for virtual CPU MP support:
* support bound kernel threads
* bind softint threads to specific virtual cpus
  + remove now-unnecessary locks from softint code

Now, if we only had MI CPU_INFO_FOREACH() .... (hi rmind ;)

Revision 1.142 / (download) - annotate - [select for diffs], Fri Nov 27 17:55:04 2009 UTC (14 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.141: +2 -7 lines
Diff to previous 1.141 (colored)

Remove no longer necessary vfs weak symbols.

Revision 1.141 / (download) - annotate - [select for diffs], Fri Nov 27 13:45:15 2009 UTC (14 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.140: +2 -4 lines
Diff to previous 1.140 (colored)

Now that Makefile.rump was changed and everything gets built in
update builds too, flip the allocator define to prefer the kernel
pool/kmem instead of malloc(3).  Use malloc(3) only if
RUMP_USE_UNREAL_ALLOCATORS is defined.

Revision 1.140 / (download) - annotate - [select for diffs], Thu Nov 26 20:58:51 2009 UTC (14 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.139: +8 -3 lines
Diff to previous 1.139 (colored)

For rumpfs, do mountroot instead of the bunch of homegrown hacks
currently there.  Still needs a little massage to get the kernel
interfaces right and avoid copypaste especially from main().

Also, move it a bit more into the direction of a real file system
(finally!) by giving it a vfsops.  Most ops are still unimplemented,
though.

Revision 1.139 / (download) - annotate - [select for diffs], Thu Nov 26 17:36:22 2009 UTC (14 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.138: +4 -2 lines
Diff to previous 1.138 (colored)

remember to call pipe_init()

Revision 1.138 / (download) - annotate - [select for diffs], Thu Nov 26 09:50:38 2009 UTC (14 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.137: +3 -3 lines
Diff to previous 1.137 (colored)

Build the kernel symbol table in rumpuser bootstrap and feed it to
the rump kernel.  After this change it is possible to use the
in-kernel linker and rump_sys_modctl() to load kernel modules at
runtime.

Previously loading modules at runtime was possible only through
using the host system ld.so.  Note that it is still preferred to
use shared libs when possible, since they are PIC and n virtual
kernels will only require one copy of r/o segments.  However, when
there is no access to source code, a binary kernel module is the
only thing available ...

Revision 1.137 / (download) - annotate - [select for diffs], Thu Nov 26 09:20:07 2009 UTC (14 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.136: +24 -2 lines
Diff to previous 1.136 (colored)

Add rump_kernelfsym_load(), which loads the kernel symbol table.

Revision 1.136 / (download) - annotate - [select for diffs], Tue Nov 10 17:02:36 2009 UTC (14 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.135: +6 -2 lines
Diff to previous 1.135 (colored)

init uvm readahead

Revision 1.135 / (download) - annotate - [select for diffs], Fri Nov 6 15:22:33 2009 UTC (14 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.134: +4 -4 lines
Diff to previous 1.134 (colored)

account creds for processes, not lwp's

Revision 1.134 / (download) - annotate - [select for diffs], Thu Nov 5 14:10:53 2009 UTC (14 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.133: +22 -5 lines
Diff to previous 1.133 (colored)

enqueue loaded modules and prevent duplicates

Revision 1.133 / (download) - annotate - [select for diffs], Wed Nov 4 13:32:39 2009 UTC (14 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.132: +4 -2 lines
Diff to previous 1.132 (colored)

Use kern_mutex_obj.c directly instead of copypasting code.

Revision 1.132 / (download) - annotate - [select for diffs], Tue Nov 3 20:25:31 2009 UTC (14 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.131: +3 -2 lines
Diff to previous 1.131 (colored)

Weak aliazeize usermount_common_policy() to uncouple rumpkern
linkage from rumpvfs once again after the secmodel changes.
(temp solution, should find a better one)

Revision 1.131 / (download) - annotate - [select for diffs], Tue Nov 3 20:22:33 2009 UTC (14 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.130: +12 -4 lines
Diff to previous 1.130 (colored)

Reorder enough of lwp/cpu initialization to have enough context
for pool/kmem init to work again with the stock versions (as opposed
to rump malloc relegations).

Revision 1.130 / (download) - annotate - [select for diffs], Tue Nov 3 18:22:16 2009 UTC (14 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.129: +16 -2 lines
Diff to previous 1.129 (colored)

Add rump_boot_set/gethowto(), which can be called before rump_init()
to control .... *tadaa* boothowto.

Revision 1.129 / (download) - annotate - [select for diffs], Sat Oct 24 11:36:59 2009 UTC (14 years, 4 months ago) by pooka
Branch: MAIN
CVS Tags: jym-xensuspend-nbase
Changes since 1.128: +3 -7 lines
Diff to previous 1.128 (colored)

Pass modinit to rumpuser_dl_module_bootstrap() as a function pointer
to avoid linker rump -> rumpuser -> rump dependency which is annoying
redundancy in static linking.

Revision 1.128 / (download) - annotate - [select for diffs], Tue Oct 20 10:42:41 2009 UTC (14 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.127: +2 -3 lines
Diff to previous 1.127 (colored)

Actually, put uvm_readahead into rumpkern, since while it's
technically vfs stuff, sys_descrip depends on it and readahead
itself uses only the pager interface.

Revision 1.127 / (download) - annotate - [select for diffs], Mon Oct 19 22:35:11 2009 UTC (14 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.126: +3 -2 lines
Diff to previous 1.126 (colored)

__weak_alias for uvm_readahead() since it's used also in sys_descrip.c

Revision 1.126 / (download) - annotate - [select for diffs], Fri Oct 16 00:14:53 2009 UTC (14 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.125: +10 -7 lines
Diff to previous 1.125 (colored)

Include sys_select.c for proper select()/poll() support.

Revision 1.125 / (download) - annotate - [select for diffs], Thu Oct 15 16:39:22 2009 UTC (14 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.124: +51 -47 lines
Diff to previous 1.124 (colored)

Give lwp usage some much-needed love: stop treating lwp0 as the
all-sink and make sure each separate thread in rump has its own
lwp.  Happy-go-lucky callers will get scheduled a temporary lwp
on entry, while true lwp connoisseurs may request a stable lwp
for their purposes.  Some more love may be required later down the
road, but for now different threads will stepping on each others
toes.

Revision 1.124 / (download) - annotate - [select for diffs], Thu Oct 15 00:28:46 2009 UTC (14 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.123: +35 -11 lines
Diff to previous 1.123 (colored)

Add initial work on a rump virtual cpu scheduler.  This is necessary
for kernel code which has been written to avoid MP contention by
using cpu-local storage (most prominently, select and pool_cache).

Instead of always assuming rump_cpu, the scheduler must now be run
(and unrun) on all entry points into rump.  Likewise, rumpuser
unruns and re-runs the scheduler around each potentially blocking
operation.  As an optimization, I modified some locking primitives
to try to get the lock without blocking before releasing the cpu.

Also, ltsleep was modified to assume that it is never called without
the biglock held and made to use the biglock as the sleep interlock.
Otherwise there is just too much drama with deadlocks.  If some
kernel code wants to call ltsleep without the biglock, then, *snif*,
it's no longer supported and rump and should be modified to support
newstyle locks anyway.

Revision 1.123 / (download) - annotate - [select for diffs], Wed Oct 14 18:18:53 2009 UTC (14 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.122: +26 -26 lines
Diff to previous 1.122 (colored)

"rumppriv" goes back to "rump" per internal interface naming change.

Revision 1.122 / (download) - annotate - [select for diffs], Wed Oct 14 17:29:19 2009 UTC (14 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.121: +26 -35 lines
Diff to previous 1.121 (colored)

Adjust rump sources for external/internal interfaces.
No functional change.

Revision 1.121 / (download) - annotate - [select for diffs], Fri Oct 9 14:41:36 2009 UTC (14 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.120: +38 -4 lines
Diff to previous 1.120 (colored)

Provide an interface for reboot.

Revision 1.120 / (download) - annotate - [select for diffs], Thu Oct 8 00:47:47 2009 UTC (14 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.119: +14 -4 lines
Diff to previous 1.119 (colored)

Seems like module loading code is tasked with calling secmodel_register()
these days ...

Revision 1.119 / (download) - annotate - [select for diffs], Thu Oct 8 00:36:56 2009 UTC (14 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.118: +2 -3 lines
Diff to previous 1.118 (colored)

remove extraneous call to secmodel_suser_start()

Revision 1.118 / (download) - annotate - [select for diffs], Mon Oct 5 09:09:29 2009 UTC (14 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.117: +3 -2 lines
Diff to previous 1.117 (colored)

set l_cpu for lwp0

Revision 1.117 / (download) - annotate - [select for diffs], Fri Oct 2 18:50:15 2009 UTC (14 years, 5 months ago) by elad
Branch: MAIN
Changes since 1.116: +4 -4 lines
Diff to previous 1.116 (colored)

First part of secmodel cleanup and other misc. changes:

  - Separate the suser part of the bsd44 secmodel into its own secmodel
    and directory, pending even more cleanups. For revision history
    purposes, the original location of the files was

        src/sys/secmodel/bsd44/secmodel_bsd44_suser.c
        src/sys/secmodel/bsd44/suser.h

  - Add a man-page for secmodel_suser(9) and update the one for
    secmodel_bsd44(9).

  - Add a "secmodel" module class and use it. Userland program and
    documentation updated.

  - Manage secmodel count (nsecmodels) through the module framework.
    This eliminates the need for secmodel_{,de}register() calls in
    secmodel code.

  - Prepare for secmodel modularization by adding relevant module bits.
    The secmodels don't allow auto unload. The bsd44 secmodel depends
    on the suser and securelevel secmodels. The overlay secmodel depends
    on the bsd44 secmodel. As the module class is only cosmetic, and to
    prevent ambiguity, the bsd44 and overlay secmodels are prefixed with
    "secmodel_".

  - Adapt the overlay secmodel to recent changes (mainly vnode scope).

  - Stop using link-sets for the sysctl node(s) creation.

  - Keep sysctl variables under nodes of their relevant secmodels. In
    other words, don't create duplicates for the suser/securelevel
    secmodels under the bsd44 secmodel, as the latter is merely used
    for "grouping".

  - For the suser and securelevel secmodels, "advertise presence" in
    relevant sysctl nodes (sysctl.security.models.{suser,securelevel}).

  - Get rid of the LKM preprocessor stuff.

  - As secmodels are now modules, there's no need for an explicit call
    to secmodel_start(); it's handled by the module framework. That
    said, the module framework was adjusted to properly load secmodels
    early during system startup.

  - Adapt rump to changes: Instead of using empty stubs for securelevel,
    simply use the suser secmodel. Also replace secmodel_start() with a
    call to secmodel_suser_start().

  - 5.99.20.

Testing was done on i386 ("release" build). Spearated module_init()
changes were tested on sparc and sparc64 as well by martin@ (thanks!).

Mailing list reference:

	http://mail-index.netbsd.org/tech-kern/2009/09/25/msg006135.html

Revision 1.116 / (download) - annotate - [select for diffs], Thu Sep 24 21:30:42 2009 UTC (14 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.115: +4 -2 lines
Diff to previous 1.115 (colored)

Load modules from all components which are linked into a rump binary
with -lrumpcomponent.  Previously only the first library component
containing a module would get loaded automatically.

Revision 1.115 / (download) - annotate - [select for diffs], Wed Sep 16 15:23:05 2009 UTC (14 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.114: +5 -3 lines
Diff to previous 1.114 (colored)

Replace a large number of link set based sysctl node creations with
calls from subsystem constructors.  Benefits both future kernel
modules and rump.

no change to sysctl nodes on i386/MONOLITHIC & build tested i386/ALL

Revision 1.42.4.6 / (download) - annotate - [select for diffs], Wed Sep 16 13:38:05 2009 UTC (14 years, 5 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.42.4.5: +15 -3 lines
Diff to previous 1.42.4.5 (colored) to branchpoint 1.42 (colored)

sync with head

Revision 1.114 / (download) - annotate - [select for diffs], Sun Sep 13 19:09:13 2009 UTC (14 years, 5 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-nfs-mp-base8
Changes since 1.113: +5 -2 lines
Diff to previous 1.113 (colored)

call prop_kern_init()

Revision 1.113 / (download) - annotate - [select for diffs], Tue Sep 8 20:10:44 2009 UTC (14 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.112: +6 -2 lines
Diff to previous 1.112 (colored)

Add a few weak symbols for places where the kernel module boundaries
are not as perfect as theory.

Revision 1.112 / (download) - annotate - [select for diffs], Sun Sep 6 20:54:19 2009 UTC (14 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.111: +6 -3 lines
Diff to previous 1.111 (colored)

Run rump_dev_init() where available.

Revision 1.111 / (download) - annotate - [select for diffs], Fri Sep 4 12:27:09 2009 UTC (14 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.110: +4 -2 lines
Diff to previous 1.110 (colored)

allocate p_lock for virtual processes

Revision 1.42.4.5 / (download) - annotate - [select for diffs], Wed Aug 19 18:48:29 2009 UTC (14 years, 6 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.42.4.4: +3 -3 lines
Diff to previous 1.42.4.4 (colored) to branchpoint 1.42 (colored)

sync with head.

Revision 1.93.2.2 / (download) - annotate - [select for diffs], Thu Jul 23 23:32:54 2009 UTC (14 years, 7 months ago) by jym
Branch: jym-xensuspend
Changes since 1.93.2.1: +10 -3 lines
Diff to previous 1.93.2.1 (colored) next main 1.94 (colored)

Sync with HEAD.

Revision 1.110 / (download) - annotate - [select for diffs], Tue Jul 21 00:33:28 2009 UTC (14 years, 7 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-nfs-mp-base7, jymxensuspend-base
Changes since 1.109: +3 -3 lines
Diff to previous 1.109 (colored)

the consumers expect the aiodone workqueue to be mpsafe.  make it so.

Revision 1.42.4.4 / (download) - annotate - [select for diffs], Sat Jun 20 07:20:35 2009 UTC (14 years, 8 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.42.4.3: +9 -2 lines
Diff to previous 1.42.4.3 (colored) to branchpoint 1.42 (colored)

sync with head

Revision 1.109 / (download) - annotate - [select for diffs], Fri May 22 08:34:15 2009 UTC (14 years, 9 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-nfs-mp-base6, yamt-nfs-mp-base5
Changes since 1.108: +9 -2 lines
Diff to previous 1.108 (colored)

Add rump_getversion(), which returns the version of NetBSD for the
rump kernel.

Revision 1.42.4.3 / (download) - annotate - [select for diffs], Sat May 16 10:41:52 2009 UTC (14 years, 9 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.42.4.2: +12 -2 lines
Diff to previous 1.42.4.2 (colored) to branchpoint 1.42 (colored)

sync with head

Revision 1.93.2.1 / (download) - annotate - [select for diffs], Wed May 13 17:22:57 2009 UTC (14 years, 9 months ago) by jym
Branch: jym-xensuspend
Changes since 1.93: +159 -23 lines
Diff to previous 1.93 (colored)

Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.

Revision 1.108 / (download) - annotate - [select for diffs], Thu May 7 16:04:25 2009 UTC (14 years, 9 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-nfs-mp-base4, jym-xensuspend-base
Changes since 1.107: +12 -2 lines
Diff to previous 1.107 (colored)

Add rump_set_curlwp() for context switch to an existing lwp/proc.

Revision 1.42.4.2 / (download) - annotate - [select for diffs], Mon May 4 08:14:29 2009 UTC (14 years, 9 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.42.4.1: +316 -501 lines
Diff to previous 1.42.4.1 (colored) to branchpoint 1.42 (colored)

sync with head.

Revision 1.107 / (download) - annotate - [select for diffs], Sun May 3 17:09:49 2009 UTC (14 years, 10 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-nfs-mp-base3
Changes since 1.106: +4 -4 lines
Diff to previous 1.106 (colored)

Rename rump_cred_destroy() to rump_cred_put() -- they've been
refcounted since forever now.

Revision 1.106 / (download) - annotate - [select for diffs], Sat May 2 15:20:08 2009 UTC (14 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.105: +12 -5 lines
Diff to previous 1.105 (colored)

Since rump_module_load() doesn't actually load the module, change
the name to rump_module_init().  Also, adjust the signature to take
a direct pointer to modinfo and allow passing of props.  Finally,
provide rump_module_fini().

Revision 1.105 / (download) - annotate - [select for diffs], Thu Apr 30 16:59:32 2009 UTC (14 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.104: +32 -2 lines
Diff to previous 1.104 (colored)

Stir up the stack a bit to help arc4random() decide on a more
"random" seed.  This is a quick hack, I'll play games with rnd(9)
later (no nethack).

Revision 1.104 / (download) - annotate - [select for diffs], Wed Apr 29 17:51:47 2009 UTC (14 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.103: +35 -5 lines
Diff to previous 1.103 (colored)

Add proof-of-concept code for enabling system calls to rump virtual
kernels running in other processes on the same machine or on an
entirely different host.  I wrote this a while ago and am now
committing it mainly to avoid losing it.  It works, but could do
with a little tuning here and there.

What this will hopefully eventually buy us is the ability to use
standard userland tools to configure rump kernels, e.g. ifconfig(8)
and route(8) could be used to configure the networking stack provided
by a rump kernel.  Also some distributed OS implications may apply.

fun fact: a system call which just does copyin/copyout takes >1000x
longer when made over the LAN as compared to when made on the same
machine.

Revision 1.103 / (download) - annotate - [select for diffs], Wed Apr 29 15:49:28 2009 UTC (14 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.102: +3 -2 lines
Diff to previous 1.102 (colored)

include proc0 in allproc

Revision 1.72.2.3 / (download) - annotate - [select for diffs], Tue Apr 28 07:37:51 2009 UTC (14 years, 10 months ago) by skrll
Branch: nick-hppapmap
Changes since 1.72.2.2: +19 -9 lines
Diff to previous 1.72.2.2 (colored) to branchpoint 1.72 (colored) next main 1.73 (colored)

Sync with HEAD.

Revision 1.102 / (download) - annotate - [select for diffs], Fri Apr 24 13:27:03 2009 UTC (14 years, 10 months ago) by pooka
Branch: MAIN
CVS Tags: nick-hppapmap-base4, nick-hppapmap-base3, nick-hppapmap-base
Changes since 1.101: +4 -4 lines
Diff to previous 1.101 (colored)

* init pool linksets, makes proplib work.  reported by Arnaud Ysmal.
  (linksets, sigh)
* reduce #ifdef for RUMP_USE_REAL_ALLOCATORS

Revision 1.101 / (download) - annotate - [select for diffs], Thu Apr 16 14:07:18 2009 UTC (14 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.100: +8 -2 lines
Diff to previous 1.100 (colored)

When I switched to real kauth, I forgot to include a secmodel.
Fix this oversight by including bsd44.  Makes permissions for p2k
work again.

Revision 1.100 / (download) - annotate - [select for diffs], Sun Mar 29 18:22:08 2009 UTC (14 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.99: +4 -2 lines
Diff to previous 1.99 (colored)

include subr_evcnt

Revision 1.99 / (download) - annotate - [select for diffs], Thu Mar 19 09:14:37 2009 UTC (14 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.98: +3 -3 lines
Diff to previous 1.98 (colored)

Make it possible to mount a file system through the mount() system
call in addition to the old rump_mnt_mount().  Some issues remain
(but require more deeprooted changes):
* it is possible to mount only to /
* unmount needs MNT_FORCE due to the new fs being root and having
  a bonus reference
* cwdi is not set (since there is no concept of a process)

Revision 1.98 / (download) - annotate - [select for diffs], Wed Mar 18 18:00:38 2009 UTC (14 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.97: +4 -2 lines
Diff to previous 1.97 (colored)

Remember to kqueue_init() too so that non-timer events work.

Revision 1.97 / (download) - annotate - [select for diffs], Wed Mar 18 10:22:44 2009 UTC (14 years, 11 months ago) by cegger
Branch: MAIN
Changes since 1.96: +6 -6 lines
Diff to previous 1.96 (colored)

Ansify function definitions w/o arguments. Generated with sed.

Revision 1.72.2.2 / (download) - annotate - [select for diffs], Tue Mar 3 18:34:07 2009 UTC (15 years ago) by skrll
Branch: nick-hppapmap
Changes since 1.72.2.1: +74 -49 lines
Diff to previous 1.72.2.1 (colored) to branchpoint 1.72 (colored)

Sync with HEAD.

Revision 1.96 / (download) - annotate - [select for diffs], Fri Feb 20 18:08:12 2009 UTC (15 years ago) by pooka
Branch: MAIN
CVS Tags: nick-hppapmap-base2
Changes since 1.95: +3 -2 lines
Diff to previous 1.95 (colored)

need sys/syscall.h

Revision 1.95 / (download) - annotate - [select for diffs], Fri Feb 20 17:58:22 2009 UTC (15 years ago) by pooka
Branch: MAIN
Changes since 1.94: +39 -2 lines
Diff to previous 1.94 (colored)

Add local syscall proxy as the default.

Revision 1.94 / (download) - annotate - [select for diffs], Thu Feb 12 14:46:58 2009 UTC (15 years ago) by pooka
Branch: MAIN
Changes since 1.93: +18 -8 lines
Diff to previous 1.93 (colored)

Use p_nlwpid to store the next lwpid location.

Revision 1.93 / (download) - annotate - [select for diffs], Fri Feb 6 20:01:41 2009 UTC (15 years ago) by pooka
Branch: MAIN
Branch point for: jym-xensuspend
Changes since 1.92: +2 -40 lines
Diff to previous 1.92 (colored)

Rip out the rwlock spl emulation code.  It never did anything useful
except keep my feet warm by consuming an insane amount of cpu
cycles -- in rump our current "cpu" context is never interrupted
& we have MULTIPROCESSOR.

(itch i'm scratching: it made the networking stack 10-20% slower.
this is one of the places where fast code actually matters)

Revision 1.92 / (download) - annotate - [select for diffs], Fri Feb 6 19:49:13 2009 UTC (15 years ago) by pooka
Branch: MAIN
Changes since 1.91: +8 -2 lines
Diff to previous 1.91 (colored)

Add weak alias stubs for a few vfs routines used by the module code -
this allows us to link programs with only rumpkern and rumpnet again.

Revision 1.91 / (download) - annotate - [select for diffs], Mon Jan 26 14:41:28 2009 UTC (15 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.90: +3 -2 lines
Diff to previous 1.90 (colored)

allocate proc_lock

Revision 1.90 / (download) - annotate - [select for diffs], Mon Jan 26 14:35:50 2009 UTC (15 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.89: +3 -3 lines
Diff to previous 1.89 (colored)

Init pool subsystem iff RUMP_USE_REAL_ALLOCATORS is defined.

Revision 1.89 / (download) - annotate - [select for diffs], Fri Jan 23 13:14:17 2009 UTC (15 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.88: +13 -5 lines
Diff to previous 1.88 (colored)

Add a compile-time option to use kmem/vmem/pools from the kernel
sources instead of homegrown allocators.  Default to "on", even
though they appear to be a few percent slower at least on short
jobs (e.g. untar to tmpfs).

Revision 1.72.2.1 / (download) - annotate - [select for diffs], Mon Jan 19 13:20:25 2009 UTC (15 years, 1 month ago) by skrll
Branch: nick-hppapmap
Changes since 1.72: +75 -509 lines
Diff to previous 1.72 (colored)

Sync with HEAD.

Revision 1.35.6.6 / (download) - annotate - [select for diffs], Sat Jan 17 13:29:36 2009 UTC (15 years, 1 month ago) by mjf
Branch: mjf-devfs2
Changes since 1.35.6.5: +112 -502 lines
Diff to previous 1.35.6.5 (colored) to branchpoint 1.35 (colored) next main 1.36 (colored)

Sync with HEAD.

Revision 1.88 / (download) - annotate - [select for diffs], Tue Jan 13 02:03:13 2009 UTC (15 years, 1 month ago) by pooka
Branch: MAIN
CVS Tags: mjf-devfs2-base
Changes since 1.87: +2 -7 lines
Diff to previous 1.87 (colored)

misc cleanup, mainly header polish

Revision 1.87 / (download) - annotate - [select for diffs], Tue Jan 13 01:57:35 2009 UTC (15 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.86: +5 -3 lines
Diff to previous 1.86 (colored)

Implement block I/O as a real block driver instead of a hacked copy
of specfs.  That was easier years ago when rump didn't support
devices, but brings no gain now.  This allows us to include the
real specfs in rump.

Revision 1.86 / (download) - annotate - [select for diffs], Sun Jan 11 16:19:35 2009 UTC (15 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.85: +6 -6 lines
Diff to previous 1.85 (colored)

__rump_unavailable -> rump__unavailable

Revision 1.85 / (download) - annotate - [select for diffs], Thu Jan 8 03:27:10 2009 UTC (15 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.84: +3 -3 lines
Diff to previous 1.84 (colored)

Put syspuffs_glueinit in the rump kernel namespace.

Revision 1.84 / (download) - annotate - [select for diffs], Wed Jan 7 22:50:08 2009 UTC (15 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.83: +3 -3 lines
Diff to previous 1.83 (colored)

Explicitly pass a pointer to the kernel lock/unlock routines in
rumpuser init instead of magically relying on the linker giving us
the symbols.

Revision 1.83 / (download) - annotate - [select for diffs], Wed Jan 7 21:12:30 2009 UTC (15 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.82: +3 -3 lines
Diff to previous 1.82 (colored)

_rump_init() - > rump__init()

Revision 1.82 / (download) - annotate - [select for diffs], Wed Jan 7 21:11:19 2009 UTC (15 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.81: +4 -2 lines
Diff to previous 1.81 (colored)

ksyms_init()

Revision 1.81 / (download) - annotate - [select for diffs], Fri Jan 2 02:54:13 2009 UTC (15 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.80: +19 -2 lines
Diff to previous 1.80 (colored)

Include kernel printf routines in rump instead of relying on the
magic libc symbol.  This also allows to bid farewell to subr_prf2.c
and merge the contents back to subr_prf.c.  The host kernel bridging
is now done via rumpuser_putchar().

Revision 1.80 / (download) - annotate - [select for diffs], Thu Jan 1 19:07:43 2009 UTC (15 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.79: +4 -4 lines
Diff to previous 1.79 (colored)

Define MODULAR for rump core components.  This enables module
loading via the kernel module framework (instead of dlopen()).
For now it only works on amd64 and i386, but for the rest it should
just be a matter of including the relevant kobj_machdep.c modules
from the kernel sources.

Revision 1.79 / (download) - annotate - [select for diffs], Mon Dec 29 17:45:55 2008 UTC (15 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.78: +4 -2 lines
Diff to previous 1.78 (colored)

include subr_devsw in rumpkern

Revision 1.78 / (download) - annotate - [select for diffs], Thu Dec 18 00:24:12 2008 UTC (15 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.77: +4 -1 lines
Diff to previous 1.77 (colored)

__KERNEL_RCSID

Revision 1.77 / (download) - annotate - [select for diffs], Sat Dec 13 15:37:13 2008 UTC (15 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.76: +3 -3 lines
Diff to previous 1.76 (colored)

Get rid of local machine/{mutex,rwlock}.h files by treating the
object storage as a single pointer (all archs have at least one
uintptr_t in the objects).

(forgot to commmit with others)

Revision 1.47.4.2 / (download) - annotate - [select for diffs], Sat Dec 13 01:15:34 2008 UTC (15 years, 2 months ago) by haad
Branch: haad-dm
Changes since 1.47.4.1: +41 -496 lines
Diff to previous 1.47.4.1 (colored) to branchpoint 1.47 (colored) next main 1.48 (colored)

Update haad-dm branch to haad-dm-base2.

Revision 1.76 / (download) - annotate - [select for diffs], Fri Nov 21 06:09:51 2008 UTC (15 years, 3 months ago) by pooka
Branch: MAIN
CVS Tags: haad-nbase2, haad-dm-base2, haad-dm-base, ad-audiomp2-base, ad-audiomp2
Changes since 1.75: +11 -1 lines
Diff to previous 1.75 (colored)

rump_vfs_load() is really rump_module_load(), so call it that and
move it from rumpvfs to rumpkern.

Revision 1.75 / (download) - annotate - [select for diffs], Wed Nov 19 14:10:49 2008 UTC (15 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.74: +31 -468 lines
Diff to previous 1.74 (colored)

Split vfs out of rumpkern into rumpvfs.  Non-fs rumps no longer
include the file system code.  File system rumps explicitly need
to include rumpvfs from now on.

Revision 1.74 / (download) - annotate - [select for diffs], Tue Nov 18 12:39:35 2008 UTC (15 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.73: +2 -1 lines
Diff to previous 1.73 (colored)

Pass biodone() to rumpuser as a callback instead of hardcoding it.
Also, explicitly init rumpuser async io thread.

Revision 1.73 / (download) - annotate - [select for diffs], Mon Nov 17 13:24:14 2008 UTC (15 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.72: +1 -30 lines
Diff to previous 1.72 (colored)

Remove rump_vp locking interfaces, use RUMP_VOP instead.

Revision 1.47.4.1 / (download) - annotate - [select for diffs], Sun Oct 19 22:18:06 2008 UTC (15 years, 4 months ago) by haad
Branch: haad-dm
Changes since 1.47: +187 -40 lines
Diff to previous 1.47 (colored)

Sync with HEAD.

Revision 1.72 / (download) - annotate - [select for diffs], Wed Oct 15 20:15:37 2008 UTC (15 years, 4 months ago) by pooka
Branch: MAIN
CVS Tags: netbsd-5-base, netbsd-5-2-RELEASE, netbsd-5-2-RC1, netbsd-5-2-3-RELEASE, netbsd-5-2-2-RELEASE, netbsd-5-2-1-RELEASE, netbsd-5-2, netbsd-5-1-RELEASE, netbsd-5-1-RC4, netbsd-5-1-RC3, netbsd-5-1-RC2, netbsd-5-1-RC1, netbsd-5-1-5-RELEASE, netbsd-5-1-4-RELEASE, netbsd-5-1-3-RELEASE, netbsd-5-1-2-RELEASE, netbsd-5-1-1-RELEASE, netbsd-5-1, netbsd-5-0-RELEASE, netbsd-5-0-RC4, netbsd-5-0-RC3, netbsd-5-0-RC2, netbsd-5-0-RC1, netbsd-5-0-2-RELEASE, netbsd-5-0-1-RELEASE, netbsd-5-0, netbsd-5, matt-nb5-pq3-base, matt-nb5-pq3, matt-nb5-mips64-u2-k2-k4-k7-k8-k9, matt-nb5-mips64-u1-k1-k5, matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-premerge-20091211, matt-nb5-mips64-k15, matt-nb5-mips64, matt-nb4-mips64-k7-u2a-k9b, matt-mips64-base2, haad-dm-base1
Branch point for: nick-hppapmap
Changes since 1.71: +3 -1 lines
Diff to previous 1.71 (colored)

One more init I happened to forget: iostat_init()

Revision 1.71 / (download) - annotate - [select for diffs], Wed Oct 15 13:04:26 2008 UTC (15 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.70: +16 -2 lines
Diff to previous 1.70 (colored)

Add support bits necessary for rumpnet functionality.

Revision 1.70 / (download) - annotate - [select for diffs], Mon Oct 13 19:41:13 2008 UTC (15 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.69: +2 -1 lines
Diff to previous 1.69 (colored)

award unlimited sbsize rlimit

Revision 1.69 / (download) - annotate - [select for diffs], Mon Oct 13 18:17:07 2008 UTC (15 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.68: +1 -8 lines
Diff to previous 1.68 (colored)

rump_enosys() is autogenerated into rump_syscalls (makes things
actually work)

Revision 1.68 / (download) - annotate - [select for diffs], Mon Oct 13 18:03:53 2008 UTC (15 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.67: +3 -1 lines
Diff to previous 1.67 (colored)

Add uid_init() I managed to miss earlier.

Revision 1.67 / (download) - annotate - [select for diffs], Mon Oct 13 16:20:09 2008 UTC (15 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.66: +8 -2 lines
Diff to previous 1.66 (colored)

add rump_enosys()

Revision 1.66 / (download) - annotate - [select for diffs], Sun Oct 12 18:52:56 2008 UTC (15 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.65: +4 -1 lines
Diff to previous 1.65 (colored)

Add callout inits which I managed to not commit earlier with the
rest of the callout stuff.

problem noticed by Arnaud Ysmal

Revision 1.45.2.4 / (download) - annotate - [select for diffs], Fri Oct 10 22:36:16 2008 UTC (15 years, 4 months ago) by skrll
Branch: wrstuden-revivesa
Changes since 1.45.2.3: +86 -14 lines
Diff to previous 1.45.2.3 (colored) to branchpoint 1.45 (colored) next main 1.46 (colored)

Sync with HEAD.

Revision 1.65 / (download) - annotate - [select for diffs], Fri Oct 10 20:24:10 2008 UTC (15 years, 4 months ago) by pooka
Branch: MAIN
CVS Tags: wrstuden-revivesa-base-4
Changes since 1.64: +3 -1 lines
Diff to previous 1.64 (colored)

remember to call percpu_init()

Revision 1.64 / (download) - annotate - [select for diffs], Fri Oct 10 13:14:41 2008 UTC (15 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.63: +16 -1 lines
Diff to previous 1.63 (colored)

Support callouts and call callout_hardclock() from the timer
interrupt thread.

The sleepq implementation required for callouts is horrible, kludged
only for callouts, and generally unacceptable.  It needs revisiting,
but I'm not sure yet should rump or kern_timeout be improved.  It's
almost untested as of now, but committing this will give me some
maneuvering space while letting application compile.

Revision 1.63 / (download) - annotate - [select for diffs], Thu Oct 9 19:40:52 2008 UTC (15 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.62: +4 -3 lines
Diff to previous 1.62 (colored)

Rewrite interrupts to provide better softintr support, i.e. not
execute them simply in the context of the scheduling code, as this
does not work for all applications (e.g. networking soft interrupts).
Rather, schedule them and execute them from a separate context.

Also provide a timer which for now executes just hardclock_callout()
(well, at least after callouts are included in librump, which is
soon).

Revision 1.62 / (download) - annotate - [select for diffs], Thu Oct 9 17:58:33 2008 UTC (15 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.61: +1 -4 lines
Diff to previous 1.61 (colored)

No point in having our private atomic ops, just use the ones now
available in libc.

Revision 1.61 / (download) - annotate - [select for diffs], Tue Oct 7 23:21:02 2008 UTC (15 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.60: +12 -4 lines
Diff to previous 1.60 (colored)

Embed library build version into the init call and refuse to init
if they don't match.  In other words, this is a lightweight library
major number.

Revision 1.35.6.5 / (download) - annotate - [select for diffs], Sun Oct 5 20:11:34 2008 UTC (15 years, 4 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.35.6.4: +56 -7 lines
Diff to previous 1.35.6.4 (colored) to branchpoint 1.35 (colored)

Sync with HEAD.

Revision 1.60 / (download) - annotate - [select for diffs], Tue Sep 30 21:00:39 2008 UTC (15 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.59: +2 -2 lines
Diff to previous 1.59 (colored)

Check that we apply the previous kludge only to the root vnode.

Revision 1.59 / (download) - annotate - [select for diffs], Tue Sep 30 19:25:56 2008 UTC (15 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.58: +47 -7 lines
Diff to previous 1.58 (colored)

Switch to std kern_auth.

Revision 1.58 / (download) - annotate - [select for diffs], Tue Sep 30 16:51:26 2008 UTC (15 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.57: +2 -2 lines
Diff to previous 1.57 (colored)

Always set HASBUF when creating a componentname.

Revision 1.57 / (download) - annotate - [select for diffs], Tue Sep 30 15:26:54 2008 UTC (15 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.56: +10 -1 lines
Diff to previous 1.56 (colored)

Add an unspeakable kludge for nfs, which keeps an explicit reference
to the root vnode.  Properly fixing this would require fixing p2k,
which would require fixing puffs, which has some optimizations,
which are incompatible with kernel file systems...  guess my Eyes
of the Overworld were misplaced at that time.

Revision 1.35.6.4 / (download) - annotate - [select for diffs], Sun Sep 28 10:41:03 2008 UTC (15 years, 5 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.35.6.3: +80 -26 lines
Diff to previous 1.35.6.3 (colored) to branchpoint 1.35 (colored)

Sync with HEAD.

Revision 1.45.2.3 / (download) - annotate - [select for diffs], Wed Sep 24 16:38:58 2008 UTC (15 years, 5 months ago) by wrstuden
Branch: wrstuden-revivesa
Changes since 1.45.2.2: +12 -2 lines
Diff to previous 1.45.2.2 (colored) to branchpoint 1.45 (colored)

Merge in changes between wrstuden-revivesa-base-2 and
wrstuden-revivesa-base-3.

Revision 1.45.2.2 / (download) - annotate - [select for diffs], Thu Sep 18 04:37:04 2008 UTC (15 years, 5 months ago) by wrstuden
Branch: wrstuden-revivesa
Changes since 1.45.2.1: +70 -26 lines
Diff to previous 1.45.2.1 (colored) to branchpoint 1.45 (colored)

Sync with wrstuden-revivesa-base-2.

Revision 1.56 / (download) - annotate - [select for diffs], Sun Sep 7 20:17:03 2008 UTC (15 years, 5 months ago) by pooka
Branch: MAIN
CVS Tags: wrstuden-revivesa-base-3
Changes since 1.55: +12 -2 lines
Diff to previous 1.55 (colored)

Give lwp0 an fd table and cwd.  Allows easier direct use of rump.

Revision 1.55 / (download) - annotate - [select for diffs], Tue Sep 2 19:38:25 2008 UTC (15 years, 5 months ago) by pooka
Branch: MAIN
CVS Tags: wrstuden-revivesa-base-2
Changes since 1.54: +11 -1 lines
Diff to previous 1.54 (colored)

Make syspuffs mount code supply mount_syspuffs_parseargs() like
the other mount binaries do.  Now syspuffs can be used to run all
puffs file systems as utilities.  This includes fuse file systems
and becomes interesting with the fs-utils project.  We can now do
e.g. this:

  ReFUSE ntfs-3g:
golem> echo hello | fsu_write/fsu_write ntfs-3g puffs ~/img/ntfs.img dafile
golem> fsu_cat/fsu_cat ntfs-3g puffs ~/img/ntfs.img dafile
hello
golem>

  puffs sysctlfs:
golem> fsu_ls/fsu_ls mount_sysctlfs puffs sysctl -l ddb
total 0
-r-xr-xr-x  1 pooka  users  1 Sep  2 22:11 commandonenter
-r-xr-xr-x  1 pooka  users  2 Sep  2 22:11 fromconsole
-r-xr-xr-x  1 pooka  users  3 Sep  2 22:11 lines
-r-xr-xr-x  1 pooka  users  8 Sep  2 22:11 maxoff
-r-xr-xr-x  1 pooka  users  3 Sep  2 22:11 maxwidth
-r-xr-xr-x  1 pooka  users  2 Sep  2 22:11 onpanic
-r-xr-xr-x  1 pooka  users  3 Sep  2 22:11 radix
-r-xr-xr-x  1 pooka  users  2 Sep  2 22:11 tabstops
-r-xr-xr-x  1 pooka  users  2 Sep  2 22:11 tee_msgbuf

Same works for psshfs etcetc.

In other words, this provides total integration for "normal"
in-kernel file systems and puffs/fuse file systems on the ukfs
library level.

Note: implementation is still "first stab" and the fs-utils usage
will no doubt change.

Revision 1.54 / (download) - annotate - [select for diffs], Tue Aug 12 10:04:57 2008 UTC (15 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.53: +15 -8 lines
Diff to previous 1.53 (colored)

Make it possible to control starting of threads per env variable
instead of only at compile-time.

Revision 1.53 / (download) - annotate - [select for diffs], Fri Aug 8 14:40:07 2008 UTC (15 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.52: +20 -14 lines
Diff to previous 1.52 (colored)

Don't create a new proc structure for kthreads (pid == 0).
XXX: this routine should probably do better accounting and consistency
checks as well.

Revision 1.52 / (download) - annotate - [select for diffs], Mon Aug 4 15:02:16 2008 UTC (15 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.51: +7 -3 lines
Diff to previous 1.51 (colored)

Add support for using real kmem/vmem.  Don't enable it by default,
though, since it a) is a lot of unnecessary indirection in rump
b) requires callouts which are so far unimplemented.

Revision 1.51 / (download) - annotate - [select for diffs], Fri Aug 1 19:34:51 2008 UTC (15 years, 7 months ago) by pooka
Branch: MAIN
Changes since 1.50: +6 -2 lines
Diff to previous 1.50 (colored)

support real sysctls

Revision 1.50 / (download) - annotate - [select for diffs], Fri Aug 1 14:47:28 2008 UTC (15 years, 7 months ago) by pooka
Branch: MAIN
Changes since 1.49: +11 -1 lines
Diff to previous 1.49 (colored)

Support ukfs_modload(), which dlopens and vfs_attaches rump file
system modules for use.  Sneakily this solves the problem with the
dynamic linker not wanting to handle the modules link set for
binaries where more than one file system library is included during
the link phase and therefore only one of the file systems getting
vfs_attach()ed in rump "boot".  But more importantly, this is really
TRTTD, since now applications can be built, linked and shipped
completely independently of the file systems they support.

tested by Arnaud Ysmal

Revision 1.49 / (download) - annotate - [select for diffs], Thu Jul 31 05:38:05 2008 UTC (15 years, 7 months ago) by simonb
Branch: MAIN
Changes since 1.48: +4 -2 lines
Diff to previous 1.48 (colored)

Merge the simonb-wapbl branch.  From the original branch commit:

   Add Wasabi System's WAPBL (Write Ahead Physical Block Logging)
   journaling code.  Originally written by Darrin B. Jewell while
   at Wasabi and updated to -current by Antti Kantee, Andy Doran,
   Greg Oster and Simon Burge.

OK'd by core@, releng@.

Revision 1.47.2.2 / (download) - annotate - [select for diffs], Thu Jul 31 04:51:05 2008 UTC (15 years, 7 months ago) by simonb
Branch: simonb-wapbl
Changes since 1.47.2.1: +3 -2 lines
Diff to previous 1.47.2.1 (colored) to branchpoint 1.47 (colored) next main 1.48 (colored)

Sync with head.

Revision 1.48 / (download) - annotate - [select for diffs], Tue Jul 29 13:17:47 2008 UTC (15 years, 7 months ago) by pooka
Branch: MAIN
CVS Tags: simonb-wapbl-nbase, simonb-wapbl-base
Changes since 1.47: +3 -2 lines
Diff to previous 1.47 (colored)

Install rump libraries and utilities to the base system and remove the
private non-installed build infrastructure from sys/rump.

breakdown of commit:
  * install relevant headers into /usr/include/rump
  * build sys/rump/librump/rumpuser and sys/rump/librump/rumpkern
    from src/lib and install as librumpuser and librump, respectively
    + this retains the ability to test a librump build with just the
      kernel sources at hand
  * move sys/rump/fs/lib/libukfs and sys/rump/fs/lib/libp2k to src/lib
    for general consumption, they are not kernel-space dwellers anyway
  * build and install sys/rump/fs/lib/lib$fs as librumpfs_$fs
  * add chapter 3 manual pages for rump, rumpuser, ukfs and p2k
  * build and install userspace kernel file system daemons if MKPUFFS=yes
    is spexified
  * retire fsconsole for now, it will make a comeback with an actually
    implemented version shortly

Revision 1.45.2.1 / (download) - annotate - [select for diffs], Mon Jun 23 04:32:02 2008 UTC (15 years, 8 months ago) by wrstuden
Branch: wrstuden-revivesa
Changes since 1.45: +3 -4 lines
Diff to previous 1.45 (colored)

Sync w/ -current. 34 merge conflicts to follow.

Revision 1.42.2.3 / (download) - annotate - [select for diffs], Tue Jun 17 09:15:16 2008 UTC (15 years, 8 months ago) by yamt
Branch: yamt-pf42
Changes since 1.42.2.2: +2 -4 lines
Diff to previous 1.42.2.2 (colored) to branchpoint 1.42 (colored) next main 1.43 (colored)

sync with head.

Revision 1.47.2.1 / (download) - annotate - [select for diffs], Tue Jun 10 14:51:23 2008 UTC (15 years, 8 months ago) by simonb
Branch: simonb-wapbl
Changes since 1.47: +4 -2 lines
Diff to previous 1.47 (colored)

Initial commit of Wasabi System's WAPBL (Write Ahead Physical Block
Logging) journaling code.  Originally written by Darrin B. Jewell
while at Wasabi and updated to -current by Antti Kantee, Andy Doran,
Greg Oster and Simon Burge.

Still a number of issues - look in doc/BRANCHES for "simonb-wapbl"
for more info.

Revision 1.35.6.3 / (download) - annotate - [select for diffs], Thu Jun 5 19:14:37 2008 UTC (15 years, 8 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.35.6.2: +1 -3 lines
Diff to previous 1.35.6.2 (colored) to branchpoint 1.35 (colored)

Sync with HEAD.

Also fix build.

Revision 1.42.2.2 / (download) - annotate - [select for diffs], Wed Jun 4 02:05:48 2008 UTC (15 years, 8 months ago) by yamt
Branch: yamt-pf42
Changes since 1.42.2.1: +2 -1 lines
Diff to previous 1.42.2.1 (colored) to branchpoint 1.42 (colored)

sync with head

Revision 1.47 / (download) - annotate - [select for diffs], Tue Jun 3 15:50:22 2008 UTC (15 years, 8 months ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-base4, wrstuden-revivesa-base-1, wrstuden-revivesa-base
Branch point for: simonb-wapbl, haad-dm
Changes since 1.46: +2 -4 lines
Diff to previous 1.46 (colored)

vfs_cache:

- Don't use goto in critical paths, it can confuse the compiler.
- Sprinkle some branch hints.
- Make namecache stats per-CPU and collate once per second.
- Use vtryget().

Revision 1.35.6.2 / (download) - annotate - [select for diffs], Mon Jun 2 13:24:31 2008 UTC (15 years, 9 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.35.6.1: +13 -6 lines
Diff to previous 1.35.6.1 (colored) to branchpoint 1.35 (colored)

Sync with HEAD.

Revision 1.46 / (download) - annotate - [select for diffs], Tue May 20 19:02:36 2008 UTC (15 years, 9 months ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-base3
Changes since 1.45: +2 -1 lines
Diff to previous 1.45 (colored)

Fix rump build.

Revision 1.42.2.1 / (download) - annotate - [select for diffs], Sun May 18 12:35:48 2008 UTC (15 years, 9 months ago) by yamt
Branch: yamt-pf42
Changes since 1.42: +13 -7 lines
Diff to previous 1.42 (colored)

sync with head.

Revision 1.42.4.1 / (download) - annotate - [select for diffs], Fri May 16 02:25:50 2008 UTC (15 years, 9 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.42: +13 -7 lines
Diff to previous 1.42 (colored)

sync with head.

Revision 1.45 / (download) - annotate - [select for diffs], Tue May 6 18:43:45 2008 UTC (15 years, 9 months ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-base2, yamt-nfs-mp-base2, hpcarm-cleanup-nbase
Branch point for: wrstuden-revivesa
Changes since 1.44: +3 -2 lines
Diff to previous 1.44 (colored)

PR kern/38141 lookup/vfs_busy acquire rwlock recursively

Simplify the mount locking. Remove all the crud to deal with recursion on
the mount lock, and crud to deal with unmount as another weirdo lock.

Hopefully this will once and for all fix the deadlocks with this. With this
commit there are two locks on each mount:

- krwlock_t mnt_unmounting. This is used to prevent unmount across critical
  sections like getnewvnode(). It's only ever read locked with rw_tryenter(),
  and is only ever write locked in dounmount(). A write hold can't be taken
  on this lock if the current LWP could hold a vnode lock.

- kmutex_t mnt_updating. This is taken by threads updating the mount, for
  example when going r/o -> r/w, and is only present to serialize updates.
  In order to take this lock, a read hold must first be taken on
  mnt_unmounting, and the two need to be held across the operation.

One effect of this change: previously if an unmount failed, we would make a
half hearted attempt to back out of it gracefully, but that was unlikely to
work in a lot of cases. Now while an unmount that will be aborted is in
progress, new file operations within the mount will fail instead of being
delayed. That is unlikely to be a problem though, because if the admin
requests unmount of a file system then s(he) has made a decision to deny
access to the resource.

Revision 1.44 / (download) - annotate - [select for diffs], Sun May 4 12:52:58 2008 UTC (15 years, 9 months ago) by ad
Branch: MAIN
Changes since 1.43: +3 -1 lines
Diff to previous 1.43 (colored)

Pull in the kernel module stuff so that rump can set up built-in modules.

Revision 1.43 / (download) - annotate - [select for diffs], Mon Apr 28 19:31:45 2008 UTC (15 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.42: +9 -6 lines
Diff to previous 1.42 (colored)

Unbreak recent breakage.

Revision 1.35.6.1 / (download) - annotate - [select for diffs], Thu Apr 3 12:43:11 2008 UTC (15 years, 11 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.35: +83 -22 lines
Diff to previous 1.35 (colored)

Sync with HEAD.

Revision 1.42 / (download) - annotate - [select for diffs], Mon Mar 24 19:40:18 2008 UTC (15 years, 11 months ago) by martin
Branch: MAIN
CVS Tags: yamt-pf42-baseX, yamt-pf42-base, yamt-nfs-mp-base, ad-socklock-base1
Branch point for: yamt-pf42, yamt-nfs-mp
Changes since 1.41: +1 -2 lines
Diff to previous 1.41 (colored)

Adapt to sel* changes

Revision 1.12.2.9 / (download) - annotate - [select for diffs], Mon Mar 24 09:39:10 2008 UTC (15 years, 11 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.12.2.8: +13 -13 lines
Diff to previous 1.12.2.8 (colored) to branchpoint 1.12 (colored) next main 1.13 (colored)

sync with head.

Revision 1.35.2.1 / (download) - annotate - [select for diffs], Mon Mar 24 07:16:28 2008 UTC (15 years, 11 months ago) by keiichi
Branch: keiichi-mipv6
Changes since 1.35: +78 -16 lines
Diff to previous 1.35 (colored) next main 1.36 (colored)

sync with head.

Revision 1.10.2.4 / (download) - annotate - [select for diffs], Sun Mar 23 02:05:09 2008 UTC (15 years, 11 months ago) by matt
Branch: matt-armv6
Changes since 1.10.2.3: +112 -19 lines
Diff to previous 1.10.2.3 (colored) next main 1.11 (colored)

sync with HEAD

Revision 1.41 / (download) - annotate - [select for diffs], Sat Mar 22 19:27:23 2008 UTC (15 years, 11 months ago) by ad
Branch: MAIN
CVS Tags: yamt-lazymbuf-base15, yamt-lazymbuf-base14
Changes since 1.40: +2 -2 lines
Diff to previous 1.40 (colored)

Update for select/poll changes.

Revision 1.40 / (download) - annotate - [select for diffs], Fri Mar 21 21:55:01 2008 UTC (15 years, 11 months ago) by ad
Branch: MAIN
Changes since 1.39: +11 -11 lines
Diff to previous 1.39 (colored)

Catch up with descriptor handling changes. See kern_descrip.c revision
1.173 for details.

Revision 1.39 / (download) - annotate - [select for diffs], Tue Mar 18 15:16:22 2008 UTC (15 years, 11 months ago) by pooka
Branch: MAIN
CVS Tags: matt-armv6-nbase, keiichi-mipv6-nbase, keiichi-mipv6-base
Changes since 1.38: +3 -3 lines
Diff to previous 1.38 (colored)

Reorder a few init bits into a better order to make syspuffs work again.

Revision 1.12.2.8 / (download) - annotate - [select for diffs], Mon Mar 17 09:15:46 2008 UTC (15 years, 11 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.12.2.7: +77 -15 lines
Diff to previous 1.12.2.7 (colored) to branchpoint 1.12 (colored)

sync with head.

Revision 1.38 / (download) - annotate - [select for diffs], Wed Mar 12 21:37:15 2008 UTC (15 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.37: +4 -1 lines
Diff to previous 1.37 (colored)

Implement all ukfs interfaces (except getdents, that's a bit more
tricky) with the help of rump system calls instead of calling namei
by themselves.  Trust me when I say it was non-trivial to get the
namei calls right.

Revision 1.37 / (download) - annotate - [select for diffs], Wed Mar 12 11:17:34 2008 UTC (15 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.36: +11 -8 lines
Diff to previous 1.36 (colored)

Support multiple file systems within one process with ukfs by using
a "chroot" for each file system.

Revision 1.36 / (download) - annotate - [select for diffs], Tue Mar 11 10:50:16 2008 UTC (15 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.35: +65 -9 lines
Diff to previous 1.35 (colored)

Backup some fixes for recent breakage from local tree.  Also some
other improvements such as exporting the real kernel namei and
using that in ukfs instead of the homegrown heap'o hacks namei.
"etcetc".

Revision 1.15.2.4 / (download) - annotate - [select for diffs], Mon Feb 18 21:07:22 2008 UTC (16 years ago) by mjf
Branch: mjf-devfs
Changes since 1.15.2.3: +86 -32 lines
Diff to previous 1.15.2.3 (colored) to branchpoint 1.15 (colored) next main 1.16 (colored)

Sync with HEAD.

Revision 1.12.2.7 / (download) - annotate - [select for diffs], Mon Feb 4 09:24:51 2008 UTC (16 years ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.12.2.6: +41 -10 lines
Diff to previous 1.12.2.6 (colored) to branchpoint 1.12 (colored)

sync with head.

Revision 1.35 / (download) - annotate - [select for diffs], Wed Jan 30 14:57:24 2008 UTC (16 years, 1 month ago) by ad
Branch: MAIN
CVS Tags: nick-net80211-sync-base, nick-net80211-sync, mjf-devfs-base, hpcarm-cleanup-base
Branch point for: mjf-devfs2, keiichi-mipv6
Changes since 1.34: +3 -2 lines
Diff to previous 1.34 (colored)

Make it compile.

Revision 1.34 / (download) - annotate - [select for diffs], Sun Jan 27 22:47:32 2008 UTC (16 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.33: +2 -2 lines
Diff to previous 1.33 (colored)

Replace vrelel() 010101-mania with a flags parameter.  However,
leave flags unimplemented for a while (no change in functionality).

Revision 1.33 / (download) - annotate - [select for diffs], Sun Jan 27 20:01:29 2008 UTC (16 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.32: +9 -2 lines
Diff to previous 1.32 (colored)

Don't fool around when recycling vnodes, simply override refcount
to 1, hold on tight to your hat, and call recycle.  The reason is
that we might pick up extra references such as from lookup and we
don't really care about tracking those.  For example with p2k,
puffs in the kernel already does all the refcounting we could ever
dream of, and therefore it's left to the client and unnecessary.

Revision 1.32 / (download) - annotate - [select for diffs], Sun Jan 27 19:07:21 2008 UTC (16 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.31: +22 -8 lines
Diff to previous 1.31 (colored)

Use vfs_subr.c from sys/kern.  This brings differences in the vnode
life cycle between rump and a real kernel to a minimum.

Revision 1.31 / (download) - annotate - [select for diffs], Thu Jan 24 22:41:08 2008 UTC (16 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.30: +7 -2 lines
Diff to previous 1.30 (colored)

Use namei() etc. from kernel sources instead of a reimplementation.
To accommodate, give the rootvnode its own vnode op vector with a
simple lookup operation.  This is used for looking up the file
system's device vnode instead of doing that directly in a homesmoked
namei().

Revision 1.30 / (download) - annotate - [select for diffs], Thu Jan 24 17:32:56 2008 UTC (16 years, 1 month ago) by ad
Branch: MAIN
Changes since 1.29: +2 -2 lines
Diff to previous 1.29 (colored)

specfs changes for PR kern/37717 (raidclose() is no longer called on
shutdown). There are still problems with device access and a PR will be
filed.

- Kill checkalias(). Allow multiple vnodes to reference a single device.

- Don't play dangerous tricks with block vnodes to ensure that only one
  vnode can describe a block device. Instead, prohibit concurrent opens of
  block devices. As a bonus remove the unreliable code that prevents
  multiple file system mounts on the same device. It's no longer needed.

- Track opens by vnode and by device. Issue cdev_close() when the last open
  goes away, instead of abusing vnode::v_usecount to tell if the device is
  open.

Revision 1.23.4.3 / (download) - annotate - [select for diffs], Wed Jan 23 19:27:46 2008 UTC (16 years, 1 month ago) by bouyer
Branch: bouyer-xeni386
Changes since 1.23.4.2: +4 -0 lines
Diff to previous 1.23.4.2 (colored) to branchpoint 1.23 (colored) next main 1.24 (colored)

Sync with HEAD.

Revision 1.29 / (download) - annotate - [select for diffs], Tue Jan 22 09:23:39 2008 UTC (16 years, 1 month ago) by pooka
Branch: MAIN
CVS Tags: bouyer-xeni386-nbase
Changes since 1.28: +5 -1 lines
Diff to previous 1.28 (colored)

Until debugging threaded programs in NetBSD is fixed, supply the
cpp option RUMP_WITHOUT_THREADS as a workaround.  If defined, it
makes rump itself operate single-threaded and prevents kthread_create()
from working.

Revision 1.12.2.6 / (download) - annotate - [select for diffs], Mon Jan 21 09:47:43 2008 UTC (16 years, 1 month ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.12.2.5: +46 -24 lines
Diff to previous 1.12.2.5 (colored) to branchpoint 1.12 (colored)

sync with head

Revision 1.10.2.3 / (download) - annotate - [select for diffs], Wed Jan 9 01:58:00 2008 UTC (16 years, 1 month ago) by matt
Branch: matt-armv6
Changes since 1.10.2.2: +55 -34 lines
Diff to previous 1.10.2.2 (colored)

sync with HEAD

Revision 1.23.4.2 / (download) - annotate - [select for diffs], Tue Jan 8 22:11:53 2008 UTC (16 years, 1 month ago) by bouyer
Branch: bouyer-xeni386
CVS Tags: bouyer-xeni386-merge1
Changes since 1.23.4.1: +12 -14 lines
Diff to previous 1.23.4.1 (colored) to branchpoint 1.23 (colored)

Sync with HEAD

Revision 1.28 / (download) - annotate - [select for diffs], Thu Jan 3 02:48:03 2008 UTC (16 years, 2 months ago) by pooka
Branch: MAIN
CVS Tags: matt-armv6-base, bouyer-xeni386-base
Changes since 1.27: +13 -15 lines
Diff to previous 1.27 (colored)

Theoretically this is supposed to be interchangeable with real
kernel code.  Use kmem_alloc/free instead of some wily homerolled
rump interfaces for memory allocation.

Revision 1.23.4.1 / (download) - annotate - [select for diffs], Wed Jan 2 21:57:54 2008 UTC (16 years, 2 months ago) by bouyer
Branch: bouyer-xeni386
Changes since 1.23: +34 -9 lines
Diff to previous 1.23 (colored)

Sync with HEAD

Revision 1.27 / (download) - annotate - [select for diffs], Wed Jan 2 18:15:14 2008 UTC (16 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.26: +21 -9 lines
Diff to previous 1.26 (colored)

Add the ability to run puffs in userspace.  This means that puffs
can now be developed in userspace using puffs for development
(I hate emulators, they are annoyingly clumsy).

To e.g. mount psshfs using puffs-on-puffs, run fs/bin/syspuffs/syspuffs
with the regular mount_psshfs command line as an argument:

    golem> ./syspuffs /usr/sbin/mount_psshfs ftp.netbsd.org:/pub /puffs

This will make the mount appear as usual, with the exception that the
requests will be passed through puffs both in the kernel and userspace:

    ftp.netbsd.org:/pub on /puffs type puffs|p2k|puffs|psshfs

Revision 1.26 / (download) - annotate - [select for diffs], Wed Jan 2 15:44:03 2008 UTC (16 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.25: +8 -1 lines
Diff to previous 1.25 (colored)

fix vmlocking2 fallout:

* I heard a wild rumor that vp_interlock is a mutex these days (hi ad!)
* init new locks (hi ad)
* observe that with simple_locks only deadlocks would be caught while
  releasing unlocked locks would go unnoticed.  make locking work (hi pooka)

Revision 1.25 / (download) - annotate - [select for diffs], Sun Dec 30 23:30:27 2007 UTC (16 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.24: +3 -1 lines
Diff to previous 1.24 (colored)

pull in atomic ops from vmlocking2

Revision 1.24 / (download) - annotate - [select for diffs], Sun Dec 30 23:29:06 2007 UTC (16 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.23: +5 -1 lines
Diff to previous 1.23 (colored)

fake sigcantmask

Revision 1.22.2.2 / (download) - annotate - [select for diffs], Fri Dec 28 21:43:18 2007 UTC (16 years, 2 months ago) by ad
Branch: vmlocking2
Changes since 1.22.2.1: +3 -1 lines
Diff to previous 1.22.2.1 (colored) to branchpoint 1.22 (colored) next main 1.23 (colored)

Make rump build.

Revision 1.15.2.3 / (download) - annotate - [select for diffs], Thu Dec 27 00:46:38 2007 UTC (16 years, 2 months ago) by mjf
Branch: mjf-devfs
Changes since 1.15.2.2: +1 -2 lines
Diff to previous 1.15.2.2 (colored) to branchpoint 1.15 (colored)

Sync with HEAD.

Revision 1.22.2.1 / (download) - annotate - [select for diffs], Wed Dec 26 19:57:52 2007 UTC (16 years, 2 months ago) by ad
Branch: vmlocking2
Changes since 1.22: +1 -2 lines
Diff to previous 1.22 (colored)

Sync with head.

Revision 1.14.2.7 / (download) - annotate - [select for diffs], Sun Dec 9 19:38:46 2007 UTC (16 years, 2 months ago) by jmcneill
Branch: jmcneill-pm
Changes since 1.14.2.6: +1 -2 lines
Diff to previous 1.14.2.6 (colored) next main 1.15 (colored)

Sync with HEAD.

Revision 1.23 / (download) - annotate - [select for diffs], Sat Dec 8 19:29:52 2007 UTC (16 years, 2 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-kmem-base3, yamt-kmem-base2, yamt-kmem-base, yamt-kmem, vmlocking2-base3, jmcneill-pm-base, cube-autoconf-base, cube-autoconf
Branch point for: bouyer-xeni386
Changes since 1.22: +1 -2 lines
Diff to previous 1.22 (colored)

Remove cn_lwp from struct componentname.  curlwp should be used
from on.  The NDINIT() macro no longer takes the lwp parameter and
associates the credentials of the calling thread with the namei
structure.

Revision 1.15.2.2 / (download) - annotate - [select for diffs], Sat Dec 8 18:21:27 2007 UTC (16 years, 2 months ago) by mjf
Branch: mjf-devfs
Changes since 1.15.2.1: +13 -14 lines
Diff to previous 1.15.2.1 (colored) to branchpoint 1.15 (colored)

Sync with HEAD.

Revision 1.12.2.5 / (download) - annotate - [select for diffs], Fri Dec 7 17:34:47 2007 UTC (16 years, 2 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.12.2.4: +13 -14 lines
Diff to previous 1.12.2.4 (colored) to branchpoint 1.12 (colored)

sync with head

Revision 1.14.2.6 / (download) - annotate - [select for diffs], Tue Nov 27 19:39:06 2007 UTC (16 years, 3 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.14.2.5: +13 -14 lines
Diff to previous 1.14.2.5 (colored)

Sync with HEAD. amd64 Xen support needs testing.

Revision 1.22 / (download) - annotate - [select for diffs], Mon Nov 26 19:02:23 2007 UTC (16 years, 3 months ago) by pooka
Branch: MAIN
CVS Tags: vmlocking2-base2, vmlocking2-base1, vmlocking-nbase, reinoud-bufcleanup-nbase, reinoud-bufcleanup-base
Branch point for: vmlocking2
Changes since 1.21: +13 -14 lines
Diff to previous 1.21 (colored)

Remove the "struct lwp *" argument from all VFS and VOP interfaces.
The general trend is to remove it from all kernel interfaces and
this is a start.  In case the calling lwp is desired, curlwp should
be used.

quick consensus on tech-kern

Revision 1.15.2.1 / (download) - annotate - [select for diffs], Mon Nov 19 00:49:23 2007 UTC (16 years, 3 months ago) by mjf
Branch: mjf-devfs
Changes since 1.15: +60 -1 lines
Diff to previous 1.15 (colored)

Sync with HEAD.

Revision 1.12.2.4 / (download) - annotate - [select for diffs], Thu Nov 15 11:45:27 2007 UTC (16 years, 3 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.12.2.3: +146 -7 lines
Diff to previous 1.12.2.3 (colored) to branchpoint 1.12 (colored)

sync with head.

Revision 1.12.6.2 / (download) - annotate - [select for diffs], Tue Nov 13 16:03:15 2007 UTC (16 years, 3 months ago) by bouyer
Branch: bouyer-xenamd64
Changes since 1.12.6.1: +145 -6 lines
Diff to previous 1.12.6.1 (colored) to branchpoint 1.12 (colored) next main 1.13 (colored)

Sync with HEAD

Revision 1.14.2.5 / (download) - annotate - [select for diffs], Sun Nov 11 16:48:45 2007 UTC (16 years, 3 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.14.2.4: +60 -1 lines
Diff to previous 1.14.2.4 (colored)

Sync with HEAD.

Revision 1.10.2.2 / (download) - annotate - [select for diffs], Thu Nov 8 11:00:18 2007 UTC (16 years, 3 months ago) by matt
Branch: matt-armv6
CVS Tags: matt-armv6-prevmlocking
Changes since 1.10.2.1: +60 -1 lines
Diff to previous 1.10.2.1 (colored)

sync with -HEAD

Revision 1.21 / (download) - annotate - [select for diffs], Wed Nov 7 18:59:18 2007 UTC (16 years, 3 months ago) by pooka
Branch: MAIN
CVS Tags: bouyer-xenamd64-base2, bouyer-xenamd64-base
Changes since 1.20: +10 -6 lines
Diff to previous 1.20 (colored)

Execute I/O in a separate thread for async I/O where previously
everything was written/read in caller context.

Also, make the "kernel" lock recursive.  It works better that way ...

Revision 1.20 / (download) - annotate - [select for diffs], Wed Nov 7 16:31:21 2007 UTC (16 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.19: +4 -1 lines
Diff to previous 1.19 (colored)

final splash of ketchup after source update: init/fini mountspecific

Revision 1.19 / (download) - annotate - [select for diffs], Wed Nov 7 16:24:22 2007 UTC (16 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.18: +5 -1 lines
Diff to previous 1.18 (colored)

implement _kernel_lock{,_unlock}()

Revision 1.18 / (download) - annotate - [select for diffs], Wed Nov 7 15:41:18 2007 UTC (16 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.17: +37 -0 lines
Diff to previous 1.17 (colored)

Emulate spls by using pthread rwlocks: splfoo() takes a read lock
and when doing processing in an interrupt (effectively when calling
biodone()), we take the write lock.

Revision 1.17 / (download) - annotate - [select for diffs], Wed Nov 7 12:11:30 2007 UTC (16 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.16: +1 -13 lines
Diff to previous 1.16 (colored)

oops, backout part which wasn't supposed to go in

Revision 1.16 / (download) - annotate - [select for diffs], Wed Nov 7 12:08:45 2007 UTC (16 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.15: +24 -1 lines
Diff to previous 1.15 (colored)

Call buf_syncwait() after releasing a file system.

Revision 1.10.2.1 / (download) - annotate - [select for diffs], Tue Nov 6 23:34:37 2007 UTC (16 years, 3 months ago) by matt
Branch: matt-armv6
Changes since 1.10: +111 -11 lines
Diff to previous 1.10 (colored)

sync with HEAD

Revision 1.14.2.4 / (download) - annotate - [select for diffs], Sun Nov 4 21:03:48 2007 UTC (16 years, 3 months ago) by jmcneill
Branch: jmcneill-pm
Changes since 1.14.2.3: +12 -1 lines
Diff to previous 1.14.2.3 (colored)

Sync with HEAD.

Revision 1.15 / (download) - annotate - [select for diffs], Sun Nov 4 18:43:55 2007 UTC (16 years, 3 months ago) by pooka
Branch: MAIN
CVS Tags: jmcneill-base
Branch point for: mjf-devfs
Changes since 1.14: +12 -1 lines
Diff to previous 1.14 (colored)

Make the strategy routine get the results through biowait() and
the "disk driver" (rumpuser) call biodone() to indicate the completion
of I/O.  Support for B_ASYNC is coming at some point, but I need
more locking support in the emulated vm for that.

Revision 1.14.2.3 / (download) - annotate - [select for diffs], Fri Nov 2 13:02:47 2007 UTC (16 years, 4 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.14.2.2: +76 -7 lines
Diff to previous 1.14.2.2 (colored)

Remove the rest of the unintentional diff in sys/rump.

Revision 1.14.2.2 / (download) - annotate - [select for diffs], Wed Oct 31 23:14:17 2007 UTC (16 years, 4 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.14.2.1: +472 -0 lines
Diff to previous 1.14.2.1 (colored)

Sync with HEAD.

Revision 1.14.2.1, Wed Oct 31 15:57:21 2007 UTC (16 years, 4 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.14: +0 -541 lines
FILE REMOVED

file rump.c was added on branch jmcneill-pm on 2007-10-31 23:14:17 +0000

Revision 1.14 / (download) - annotate - [select for diffs], Wed Oct 31 15:57:21 2007 UTC (16 years, 4 months ago) by pooka
Branch: MAIN
Branch point for: jmcneill-pm
Changes since 1.13: +76 -7 lines
Diff to previous 1.13 (colored)

Make it possible to run rumps multithreaded.  This brings real
locking and makes it possible to run file systems which create
threads.  It also makes rump file system behaviour better match
file system behaviour in the kernel.

Revision 1.12.2.3 / (download) - annotate - [select for diffs], Sat Oct 27 11:36:23 2007 UTC (16 years, 4 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.12.2.2: +2 -3 lines
Diff to previous 1.12.2.2 (colored) to branchpoint 1.12 (colored)

sync with head.

Revision 1.12.6.1 / (download) - annotate - [select for diffs], Thu Oct 25 22:40:11 2007 UTC (16 years, 4 months ago) by bouyer
Branch: bouyer-xenamd64
Changes since 1.12: +2 -3 lines
Diff to previous 1.12 (colored)

Sync with HEAD.

Revision 1.8.2.4 / (download) - annotate - [select for diffs], Tue Oct 23 20:17:24 2007 UTC (16 years, 4 months ago) by ad
Branch: vmlocking
Changes since 1.8.2.3: +2 -3 lines
Diff to previous 1.8.2.3 (colored) next main 1.9 (colored)

Sync with head.

Revision 1.13 / (download) - annotate - [select for diffs], Fri Oct 19 12:16:47 2007 UTC (16 years, 4 months ago) by ad
Branch: MAIN
Changes since 1.12: +2 -3 lines
Diff to previous 1.12 (colored)

machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h

Revision 1.8.2.3 / (download) - annotate - [select for diffs], Tue Oct 9 13:45:04 2007 UTC (16 years, 4 months ago) by ad
Branch: vmlocking
Changes since 1.8.2.2: +244 -12 lines
Diff to previous 1.8.2.2 (colored)

Sync with head.

Revision 1.12.2.2 / (download) - annotate - [select for diffs], Mon Sep 3 14:45:33 2007 UTC (16 years, 6 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.12.2.1: +473 -0 lines
Diff to previous 1.12.2.1 (colored) to branchpoint 1.12 (colored)

sync with head.

Revision 1.6.2.3 / (download) - annotate - [select for diffs], Mon Sep 3 10:23:55 2007 UTC (16 years, 6 months ago) by skrll
Branch: nick-csl-alignment
Changes since 1.6.2.2: +249 -10 lines
Diff to previous 1.6.2.2 (colored) next main 1.7 (colored)

Sync with HEAD.

Revision 1.12.2.1, Sun Sep 2 13:29:50 2007 UTC (16 years, 6 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.12: +0 -473 lines
FILE REMOVED

file rump.c was added on branch yamt-lazymbuf on 2007-09-03 14:45:33 +0000

Revision 1.12 / (download) - annotate - [select for diffs], Sun Sep 2 13:29:50 2007 UTC (16 years, 6 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-x86pmap-base4, yamt-x86pmap-base3, yamt-x86pmap-base2, yamt-x86pmap-base, yamt-x86pmap, vmlocking-base, nick-csl-alignment-base5
Branch point for: yamt-lazymbuf, bouyer-xenamd64
Changes since 1.11: +22 -3 lines
Diff to previous 1.11 (colored)

* Give rump_vfs_root() the option of returning the vnode unlocked.
* initialize syncdelay
* implement io_sync handler

Revision 1.11 / (download) - annotate - [select for diffs], Sat Sep 1 22:10:10 2007 UTC (16 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.10: +3 -1 lines
Diff to previous 1.10 (colored)

avoid uninitialized warning from impossible enum

Revision 1.10 / (download) - annotate - [select for diffs], Sat Aug 25 10:22:31 2007 UTC (16 years, 6 months ago) by pooka
Branch: MAIN
Branch point for: matt-armv6
Changes since 1.9: +6 -7 lines
Diff to previous 1.9 (colored)

Don't play rename & typecast games with kauth_cred_t, but rather
declare the type in rump.h only if necessary with the help of ifdef
magic.

Revision 1.9 / (download) - annotate - [select for diffs], Tue Aug 21 13:57:17 2007 UTC (16 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.8: +8 -5 lines
Diff to previous 1.8 (colored)

Implement credentials.  Access control is now similar to if the file
system were run in the kernel.

Revision 1.8.2.2 / (download) - annotate - [select for diffs], Mon Aug 20 22:07:29 2007 UTC (16 years, 6 months ago) by ad
Branch: vmlocking
Changes since 1.8.2.1: +241 -0 lines
Diff to previous 1.8.2.1 (colored)

Sync with HEAD.

Revision 1.8.2.1, Mon Aug 20 15:58:14 2007 UTC (16 years, 6 months ago) by ad
Branch: vmlocking
Changes since 1.8: +0 -450 lines
FILE REMOVED

file rump.c was added on branch vmlocking on 2007-08-20 22:07:29 +0000

Revision 1.8 / (download) - annotate - [select for diffs], Mon Aug 20 15:58:14 2007 UTC (16 years, 6 months ago) by pooka
Branch: MAIN
Branch point for: vmlocking
Changes since 1.7: +217 -8 lines
Diff to previous 1.7 (colored)

Hide NetBSD kernel headers completely from ukfs.  This includes creating
accessors for:
  * struct mount & VFS ops
  * struct uio
  * struct vnode
  * struct vattr

and some namespace games for:
  * namei flags
  * VOPs
  * enum vtype

Also, split rump services into two categories: library private and public
(rump_private.h and rump.h, respectively).

As a result, it is now possible to compile and use the NetBSD kernel
file systems on Linux (and probably other systems too with very
little work), although the makefiles need a bit of work to make it
a pleasureable experience.

Revision 1.7 / (download) - annotate - [select for diffs], Thu Aug 16 19:50:19 2007 UTC (16 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.6: +8 -1 lines
Diff to previous 1.6 (colored)

tweaks

Revision 1.6.2.2 / (download) - annotate - [select for diffs], Wed Aug 15 13:50:40 2007 UTC (16 years, 6 months ago) by skrll
Branch: nick-csl-alignment
Changes since 1.6.2.1: +234 -0 lines
Diff to previous 1.6.2.1 (colored)

Sync with HEAD.

Revision 1.6.2.1, Tue Aug 14 15:56:17 2007 UTC (16 years, 6 months ago) by skrll
Branch: nick-csl-alignment
Changes since 1.6: +0 -234 lines
FILE REMOVED

file rump.c was added on branch nick-csl-alignment on 2007-08-15 13:50:40 +0000

Revision 1.6 / (download) - annotate - [select for diffs], Tue Aug 14 15:56:17 2007 UTC (16 years, 6 months ago) by pooka
Branch: MAIN
Branch point for: nick-csl-alignment
Changes since 1.5: +18 -1 lines
Diff to previous 1.5 (colored)

* split userspace file system access into two separate libraries:
  + libp2k: the interface between libpuffs and vfs/vop
  + libukfs: generic user kernel file system library, usable
	     independent of libp2k and/or puffs
* use file system name (MOUNT_XYZ) instead of vfsops pointer to
  mount file system

Revision 1.5 / (download) - annotate - [select for diffs], Tue Aug 14 13:54:15 2007 UTC (16 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.4: +2 -1 lines
Diff to previous 1.4 (colored)

Kill handrolled buffercache and use vfs_bio from the kernel.  This is
mostly to get the flag jungle in sync with the kernel.

Revision 1.4 / (download) - annotate - [select for diffs], Wed Aug 8 14:09:07 2007 UTC (16 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.3: +15 -1 lines
Diff to previous 1.3 (colored)

Provide rump_getvninfo() and use that in libp2k_lookup() to avoid an
extra getattr for stuff the file system already cached in the vnode.

Revision 1.3 / (download) - annotate - [select for diffs], Tue Aug 7 20:40:53 2007 UTC (16 years, 6 months ago) by pooka
Branch: MAIN
Changes since 1.2: +10 -4 lines
Diff to previous 1.2 (colored)

realpath() can also fail, take that into account

Revision 1.2.2.2 / (download) - annotate - [select for diffs], Mon Aug 6 22:20:58 2007 UTC (16 years, 6 months ago) by pooka
Branch: matt-mips64
Changes since 1.2.2.1: +196 -0 lines
Diff to previous 1.2.2.1 (colored) to branchpoint 1.2 (colored) next main 1.3 (colored)

Allow to de/register pathnames which should be faked as block
devices instead of faking all non-blks as blks in namei().

Revision 1.2.2.1, Mon Aug 6 22:20:57 2007 UTC (16 years, 6 months ago) by pooka
Branch: matt-mips64
Changes since 1.2: +0 -196 lines
FILE REMOVED

file rump.c was added on branch matt-mips64 on 2007-08-06 22:20:58 +0000

Revision 1.2 / (download) - annotate - [select for diffs], Mon Aug 6 22:20:57 2007 UTC (16 years, 6 months ago) by pooka
Branch: MAIN
CVS Tags: matt-mips64-base
Branch point for: matt-mips64
Changes since 1.1: +62 -1 lines
Diff to previous 1.1 (colored)

Allow to de/register pathnames which should be faked as block
devices instead of faking all non-blks as blks in namei().

Revision 1.1 / (download) - annotate - [select for diffs], Sun Aug 5 22:28:09 2007 UTC (16 years, 6 months ago) by pooka
Branch: MAIN

Introduce RUMPs - Runnable Userspace Meta-Programs

/sys/rump contains programs which run unmodified kernel code in an
emulated userspace environment.  The kernel environment is provided
by librump.  Currently supported are a number of file systems,
which by using puffs integrate seamlessly into the system and
provide a similar user experience to if the code was running as
part of the kernel.  Potential future rumpification targets include
for example parts of the networking stack and some device drivers.

This work was supported by Google Summer of Code 2007.

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.




CVSweb <webmaster@jp.NetBSD.org>