8 years agokernel - namecache MPSAFE work
Matthew Dillon [Mon, 21 Dec 2009 16:15:18 +0000 (08:15 -0800)]
kernel - namecache MPSAFE work

* Most of the MPSAFE coding required for namecache operation.  The MP
  lock still surrounds this code.

* Use a per-bucket spinlock for nchashtbl[] lookups.

* Use a global spinlock for ncneglist.

* Use a global token for nc_parent interlocks.

* Use a per-vnode spinlock (v_spinlock == v_lock.lk_spinlock) to
  manage access to the v_namecache list.

* Recode namecache locks to use atomic_cmpset_ptr() based around
  nc_locktd instead of nc_exlocks.  nc_exlocks is still used to
  track the exclusive lock count.

  NOTE: There may be an issue with the way nc_lockreq is handled.

* Recode cache_hold/drop to use atomic_cmpset_int().

* Carefully code cache_zap() for MPSAFEness.  In particular, multiple
  locks must be held before it can be determined that a namecache
  structure no longer has any referers.  Here is where having the global
  token is really useful.

* cache_fullpath() and vn_fullpath() previously assumed the good graces
  of the MP lock and didn't bother holding refs on the namecache pointers
  they were traversing.  Now they do.

* nlookup*() functions also previously made assumptions with regards
  to holding refs.  Now they properly hold refs.

* struct namecache's nc_flag field is no longer modified outside of
  holding a lock on the structure, so we do not have to resort to
  atomic ops.

8 years agokernel - Split an assertion in the sysref code to make it MPSAFE
Matthew Dillon [Mon, 21 Dec 2009 16:13:47 +0000 (08:13 -0800)]
kernel - Split an assertion in the sysref code to make it MPSAFE

* An assertion in the sysref code was not MPSAFE.  Test SRF_ALLOCATED
  after we have determined that the object is completely free.

8 years agoRemove the JG64 kernel config (a subset of X86_64_GENERIC).
Sascha Wildner [Mon, 21 Dec 2009 11:44:35 +0000 (12:44 +0100)]
Remove the JG64 kernel config (a subset of X86_64_GENERIC).

Adjust the x86_64 test framework which was the last place where it was used.

8 years agoMisc. manpage cleanup for the recent T/TCP removal.
Sascha Wildner [Sat, 12 Dec 2009 08:43:31 +0000 (09:43 +0100)]
Misc. manpage cleanup for the recent T/TCP removal.

8 years agocrypto - Mark cryptodev ioctl as MPSAFE
Alex Hornung [Mon, 21 Dec 2009 08:27:41 +0000 (08:27 +0000)]
crypto - Mark cryptodev ioctl as MPSAFE

* Mark the cryptodev (/dev/crypto) ioctl as MPSAFE.

8 years agokern_memio - mark dev_ops READ and WRITE MPSAFE
Alex Hornung [Mon, 21 Dec 2009 08:26:09 +0000 (08:26 +0000)]
kern_memio - mark dev_ops READ and WRITE MPSAFE

* Mark read and write dev ops as being MPSAFE. This affects urandom,
  random, zero, null, mem, kmem.

8 years agodevfs - Introduce MPSAFE read/write/ioctl support
Alex Hornung [Mon, 21 Dec 2009 08:22:46 +0000 (08:22 +0000)]
devfs - Introduce MPSAFE read/write/ioctl support

  with the dev_ops structure to mark the read,write and/or ioctl methods
  as mpsafe.

* Change devfs so that it won't acquire the mplock for
  read/writes/ioctls that are marked as MPSAFE.

* Add some statistics under sysctl vfs.devfs about the number of read
  and writes done with the mplock and without it.

* While here, MPSAFE specf_stat in devfs so it doesn't acquire the
  mplock anymore as it doesn't even need it.

8 years agokernel - lwkt_token code, minor fix to last commit
Matthew Dillon [Mon, 21 Dec 2009 05:34:02 +0000 (21:34 -0800)]
kernel - lwkt_token code, minor fix to last commit

* lwkt_getalltokens() has to release any partially acquired tokens
  when it fails to get them all.  Fixes an issue with the last commit
  that could cause processes to get stuck in a Run state.

8 years agokernel - Refactor the lwkt_token code, making it faster
Matthew Dillon [Mon, 21 Dec 2009 03:33:07 +0000 (19:33 -0800)]
kernel - Refactor the lwkt_token code, making it faster

* Rewrite the core token functions and revamp the structures.  The
  lwkt_token structure now contains just a single element, a pointer
  to the on-stack lwkt_tokref.  The lwkt_tokref now contains the
  owner id.

* Recursive tokens are still fully supported and coded trivially.

* Critical sections and spinlocks are no longer needed or used by
  the lwkt_token code.  Token aquisition is basically a single
  atomic_cmpset_ptr() call in the critical path.  Everything runs
  ultra clean now.

* Improve the pool token API.

* Remove extranious cruft

8 years agoMerge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly
Matthew Dillon [Mon, 21 Dec 2009 03:23:12 +0000 (19:23 -0800)]
Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly

8 years agoSilence -Wold-style-definition in a number of places in the kernel.
Sascha Wildner [Sun, 20 Dec 2009 23:02:13 +0000 (00:02 +0100)]
Silence -Wold-style-definition in a number of places in the kernel.

8 years agokernel - jails - undo minor prisoncount atomic ops
Matthew Dillon [Sun, 20 Dec 2009 23:02:24 +0000 (15:02 -0800)]
kernel - jails - undo minor prisoncount atomic ops

* cleanup, the functions in question aren't MPSAFE yet anyway.

8 years agofsmid followup - fix compiler warning in ls
Matthew Dillon [Sun, 20 Dec 2009 22:43:47 +0000 (14:43 -0800)]
fsmid followup - fix compiler warning in ls

* Fix an unused variable warning that was causing buildworld to
  fail (due to WARNS options).

8 years agomake.conf.5: Note that NO_WERROR applies to the kernel build as well.
Sascha Wildner [Sun, 20 Dec 2009 21:57:00 +0000 (22:57 +0100)]
make.conf.5: Note that NO_WERROR applies to the kernel build as well.

8 years agokernel - remove FSMID support
Matthew Dillon [Sun, 20 Dec 2009 18:20:50 +0000 (10:20 -0800)]
kernel - remove FSMID support

* Remove all the fsmid stuff.  I never got it working 100% (e.g. such as
  when hardlinks are present) and it really complicates the MPSAFE work
  on the namecache.

* Remove struct stat->st_fsmid (replace with a spare field)

* Comment out the _ST_FSMID_PRESENT_ flag.  Userland conditionalizes
  on the flag so it should still build.

* The kqueue vnode monitoring feature is good enough and more portable.

8 years agotop(1): Merge top.x and top.local.1 into one manual page.
Sascha Wildner [Sun, 20 Dec 2009 15:46:34 +0000 (16:46 +0100)]
top(1): Merge top.x and top.local.1 into one manual page.

8 years agotop: Describe new output "CTIME" in man page.
Jan Lentfer [Sun, 20 Dec 2009 15:05:15 +0000 (16:05 +0100)]
top: Describe new output "CTIME" in man page.

8 years agoAdd some missing ACPI source files (for LINT).
Sascha Wildner [Sun, 20 Dec 2009 14:24:08 +0000 (15:24 +0100)]
Add some missing ACPI source files (for LINT).

8 years agoFix acpi (loading it failed).
Sascha Wildner [Sun, 20 Dec 2009 14:22:58 +0000 (15:22 +0100)]
Fix acpi (loading it failed).

Reported-by: alexh
8 years agoAdd a BUS_ADD_CHILD.9 manual page (adapted from FreeBSD).
Sascha Wildner [Sun, 20 Dec 2009 14:02:51 +0000 (15:02 +0100)]
Add a BUS_ADD_CHILD.9 manual page (adapted from FreeBSD).

8 years agombuf.9: We have neither the MFREE() nor M_COPY_PKTHDR() macros.
Sascha Wildner [Sun, 20 Dec 2009 13:24:23 +0000 (14:24 +0100)]
mbuf.9: We have neither the MFREE() nor M_COPY_PKTHDR() macros.

8 years agohash.9: Improve wording.
Sascha Wildner [Sun, 20 Dec 2009 13:11:36 +0000 (14:11 +0100)]
hash.9: Improve wording.

8 years agohash.9: Update the manual page for the *_ext() functions.
Sascha Wildner [Sun, 20 Dec 2009 13:04:05 +0000 (14:04 +0100)]
hash.9: Update the manual page for the *_ext() functions.

8 years agoFix UP kernel build.
Sascha Wildner [Sun, 20 Dec 2009 11:28:28 +0000 (12:28 +0100)]
Fix UP kernel build.

8 years agokernel - add hashinit_ext() and phashinit_ext()
Matthew Dillon [Sun, 20 Dec 2009 08:13:38 +0000 (00:13 -0800)]
kernel - add hashinit_ext() and phashinit_ext()

* Add hashinit_ext() and phashinit_ext(), extended versions of
  hashinit() and phashinit() which take a structure size and zero
  the array instead of assuming it is only an array of LIST_HEAD's.

8 years agokernel - misc MPSAFe work
Matthew Dillon [Sun, 20 Dec 2009 06:18:37 +0000 (22:18 -0800)]
kernel - misc MPSAFe work

* prisoncount, prison_hold(), and prison_free() are now MPSAFE

* Remove spinlock from ucred

* Fix cr_ref race in crfree(), and crfree() is now fully MPSAFE.

* cache_hold(), cache_copy(), cache_changemount() are now MPSAFE.

* cache_drop() is not yet MPSAFE in the 1->0 transition case.

* nlookup_init() is now MPSAFE

8 years agokernel - Move mplock to machine-independent C
Matthew Dillon [Sun, 20 Dec 2009 02:57:32 +0000 (18:57 -0800)]
kernel - Move mplock to machine-independent C

* Remove the per-platform mplock code and move it all into
  machine-independent code: sys/mplock2.h and kern/kern_mplock.c.

* Inline the critical path.

* When a conflict occurs kern_mplock.c will KTR log the file and line
  number of both the holder and conflicting acquirer.  Set
  debug.ktr.giant_enable=-1 to enable conflict logging.

8 years agoktrdump - Parse format string manually, implement %s
Matthew Dillon [Sun, 20 Dec 2009 02:28:39 +0000 (18:28 -0800)]
ktrdump - Parse format string manually, implement %s

* Allows %s to be used in KTR format strings in-kernel.  ktrdump will
  read the string out via KVM and print it.

* We parse the format string manually, so we may have to add stuff as
  time goes on.

8 years agobusdma - Fix bouncebuffer operation for 64 bit builds / mountroot & boot issues
Matthew Dillon [Sat, 19 Dec 2009 20:00:46 +0000 (12:00 -0800)]
busdma - Fix bouncebuffer operation for 64 bit builds / mountroot & boot issues

* BUF_SPACE_MAXADDR was incorrectly defined for 64 bit builds, effectively
  disabling bounce buffers.  Fixed.

* This created issues with drivers (particularly NATA) which only support
  32 bit physical addresses, causing x86_64 machines to fail to boot or
  to blow up.

Reported-by: several people
8 years agosignal - Introduce si_code codes
Alex Hornung [Sat, 19 Dec 2009 10:11:28 +0000 (10:11 +0000)]
signal - Introduce si_code codes

* Introduce si_code codes #defines for signals.

* Assign proper si_code for most traps.

* Get rid of x86_64-only si_code code #defines.

* This also fixes build of pkgsrc devel/boost-libs

Dragonfly-bug: http://bugs.dragonflybsd.org/issue1313

8 years agotop: Remove WCPU, implement CTIME.
Jan Lentfer [Sat, 19 Dec 2009 12:04:17 +0000 (13:04 +0100)]
top: Remove WCPU, implement CTIME.
     * WCPU is a quite useless value for a long time,
       thus it has been replaced with
     * CTIME, which presents the same value as 'ps -S'
       does for the CPU value. This is the process's own
       cpu time plus the cpu time of it's exited child

8 years agoFix buildworld with -DNDEBUG in CFLAGS.
Sascha Wildner [Fri, 18 Dec 2009 21:10:57 +0000 (22:10 +0100)]
Fix buildworld with -DNDEBUG in CFLAGS.

ANSI C requires that if NDEBUG is defined, assert(3) shall be disabled,
that is, defined "((void)0)".

The usage of NDEBUG in libevent is not related to assert(3), so simply
remove the #ifdef's (as was done upstream in later versions of

8 years agoexamples/kld - Fix for devfs.
Joe Talbott [Fri, 18 Dec 2009 15:56:46 +0000 (10:56 -0500)]
examples/kld - Fix for devfs.

Remove dev_ops_{add,remove} and remove mknod from Makefile.

8 years agoCONFIG - untangle whitespace mess
Alex Hornung [Fri, 18 Dec 2009 10:22:33 +0000 (10:22 +0000)]
CONFIG - untangle whitespace mess

* fix whitespace mess introduced by previous commit.

8 years agoCONFIG - add NULLFS
Alex Hornung [Fri, 18 Dec 2009 09:39:37 +0000 (09:39 +0000)]

* add option NULLFS to all kernel config files, as nullfs is more or
  less a requirement for a hammer system due to pfs.

* Incidentally this solves problems when mounting /usr and other PFS
  when the modules are out of sync with the kernel; for example after a
  bad buildkernel and using an old kernel.

Discussed-With: Matt Dillon

8 years agodump - rename md dumpsys to md_dumpsys
Alex Hornung [Fri, 18 Dec 2009 08:54:21 +0000 (08:54 +0000)]
dump - rename md dumpsys to md_dumpsys

* Rename the machine dependent dumpsys() to md_dumpsys().

* Add dumpsys() which takes no arguments, giving backward compatibility
  and the possibility to use 'call dumpsys' from the ddb> prompt.
  dumpsys() then calls md_dumpsys(), except for vkernels.

8 years agodevfs - Populate getattr va_size for disks properly
Alex Hornung [Thu, 17 Dec 2009 15:29:15 +0000 (15:29 +0000)]
devfs - Populate getattr va_size for disks properly

* As getattr() va_size is used for lseek SEEK_END, we need to set
  va_size for disk devices to the underlying device's media size.

* Beware that *stat() will not be affected, and st_size will remain
  the size of the devfs_node structure, as it has been so far.

Dragonfly-bug: http://bugs.dragonflybsd.org/issue1632
Reported-by: Steve O'Hara-Smith
8 years agoncurses: Update master to work with v5.7 in contrib.
Jan Lentfer [Thu, 17 Dec 2009 14:57:20 +0000 (15:57 +0100)]
ncurses: Update master to work with v5.7 in contrib.

8 years agoMerge branch 'vendor/NCURSES'
Jan Lentfer [Thu, 17 Dec 2009 14:05:32 +0000 (15:05 +0100)]
Merge branch 'vendor/NCURSES'

8 years agovendor/NCURSES: Import v5.7 sources
Jan Lentfer [Thu, 17 Dec 2009 14:03:46 +0000 (15:03 +0100)]
vendor/NCURSES: Import v5.7 sources

8 years agoncurses: Update to work without version tag.
Jan Lentfer [Thu, 17 Dec 2009 13:56:13 +0000 (14:56 +0100)]
ncurses: Update to work without version tag.

8 years agoMerge branch 'vendor/NCURSES'
Jan Lentfer [Thu, 17 Dec 2009 13:17:25 +0000 (14:17 +0100)]
Merge branch 'vendor/NCURSES'

8 years agovendor/NCURSES: Remove version tag.
Jan Lentfer [Thu, 17 Dec 2009 13:10:54 +0000 (14:10 +0100)]
vendor/NCURSES: Remove version tag.

8 years agokern/kern_kinfo.c: Fix incorrect population of kinfo_proc.kp_cru
Jan Lentfer [Thu, 17 Dec 2009 08:18:50 +0000 (09:18 +0100)]
kern/kern_kinfo.c: Fix incorrect population of kinfo_proc.kp_cru

8 years agoFix some warnings that creep up when compiling without INVARIANTS.
Sascha Wildner [Wed, 16 Dec 2009 08:36:59 +0000 (09:36 +0100)]
Fix some warnings that creep up when compiling without INVARIANTS.

* Add a __debugvar define to <sys/systm.h> which is empty when INVARIANTS
  is set (default) and __attribute__((unused)) when INVARIANTS is not set.

* Use __debugvar in the declaration of variables which are only used in a
  KASSERT or KKASSERT to avoid 'unused variable' warnings.

Suggested-by: aggelos
Reported-by: Joel K. Petterson <joelkpettersson@gmail.com>
Dragonfly-bug: <http://bugs.dragonflybsd.org/issue1629>

8 years agoFix the SOEKRIS build (kernel without I686_CPU).
Sascha Wildner [Wed, 16 Dec 2009 08:22:35 +0000 (09:22 +0100)]
Fix the SOEKRIS build (kernel without I686_CPU).

8 years agoFix the LINT build.
Sascha Wildner [Wed, 16 Dec 2009 08:21:48 +0000 (09:21 +0100)]
Fix the LINT build.

8 years agoUnbreak HAMMER root mounts
Michael Neumann [Wed, 16 Dec 2009 00:10:40 +0000 (01:10 +0100)]
Unbreak HAMMER root mounts

Absolute device names in vfs.root.mountfrom where handled incorrectly.

Reported-by: aggelos
8 years agokernel - adjust falloc and arguments to dupfdopen, fsetfd, fdcheckstd
Matthew Dillon [Tue, 15 Dec 2009 20:31:02 +0000 (12:31 -0800)]
kernel - adjust falloc and arguments to dupfdopen, fsetfd, fdcheckstd

* Make changes to the pointer type passed (proc, lwp, filedesc) to
  numerous routines.

* falloc() needs access to td_ucred (it was previously using p_ucred which
  is not MPSAFE).

* Adjust fsetfd() to make it conform to the other fsetfd*() procedures.

* Related changes to fdcheckstd() and dupfdopen().

8 years agokernel - use new td_ucred in numerous places
Matthew Dillon [Tue, 15 Dec 2009 18:43:48 +0000 (10:43 -0800)]
kernel - use new td_ucred in numerous places

* Use curthread->td_ucred in numerous places, primarily system calls,
  where curproc->p_ucred was used before.

* Clean up local variable use related to the above.

* Adjust several places where p_ucred is replaced to properly deal
  with lwp threading races to avoid accessing and freeing a potentially
  stale ucred.

* Adjust static procedures in the ktrace code to generally take lwp
  pointers instead of proc pointers.

8 years agoMerge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly
Matthew Dillon [Tue, 15 Dec 2009 18:41:50 +0000 (10:41 -0800)]
Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly

8 years agoAdd -Werror to the kernel build.
Sascha Wildner [Tue, 15 Dec 2009 14:52:07 +0000 (15:52 +0100)]
Add -Werror to the kernel build.

* Add a new 'nowerror' keyword to config(8) for parsing the 'files' files.
  When specified, it will prevent the file from being compiled with

  Note that files that have their own compile-with rules need "${WERROR}"
  added to get -Werror.

* Adjust all 'files' files accordingly: Set nowerror where we still warn
  (i386 or x86_64) and add "${WERROR}" to compile-with rules where it

* Remove explicit -Werror-implicit-function-declaration setting as it is
  now useless (-Wimplicit-function-declaration is already part of -Wall).

You will need an updated config(8) (i.e., one that understands 'nowerror')
for this to work so don't forget to quick/buildworld before recompiling
the kernel. nativekernel users will have to update their host config(8).

NO_WERROR in /etc/make.conf applies here as well and turns off the setting
of -Werror for the kernel, too.

In-discussion-with: corecode, aggelos, and others

8 years agomp_machdep.c: Fix some warnings of the SMP without APIC_IO build.
Sascha Wildner [Tue, 15 Dec 2009 14:10:40 +0000 (15:10 +0100)]
mp_machdep.c: Fix some warnings of the SMP without APIC_IO build.

8 years agoLINT - clear a bunch of warnings
Alex Hornung [Tue, 15 Dec 2009 12:42:14 +0000 (12:42 +0000)]
LINT - clear a bunch of warnings

* Clear a bunch of warnings that appear when building LINT kernel.

8 years agoFix warning in the UP build.
Sascha Wildner [Tue, 15 Dec 2009 11:14:30 +0000 (12:14 +0100)]
Fix warning in the UP build.

8 years agokernel - Third time's the charm - move lwp_ucred to td_ucred
Matthew Dillon [Tue, 15 Dec 2009 08:24:00 +0000 (00:24 -0800)]
kernel - Third time's the charm - move lwp_ucred to td_ucred

* Easier access to the cached ucred via the thread structure instead of
  the lwp.

8 years agosavecore(8) - Update manpage
Alex Hornung [Tue, 15 Dec 2009 08:00:53 +0000 (08:00 +0000)]
savecore(8) - Update manpage

* Update savecore man page to reflect changes to the savecore utility itself.

Obtained-from: FreeBSD

8 years agokernel - Make adjustments to the per-lwp ucred
Matthew Dillon [Tue, 15 Dec 2009 04:40:54 +0000 (20:40 -0800)]
kernel - Make adjustments to the per-lwp ucred

* Rename lwp_syscall_ucred to lwp_ucred and move ucred synchronization
  from syscall2() to userenter().  It now runs on any user entry into
  the kernel, not just for system calls.

  NOTE: A VM fault from the kernel itself does not call userenter() and
        does not trigger another synchronization.  This is the behavior
we desire, to ensure that lwp_ucred is stable.

  There are numerous non-syscall cases (e.g. signal, fault, etc) where
  we may need to access a safe ucred.

* Remove the SMP conditional.  lwp_ucred is now tracked for both UP and SMP.
  There is no point optimizing this for UP since there is basically no cost
  for tracking lwp_ucred.

8 years agokernel - move proc->p_lock, add lwp ucred caching
Matthew Dillon [Tue, 15 Dec 2009 03:29:43 +0000 (19:29 -0800)]
kernel - move proc->p_lock, add lwp ucred caching

* Move p_lock out from the struct proc copy area, change it from a
  char to an int, and make PHOLD/PRELE MPSAFE.

* System calls now cache a read-only copy of p->p_ucred in
  lp->lwp_syscall_ucred.  This will be used by system call code
  to access the ucred in a MPSAFE manner.

8 years agovga(4): Simplify conditions for mode rejection somewhat.
Sascha Wildner [Mon, 14 Dec 2009 20:16:50 +0000 (21:16 +0100)]
vga(4): Simplify conditions for mode rejection somewhat.

When mapping the video parameter table to our mode_map, only reject modes
which are neither 40x25, 80x25 nor 80x30, instead of rejecting or accepting
the whole table based on comparing the initial mode's BIOS and power-up
register settings.

Add a VGA_KEEP_POWERON_MODE option which (when set) preserves the register
settings which were found for the initial mode upon power-on for switching
back to it (or some mode derived from it) from another mode. The power-on
settings are also taken for the initial mode in case the video parameter
table has no valid settings for it.

This is kinda similar to what's proposed in FreeBSD's kern/64114.

8 years agoperiodic - Don't include timestamps in e-mail output by default.
Joe Talbott [Mon, 14 Dec 2009 17:25:39 +0000 (12:25 -0500)]
periodic - Don't include timestamps in e-mail output by default.

8 years agoHAMMER Utility - fix unfreeable pointer in 'hammer info'
Matthew Dillon [Mon, 14 Dec 2009 16:30:08 +0000 (08:30 -0800)]
HAMMER Utility - fix unfreeable pointer in 'hammer info'

* Fix the construction of the mountedon variable to ensure the
  variable can be free()'d.

Reported-by: "Steve O'Hara-Smith" <steve@sohara.org>
Also-suggested-by: Antonio Huete Jimenez <ahuete.devel@gmail.com>
8 years agoHAMMER Utility - Fix seg-fault in hammer cleanup if blank lines in config
Matthew Dillon [Mon, 14 Dec 2009 16:01:57 +0000 (08:01 -0800)]
HAMMER Utility - Fix seg-fault in hammer cleanup if blank lines in config

* If the HAMMER config contained blank lines the hammer cleanup
  directive would seg-fault trying to parse it.

* Ignore blank lines.  Also ignore lines beginning with a '#' when
  parsing the config.

Reported-by: elekktretterr@exemail.com.au
8 years agosetlocale.3: Correct function name.
Sascha Wildner [Mon, 14 Dec 2009 04:37:36 +0000 (05:37 +0100)]
setlocale.3: Correct function name.

8 years agopnp.4: Comment out some docs (code either gone or #if 0'd).
Sascha Wildner [Mon, 14 Dec 2009 04:24:37 +0000 (05:24 +0100)]
pnp.4: Comment out some docs (code either gone or #if 0'd).

8 years agorman.9: Comment out documentation for rman_await_resource().
Sascha Wildner [Mon, 14 Dec 2009 03:38:51 +0000 (04:38 +0100)]
rman.9: Comment out documentation for rman_await_resource().

The code is #if 0'd too.

8 years agovcount.9: count_udev() no longer exists.
Sascha Wildner [Mon, 14 Dec 2009 03:27:35 +0000 (04:27 +0100)]
vcount.9: count_udev() no longer exists.

See aec8eea47f8acbdec20843e7d8e7bc6d4255cce3

8 years agopthread_rwlock_timedwrlock.3: Correct function name.
Sascha Wildner [Mon, 14 Dec 2009 03:06:04 +0000 (04:06 +0100)]
pthread_rwlock_timedwrlock.3: Correct function name.

8 years agosleep.9: Adjust for serialize_sleep() -> zsleep() rename.
Sascha Wildner [Mon, 14 Dec 2009 02:55:41 +0000 (03:55 +0100)]
sleep.9: Adjust for serialize_sleep() -> zsleep() rename.

See ed3f6624e9093425dd733be90efc696df86c9e0e

Also, sync the MLINKS with the manual page.

8 years agokernel - Move MP lock inward, plus misc other stuff
Matthew Dillon [Sun, 13 Dec 2009 20:19:30 +0000 (12:19 -0800)]
kernel - Move MP lock inward, plus misc other stuff

* Remove the MPSAFE flag from the syscalls.master file.  All system calls
  are now called without the MP lock held and will acquire the MP lock if

* Shift the MP lock inward.  Try to leave most copyin/copyout operations
  outside the MP lock.  Reorder some of the copyouts in the linux emulation
  code to suit.

  Kernel resource operations are MP safe.

  Process ucred access is now outside the MP lock but not quite MP safe
  yet (will be fixed in a followup).

* Remove unnecessary KKASSERT(p) calls left over from the time before
  system calls where prefixed with sys_*

* Fix a bunch of cases in the linux emulation code when setting groups
  where the ngrp range check is incorrect.

8 years agoRemove misleading comments
Michael Neumann [Sun, 13 Dec 2009 20:15:09 +0000 (21:15 +0100)]
Remove misleading comments

8 years agoHAMMER - Stabilize and refactor volume removal
Michael Neumann [Sun, 13 Dec 2009 18:56:55 +0000 (19:56 +0100)]
HAMMER - Stabilize and refactor volume removal

* Correctly handle already freed layer1 entries.
* Correclty avoid reallocation on the volume to be removed
  during reblocking.
* Erase volume header after removal so that trying to mount it
  afterwards will fail (otherwise mount will silently use it).

8 years agolibc: Some warning fixes.
Sascha Wildner [Sun, 13 Dec 2009 18:26:08 +0000 (19:26 +0100)]
libc: Some warning fixes.

8 years agoSync libc's un-namespace.h with namespace.h.
Sascha Wildner [Sun, 13 Dec 2009 16:19:57 +0000 (17:19 +0100)]
Sync libc's un-namespace.h with namespace.h.

8 years agoi386: sync k6_mem.c with FreeBSD
Alexander Polakov [Sat, 12 Dec 2009 10:10:39 +0000 (13:10 +0300)]
i386: sync k6_mem.c with FreeBSD

 * style(9)
 * replace strcmp() with cpu_vendor_id

8 years agoi386: sync i686_mem with FreeBSD
Alexander Polakov [Sat, 12 Dec 2009 09:33:21 +0000 (12:33 +0300)]
i386: sync i686_mem with FreeBSD

 * style cleanup
 * replace cpu_vendor with cpu_vendor_id
 * fix performance problem with some cpus
   (see http://svn.freebsd.org/viewvc/base?view=revision&revision=177125)
 * add constants for the various fields in MTRR registers
 * hide MTRR under bootverbose

8 years agoidentcpu.c: add PLCMULDQ, AES and VMM feature strings
Alexander Polakov [Sat, 12 Dec 2009 07:37:33 +0000 (10:37 +0300)]
identcpu.c: add PLCMULDQ, AES and VMM feature strings

8 years agoi386: sync identcpu with FreeBSD
Alexander Polakov [Sat, 12 Dec 2009 21:47:27 +0000 (00:47 +0300)]
i386: sync identcpu with FreeBSD

 * more feature strings
 * core/package detection (from x86_64)
 * replace cpu_vendor with cpu_vendor_id
 * move cpu identification variables declaration
   to initcpu.c

8 years agoHAMMER - Fix reblocking operation of volume removal
Michael Neumann [Sat, 12 Dec 2009 20:58:46 +0000 (21:58 +0100)]
HAMMER - Fix reblocking operation of volume removal

* Reblock everything
* Interruptable
* Sync before free L1/L2 entries (bigblocks might be reserved).
* Fix a bug (layer2->zone vs. layer2_zone)

8 years agoHAMMER VFS - Fix incorrect hammer_cursor_removed_node() call in btree_remove()
Matthew Dillon [Sat, 12 Dec 2009 18:50:22 +0000 (10:50 -0800)]
HAMMER VFS - Fix incorrect hammer_cursor_removed_node() call in btree_remove()

* hammer_cursor_removed_node() was being called on the wrong node.  This
  fixes a parent != NULL assertion later on.

* There is still at least one known issue where btree_iterate can panic
  due to a cursor tracking issue that has not yet been located.

8 years agoHAMMER - Fix panic when removing volume
Michael Neumann [Sat, 12 Dec 2009 13:02:03 +0000 (14:02 +0100)]
HAMMER - Fix panic when removing volume

* unload buffers before unloading volume

* fix missing call to hammer_rel_volume() which lead to
  kernel panic upon umount

8 years agoRemove inclusion of <sys/cdefs.h> from kernel .c files.
Sascha Wildner [Sat, 12 Dec 2009 12:05:15 +0000 (13:05 +0100)]
Remove inclusion of <sys/cdefs.h> from kernel .c files.

They are not needed and mostly leftovers from former __FBSDID and the

Also add some missing CVS ids to the comments.

8 years agoHAMMER - Stabilize volume removal
Michael Neumann [Sat, 12 Dec 2009 01:25:41 +0000 (02:25 +0100)]
HAMMER - Stabilize volume removal

* assert that L1 entries point to the volume

* don't leave the volume in an inconsistent state
  if it is not completely empty.

8 years agoFix typo
Michael Neumann [Sat, 12 Dec 2009 00:02:39 +0000 (01:02 +0100)]
Fix typo

8 years agoHAMMER - Fix umount flushing issue for volume-add/del
Michael Neumann [Sat, 12 Dec 2009 00:00:22 +0000 (01:00 +0100)]
HAMMER - Fix umount flushing issue for volume-add/del

Only changes to the header of the root volume are automatically
flushed to disk, changes to headers of other volumes not. Do it

8 years agoAdd hotplugd options to the default rc.conf and rc.conf.5.
Sascha Wildner [Fri, 11 Dec 2009 23:39:31 +0000 (00:39 +0100)]
Add hotplugd options to the default rc.conf and rc.conf.5.

8 years agoHAMMER - Implement experimental volume removal
Michael Neumann [Fri, 11 Dec 2009 21:59:21 +0000 (22:59 +0100)]
HAMMER - Implement experimental volume removal

A volume other than the root volume can be removed with:

    hammer volume-del device filesystem

WARNING: Experimental!

8 years agoKill T/TCP
Aggelos Economopoulos [Thu, 10 Dec 2009 19:36:55 +0000 (21:36 +0200)]
Kill T/TCP

T/TCP has serious security issues by design and has not
found widespread usage. Keeping it around is also a
maintenance burden.

8 years agotop - bring in "pid" sort order from freebsd module (N-KEY and option -o "pid").
Jan Lentfer [Thu, 10 Dec 2009 14:02:12 +0000 (15:02 +0100)]
top - bring in "pid" sort order from freebsd module (N-KEY and option -o "pid").
    - rework pointer casts in compare_* functions after netbsd module's pattern.

8 years agoMerge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly
Jan Lentfer [Thu, 10 Dec 2009 11:51:01 +0000 (12:51 +0100)]
Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly

8 years agomake.conf and make.conf.5: Remove obsolete TOP_TABLE_SIZE option.
Jan Lentfer [Thu, 10 Dec 2009 11:49:00 +0000 (12:49 +0100)]
make.conf and make.conf.5: Remove obsolete TOP_TABLE_SIZE option.

8 years agohotplug.4 & hotplugd.8: Some mdoc cleanup.
Sascha Wildner [Thu, 10 Dec 2009 08:58:15 +0000 (09:58 +0100)]
hotplug.4 & hotplugd.8: Some mdoc cleanup.

8 years agoRename "hammer expand" to "hammer volume-add"
Michael Neumann [Wed, 9 Dec 2009 22:34:18 +0000 (23:34 +0100)]
Rename "hammer expand" to "hammer volume-add"

Also rename the ioctl interface function accordingly.


  hammer expand fs device

changed to:

  hammer volume-add device fs

8 years agoFix argument order for netmsg_init().
Sascha Wildner [Wed, 9 Dec 2009 11:36:44 +0000 (12:36 +0100)]
Fix argument order for netmsg_init().

8 years agoActually hook hotplug.4 into the build.
Sascha Wildner [Wed, 9 Dec 2009 09:58:19 +0000 (10:58 +0100)]
Actually hook hotplug.4 into the build.

8 years agotop - enable full command line display.
Jan Lentfer [Tue, 8 Dec 2009 15:30:41 +0000 (16:30 +0100)]
top - enable full command line display.

8 years agoFix LINT kernel build.
Sascha Wildner [Tue, 8 Dec 2009 07:55:53 +0000 (08:55 +0100)]
Fix LINT kernel build.

Specifically, building with IPDIVERT & SMP was broken.

8 years agohammer: update Version 4 description
Thomas Nikolajsen [Mon, 7 Dec 2009 22:39:09 +0000 (23:39 +0100)]
hammer: update Version 4 description

8 years agoHAMMER VFS - Fix WIP
Matthew Dillon [Mon, 7 Dec 2009 19:59:10 +0000 (11:59 -0800)]

* Change WIP to 5 so hammer version-upgrade doesn't complain when upgrading
  to version 4 (which is no longer WIP).

Reported-by: Johannes Hofmann
8 years agoHAMMER Utility - Allow expanding root filesystems again
Michael Neumann [Mon, 7 Dec 2009 17:51:54 +0000 (18:51 +0100)]
HAMMER Utility - Allow expanding root filesystems again

This reverts commit e3102897c486b844e6a59e419e7e98a0d1ca3246, because
as of commit 104cb849cad1c21c8929f73d7654e16c4fb8a268, multi-volume
HAMMER root-mounts should work.

Please note that "hammer expand" is still considered EXPERIMENTAL.