9 years agodebug - Add mbufinfo
Matthew Dillon [Wed, 20 Oct 2010 17:34:24 +0000 (10:34 -0700)]
debug - Add mbufinfo

* This is a little utility which uses libkvm to scan all referenced mbufs
  in the kernel, for kernels compiled with MBUF_DEBUG.

9 years agolibc - Fix security issue in globbing code
Matthias Schmidt [Wed, 20 Oct 2010 17:08:20 +0000 (19:08 +0200)]
libc - Fix security issue in globbing code

There is a report about memory exhaustion in CVE-2010-2632 which also
affected us.  This patch, adopted from NetBSD, fixes the issue.

Tested-by: thomas@ and me
OK: dillon@

9 years agodevfs - Fix broken assertion
Matthew Dillon [Wed, 20 Oct 2010 16:45:19 +0000 (09:45 -0700)]
devfs - Fix broken assertion

* When checking fp->f_flag against ap->a_mode both sides must be
  masked with FMASK.

* Fixes a panic which can occur when a unix domain socket is being
  garbage collected (FMARK set).

9 years agodhclient-script.8: Comment out resolv.conf.tail(5) refs (no such manpage).
Sascha Wildner [Wed, 20 Oct 2010 13:38:23 +0000 (15:38 +0200)]
dhclient-script.8: Comment out resolv.conf.tail(5) refs (no such manpage).

9 years agomkinitrd.8: Adjust the manpage to the recent changes in the image path.
Sascha Wildner [Wed, 20 Oct 2010 12:28:37 +0000 (14:28 +0200)]
mkinitrd.8: Adjust the manpage to the recent changes in the image path.

9 years agokernel - Fix another hard critical section issue with syscons, revamp locking
Matthew Dillon [Wed, 20 Oct 2010 06:25:02 +0000 (23:25 -0700)]
kernel - Fix another hard critical section issue with syscons, revamp locking

* Use the new mtx_spinlock() facility instead of spinlock().  The new
  facility supports reetrant locks.

* Call all sc_*() functions with the syscons lock held.

* Fix an issue in blink_screen() where a hard critical section panic
  could potentially occur.

* Fix an issue in sc_puts() where adjusting the keyboard LED could still
  cause a hard critical section panic.  We just let the keyboard LED state
  be wrong for now.

9 years agokernel - revamp mtx_spinlock()
Matthew Dillon [Wed, 20 Oct 2010 06:19:29 +0000 (23:19 -0700)]
kernel - revamp mtx_spinlock()

* Revamp mtx_spinlock(), add mtx_spinlock_try(), and add mtx_spinunlock().

* Enter a proper hard critical section when using mtx_spinlock*(),
  just like the normal spinlock() code does.

  The difference is that mtx spinlocks have a ref count and thus are

* mtx_spinlock*() is not used in the code yet.  A followup commit will
  begin using it for the syscons lock.

9 years agocryptosoft - Zero out ctx after SHA1 or MD5 op
Alex Hornung [Tue, 19 Oct 2010 18:05:17 +0000 (19:05 +0100)]
cryptosoft - Zero out ctx after SHA1 or MD5 op

Obtained-from: OpenBSD

9 years agodloader - remove header and footer bars
Alex Hornung [Tue, 19 Oct 2010 18:01:23 +0000 (19:01 +0100)]
dloader - remove header and footer bars

9 years agokernel - Force NFSv3 for diskless nfs mount
Matthew Dillon [Tue, 19 Oct 2010 19:31:29 +0000 (12:31 -0700)]
kernel - Force NFSv3 for diskless nfs mount

* Ignore any file handles passed from bootp.  These are NFSv2 handles
  and NFSv2 just doesn't have the directory support needed if the
  server is running a filesystem with 64-bit directory cookies (as HAMMER

  This will force the kernel's diskless nfs mount to re-authorize and
  acquire a NFSv3 handle for the root mount.

* Undo a bit of a previous commit where I tried to enable readdirplus for
  NFSv2 to workaround NFSv2 directory cookie issues.  It just doesn't work.
  readdirplus is again force-disabled for NFSv2 mounts.

9 years agoboot - Bring in fix for qemu menu time bug
Matthew Dillon [Tue, 19 Oct 2010 17:42:49 +0000 (10:42 -0700)]
boot - Bring in fix for qemu menu time bug

* qemu does not debounce the RTC data.  The RTC chip uses a serial interface
  as well as a simple carry propagation incremenber which can catch
  transitions in the middle of an update, resulting in corrupted data.

* Simply requery the time until a stable value is found.

Suggested-by: Oliver Fromme <check+lajddm00rsub4p7p@fromme.com>
9 years agoFix a typo in the vkernel rc script.
Sascha Wildner [Mon, 18 Oct 2010 10:00:57 +0000 (12:00 +0200)]
Fix a typo in the vkernel rc script.

Submitted-by: Rumko
9 years agoHAMMER VFS - Minor bug (caught by assertion panic)
Matthew Dillon [Mon, 18 Oct 2010 07:49:59 +0000 (00:49 -0700)]
HAMMER VFS - Minor bug (caught by assertion panic)

* A snapshot can sometimes contain visible inodes whos nlinks count is 0,
  essentially the snapshot 'catches' the file in the middle of being deleted.

* HAMMER was attempting to truncate the data for such inodes if the file
  were opened and then closed, and failed to check whether the inode was a
  snapshot or a current inode.  This flowed through until it hit an assertion
  designed to detect precisely that case.

* Fixed by adding a check to determine if the inode is a snapshot and/or
  the filesystem is mounted read-only.

Repored-by: Max <herrgard@gmail.com>
9 years agoMerge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly
Matthew Dillon [Mon, 18 Oct 2010 07:17:18 +0000 (00:17 -0700)]
Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly

9 years agokernel - Fix bug in unp_gc()
Matthew Dillon [Mon, 18 Oct 2010 07:10:35 +0000 (00:10 -0700)]
kernel - Fix bug in unp_gc()

* Fix a race against a file close where FDEFER can wind up being left

* Fix a panic during unix domain socket garbage collection where a token
  was being acquired with a spinlock held.  Use trytoken instead and if
  it fails simply defer checking of the (fp) in question.

9 years agokernel - Remove confusing warning
Matthew Dillon [Mon, 18 Oct 2010 07:02:55 +0000 (00:02 -0700)]
kernel - Remove confusing warning

* Remove the "bio_page_alloc: WARNING emergency page allocation" warning
  and replace it with a sysctl counter.

* Keep the allocation failure warning and add a sysctl counter for it too.

9 years agoRaise default .Os value for the manual pages to 2.9 on 2.9.
Sascha Wildner [Mon, 18 Oct 2010 07:01:01 +0000 (09:01 +0200)]
Raise default .Os value for the manual pages to 2.9 on 2.9.

9 years agorelease engineering - Bump master to 2.9 v2.9.0
Matthew Dillon [Mon, 18 Oct 2010 05:31:50 +0000 (22:31 -0700)]
release engineering - Bump master to 2.9

9 years agokernel - Fix race in bio_track_wait()
Matthew Dillon [Mon, 18 Oct 2010 05:23:52 +0000 (22:23 -0700)]
kernel - Fix race in bio_track_wait()

* Remove an improper optimization prior to an atomic cmpset function call.

9 years agokernel - Fix NFS client & server bugs
Matthew Dillon [Mon, 18 Oct 2010 04:48:47 +0000 (21:48 -0700)]
kernel - Fix NFS client & server bugs

* A very long standing bug in the server cache was finally whacked.  The
  write-gather code was improperly returning the wrong mbuf for the server
  to reply with, causing client stalls.  This behavior depends on the client
  doing burst asynchronous writes.  Newer releases of DragonFly do burst
  asynchronous writes but older ones tended not to.

* The server cache was not MPSAFE.  Add a MP token to fix that.

* Remove critical sectons from the server cache which are no longer needed.

* Fix a potential client-side rpc request race where a request's
  NEEDSXMIT flag is not set until after the request possibly blocks,
  which can lead to issues if another thread picks up the request
  and then believes that it has already been transmitted when it
  has not.

* Document a big problem with NFSv2 and HAMMER-served directories.  NFSv2
  only has 32-bit directory cookies.  It is possible to work around the
  problem by using rdirplus (which is the default now).  However, some
  servers may not be able to handle rdirplus with a NFSv2 mount.

  Users who need to serve out NFSv2 cannot serve HAMMER directories
  with NFSv2 unless the clients support rdirplus.

  Our defaults are NFSv3 and rdirplus and NFSv3 does NOT have this problem.

Reported-by: Thomas Nikolajsen <thomas.nikolajsen@mail.dk>
9 years agokernel - Fix padlock panic in hw crypto
Matthew Dillon [Sun, 17 Oct 2010 19:56:44 +0000 (12:56 -0700)]
kernel - Fix padlock panic in hw crypto

* padlock_freesession_one() was zeroing out the structure which caused
  ses_freeaddr to be lost.  Restore ses_freeaddr.

Reported-by: lentferj
9 years agoBring in uguru(4) for ABIT temperature, voltage and fan sensors.
Sascha Wildner [Sun, 17 Oct 2010 13:27:18 +0000 (15:27 +0200)]
Bring in uguru(4) for ABIT temperature, voltage and fan sensors.

Ported-from: OpenBSD
Tested-by: Max Herrgard <herrgard@gmail.com>
9 years agodevfs - Fix mountpoint specific rules
Alex Hornung [Fri, 15 Oct 2010 15:03:42 +0000 (16:03 +0100)]
devfs - Fix mountpoint specific rules

* Mount-point specific rules depend upon f_mntonname to be correct, so
  populate this field of mnt_stat on mount().

Reported-by: Hugo
9 years agoundo - stat(2) may not populate struct stat upon failure.
YONETANI Tomokazu [Fri, 15 Oct 2010 01:20:48 +0000 (10:20 +0900)]
undo - stat(2) may not populate struct stat upon failure.

9 years agotest/vkernel - Include ROOTSIZE environment variable in Makefile's help
Antonio Huete Jimenez [Thu, 14 Oct 2010 19:37:55 +0000 (21:37 +0200)]
test/vkernel - Include ROOTSIZE environment variable in Makefile's help

9 years agoloader.8: Improve wording. Fix typos and an error.
Sascha Wildner [Thu, 14 Oct 2010 09:12:24 +0000 (11:12 +0200)]
loader.8: Improve wording. Fix typos and an error.

9 years agopowernow(4): Make it build on x86_64 and hook it in the x86_64 build.
Sascha Wildner [Thu, 14 Oct 2010 07:22:47 +0000 (09:22 +0200)]
powernow(4): Make it build on x86_64 and hook it in the x86_64 build.

Tested-by: Max Herrgard <herrgard@gmail.com>
9 years agoUpdate the rc.conf's man page's vkernel section.
Rumko [Tue, 12 Oct 2010 22:20:37 +0000 (00:20 +0200)]
Update the rc.conf's man page's vkernel section.

A few new vars were introduced and one was made optional.

9 years agorc.d/vkernel: pidfile related enhancements
Rumko [Sun, 10 Oct 2010 18:21:35 +0000 (20:21 +0200)]
rc.d/vkernel: pidfile related enhancements

Fix a typo when checking for the pid file when starting a vkernel.
Better checking if the vkernel being started is already running.

9 years agorc.d: completely stop the vkernels
Rumko [Sun, 10 Oct 2010 17:12:33 +0000 (19:12 +0200)]
rc.d: completely stop the vkernels

When stopping the vkernel, after a set timeout if the vkernel is still
alive, send a SIGKILL.
Also redirect STDIN when starting the vkernels.

9 years agovkernel: rc improvements
Rumko [Sun, 10 Oct 2010 15:20:40 +0000 (17:20 +0200)]
vkernel: rc improvements

Add a vkernel_bin var that contains the default path to the binary,
for all the vkernels without a vkernel specific entry.
Also the root image is no longer required (diskless vkernels have no
use for a root image).
And when stopping a vkernel a pidfile is required so we don't kill
innocent bystanders.

9 years agoucom - destroy device node on detach
YONETANI Tomokazu [Tue, 12 Oct 2010 12:32:14 +0000 (21:32 +0900)]
ucom - destroy device node on detach

Issuing `ls /dev' after unloading the driver triggered a panic because
of the stale device node.

9 years agoidentcpu.c: Fix a typo in the Features2 strings and rename AES -> AESNI.
Sascha Wildner [Tue, 12 Oct 2010 03:10:34 +0000 (05:10 +0200)]
identcpu.c: Fix a typo in the Features2 strings and rename AES -> AESNI.

9 years agoaesni(4): Move CPUID2_AESNI to specialreg.h. Also add CPUID2_PCLMULQDQ.
Sascha Wildner [Tue, 12 Oct 2010 03:10:01 +0000 (05:10 +0200)]
aesni(4): Move CPUID2_AESNI to specialreg.h. Also add CPUID2_PCLMULQDQ.

9 years agoAdd an aesni(4) manual page (taken from FreeBSD).
Sascha Wildner [Tue, 12 Oct 2010 02:44:37 +0000 (04:44 +0200)]
Add an aesni(4) manual page (taken from FreeBSD).

9 years agomdoc.local: Add FreeBSD 9.0.
Sascha Wildner [Tue, 12 Oct 2010 02:44:19 +0000 (04:44 +0200)]
mdoc.local: Add FreeBSD 9.0.

9 years agochroot.2: Add chroot_kernel() to .Nm.
Sascha Wildner [Tue, 12 Oct 2010 02:24:05 +0000 (04:24 +0200)]
chroot.2: Add chroot_kernel() to .Nm.

9 years agorename.2: Add renameat() to .Nm and .Rv.
Sascha Wildner [Tue, 12 Oct 2010 02:01:12 +0000 (04:01 +0200)]
rename.2: Add renameat() to .Nm and .Rv.

9 years agofortune -- Its time for pie.
Venkatesh Srinivas [Mon, 11 Oct 2010 22:09:00 +0000 (15:09 -0700)]
fortune -- Its time for pie.

9 years agoEnable DSO support in OpenSSL.
Peter Avalos [Sun, 10 Oct 2010 23:28:01 +0000 (13:28 -1000)]
Enable DSO support in OpenSSL.

OpenSSL can now load engines at run-time.  We install a few in
/usr/lib/engines/ by default.

9 years agonmalloc - Fix depot race - this should fix remaining issues with firefox.
Matthew Dillon [Mon, 11 Oct 2010 19:21:32 +0000 (12:21 -0700)]
nmalloc - Fix depot race - this should fix remaining issues with firefox.

* nmalloc was accidently calling the libc _pthread_spin_lock() stub
  even when threaded, causing all depot operations to race.  No actual
  lock was being acquired.

  Change it over to the internal _SPINLOCK() API.

* Expand libthread_xu's base spinlocks from 128 to 256 and use those
  for the depot lock.  Note that the depot[] array can be upwards of
  80 elements so lets not take any chances.

Reported-by: Pierre Abbat <phma@phma.optus.nu>, others
9 years agoMerge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly
Matthew Dillon [Mon, 11 Oct 2010 17:00:23 +0000 (10:00 -0700)]
Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly

9 years agoTest commit.
Sascha Wildner [Mon, 11 Oct 2010 10:26:18 +0000 (12:26 +0200)]
Test commit.

9 years agoTest commit.
Sascha Wildner [Mon, 11 Oct 2010 08:04:31 +0000 (10:04 +0200)]
Test commit.

9 years agoTest commit.
Sascha Wildner [Mon, 11 Oct 2010 07:04:33 +0000 (09:04 +0200)]
Test commit.

9 years agoTest commit.
Sascha Wildner [Mon, 11 Oct 2010 06:50:17 +0000 (08:50 +0200)]
Test commit.

9 years agoinstaller: Fix an issue in the UFS install.
Sascha Wildner [Sun, 10 Oct 2010 16:59:06 +0000 (18:59 +0200)]
installer: Fix an issue in the UFS install.

I had broken using '*' as partition size in my previous commit.

9 years agolibcrypto: Enable cryptodev support.
Peter Avalos [Sun, 10 Oct 2010 11:49:41 +0000 (01:49 -1000)]
libcrypto:  Enable cryptodev support.

Reported-by: Jan Lentfer <Jan.Lentfer@web.de>
9 years agoumass: Add support for WD USB HDD
Alex Hornung [Sun, 10 Oct 2010 06:58:20 +0000 (07:58 +0100)]
umass: Add support for WD USB HDD

* Add Western Digital USB HDD Passport

Submitted-by: Dylan Reinhold
Dragonfly-bug: http://bugs.dragonflybsd.org/issue1768

9 years agoMerge branch 'master' of git://uther.dragonflybsd.org/dragonfly
Matthias Schmidt [Sun, 10 Oct 2010 07:59:37 +0000 (09:59 +0200)]
Merge branch 'master' of git://uther.dragonflybsd.org/dragonfly

9 years agolibc - Move the newmag prestage code
Matthew Dillon [Sat, 9 Oct 2010 22:45:06 +0000 (15:45 -0700)]
libc - Move the newmag prestage code

* Avoid any possible assumptions due to reentrnacy by moving
  the pre-stage code.

9 years agovkernel - Scrap some old install stuff that no longer applies
Matthew Dillon [Sat, 9 Oct 2010 22:23:55 +0000 (15:23 -0700)]
vkernel - Scrap some old install stuff that no longer applies

* Scrap some stuff that prevented vkernels from being
  installed properly.

Submitted-by: Rumko
9 years agopf.os - Add DragonFly OS fingerprints
Matthias Schmidt [Sat, 9 Oct 2010 22:06:11 +0000 (00:06 +0200)]
pf.os - Add DragonFly OS fingerprints

9 years agolibc - Do some reorganization of nmalloc() and add asserts.
Matthew Dillon [Sat, 9 Oct 2010 21:47:47 +0000 (14:47 -0700)]
libc - Do some reorganization of nmalloc() and add asserts.

* Reorganize mtmagazine_alloc() and mtmagazine_free() to make the code
  more clear.  Add assertions on 'continue' loops so we abort on
  magazine memory corruption instead of looping forever.

* Pre-stage the new magazine that mtmagazine_free() might need to avoid
  having to relock the depot.  This also allows us to stage the new
  magazine directory into the per-thread loaded field instead of running
  it through the depot.

* Fix a deep or infinite recursion which can occur when mtmagazine_free()
  calls _slaballoc(), which it does sometimes when it needs a new
  magazine.  Avoid reentrancy by temporarily disabling the per-thread
  cache around the call.

9 years agoPF: Fix Operating System Fingerprinting
Jan Lentfer [Sat, 9 Oct 2010 17:40:30 +0000 (19:40 +0200)]
PF: Fix Operating System Fingerprinting

   Due to some wrongly imported byte-order conversions osfp was

   Reported and tested by: Matthias Schmidt (matthias@dragonflybsd.org)

9 years agolibc - Fix livelock in nmalloc
Matthew Dillon [Sat, 9 Oct 2010 16:26:46 +0000 (09:26 -0700)]
libc - Fix livelock in nmalloc

* free() -> _slabfree() was turning around and calling _slaballoc()
  with the depot lock held, which could lead to a livelock.  Fix by
  unlocking the depot lock around the call.

* Clean up and document other unrelated bits of nmalloc(). In particular,
  clean up magazine_alloc().

Reported-by: Siju George <sgeorge.ml@gmail.com>, and others
9 years agolibthread_xu: Add references for pthread_mutexattr_{get,set}pshared().
Sascha Wildner [Sat, 9 Oct 2010 14:41:13 +0000 (16:41 +0200)]
libthread_xu: Add references for pthread_mutexattr_{get,set}pshared().

9 years agopthread_condattr_getpshared(3): Correctly store the attribute.
Sascha Wildner [Sat, 9 Oct 2010 03:53:30 +0000 (05:53 +0200)]
pthread_condattr_getpshared(3): Correctly store the attribute.

9 years agolibprop: Clean up the Makefile a bit (and raise WARNS to 3).
Sascha Wildner [Fri, 8 Oct 2010 01:37:38 +0000 (03:37 +0200)]
libprop: Clean up the Makefile a bit (and raise WARNS to 3).

9 years agosend(2) - Add MSG_NOSIGNAL flag.
Antonio Huete Jimenez [Wed, 6 Oct 2010 20:16:03 +0000 (22:16 +0200)]
send(2) - Add MSG_NOSIGNAL flag.

POSIX:2008 introduces the MSG_NOSIGNAL flag that requests
not to send the SIGPIPE signal if an attempt to send
is made on a stream-oriented socket that is no longer
connected. The EPIPE error shall still be returned.

This fixes the build of multimedia/gst-plugins-bad in
current pkgsrc.

9 years agokernel: Remove unneeded inclusions of <sys/cdefs.h>.
Sascha Wildner [Wed, 6 Oct 2010 19:11:52 +0000 (21:11 +0200)]
kernel: Remove unneeded inclusions of <sys/cdefs.h>.

9 years agoMerge branch 'master' of git://uther.dragonflybsd.org/dragonfly
Matthias Schmidt [Wed, 6 Oct 2010 18:43:32 +0000 (20:43 +0200)]
Merge branch 'master' of git://uther.dragonflybsd.org/dragonfly

9 years agovkernel - Fix installkernel target
Matthias Schmidt [Wed, 6 Oct 2010 18:35:50 +0000 (20:35 +0200)]
vkernel - Fix installkernel target

The recommended command to install a vkernel is ATM:

make -DNO_MODULES installkernel KERNCONF=VKERNEL DESTDIR=/var/vkernel

This installed the plain kernel into /var/vkernel.  Due to the
introduction of the new loader (dloader), the installkernel target
refused to work, because it could not find a boot/ directory.

Skip the error message about missing boot/ and skip the creation of the
kernel.old/ backup directory when installing a vkernel kernel.

9 years agoinstaller: Clean up check_capacity() (UFS) a bit and improve the message.
Sascha Wildner [Fri, 1 Oct 2010 01:12:15 +0000 (03:12 +0200)]
installer: Clean up check_capacity() (UFS) a bit and improve the message.

9 years agopf.os - Sync with OpenBSD
Matthias Schmidt [Wed, 6 Oct 2010 09:21:19 +0000 (11:21 +0200)]
pf.os - Sync with OpenBSD

9 years agoloader(8): adjustment & man update
Thomas Nikolajsen [Wed, 6 Oct 2010 00:43:14 +0000 (02:43 +0200)]
loader(8): adjustment & man update

 * fix `help' command by using $base/loader.help,
otherwise `help' didn't work when pwd outside $base.
 * allow `cd' and `optcd' without arguments,
using $base as default.
 * use pager for `?' and `local' commands.
 * make `more' work with relative file names
 * truncate very long lines (more than 256 chars),
and give warning; before they stopped include processing;
these are typically just comments.
 * add `optcd kernel' when using ESC in `menu',
like the menu item (`9') that exits via dloader.menu.
 * remove extra line in Fred menu (on right)
(it was scrolling warning about truncated line off screen).
 * remove obsolete variables in loader.conf.
 * update `help' output.
 * update man pages.

9 years agolibstand: add fgets()
Thomas Nikolajsen [Tue, 5 Oct 2010 22:44:45 +0000 (00:44 +0200)]
libstand: add fgets()

This fgets() operates on int fd, not FILE * stream,
as libstand doesn't supply FILE type.

fgetstr() is already in libstand, but it can't determine
if line did fit in supplied buffer.

9 years agolibstand.3: remove .Xo/.Xc
Thomas Nikolajsen [Wed, 6 Oct 2010 00:32:03 +0000 (02:32 +0200)]
libstand.3: remove .Xo/.Xc

9 years agokernel - Fix vmtotal sysctl
Matthew Dillon [Tue, 5 Oct 2010 23:07:32 +0000 (16:07 -0700)]
kernel - Fix vmtotal sysctl

* Recognize unbounded VM objects and do not try to include their sizes
  in the vmtotal structure.

* Should fix systat -vm output for the All/Tot entry.

* Redo the vmstat structure.  Use long's and int64_t's as

* Adjust systat and vmstat to deal with the new field widths
  in struct vmstat.

Reported-by: Antonio Huete Jimenez <ahuete.devel@gmail.com>
9 years agoMerge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly
Matthew Dillon [Tue, 5 Oct 2010 21:03:24 +0000 (14:03 -0700)]
Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly

9 years agoHAMMER VFS - Fix deadlock during read-only HAMMER mount (2)
Matthew Dillon [Tue, 5 Oct 2010 21:02:14 +0000 (14:02 -0700)]
HAMMER VFS - Fix deadlock during read-only HAMMER mount (2)

* Slightly more correct fix.  Only translate zone offsets which can be

Tested-by: Matthias Schmidt <matthias@dragonflybsd.org>
9 years agoinstaller: Raise the recommended size for / in the UFS install.
Sascha Wildner [Tue, 5 Oct 2010 19:33:29 +0000 (21:33 +0200)]
installer: Raise the recommended size for / in the UFS install.

It turned out that the x86_64 install's contents of / didn't fit into
256M. So increase to 320M for the smallest supported disks (2-4G) and
raise it gradually to 640M (4-10G) and 768 (anything above 10G). The
latter is also the HAMMER install's default recommendation.

The best solution here would probably be to base the recommendations
on the actual contents of the medium (to be tackled after the release).

Reported-by: Przemyslaw Pawelczyk <pp_o2@o2.pl>
9 years agokernel - Fix panic when unblanking screen saver
Matthew Dillon [Tue, 5 Oct 2010 18:49:51 +0000 (11:49 -0700)]
kernel - Fix panic when unblanking screen saver

* When console output occurs while the screen is blanked, e.g. when
  using something like blank_saver.ko, we hit a hard path lock assertion.

* Queue the unblank request instead of trying to unblank the screen
  directly in this path.

Reported-by: Sascha Wildner <swildner@crater.dragonflybsd.org>
9 years agoHAMMER VFS - Fix deadlock during read-only HAMMER mount
Matthew Dillon [Tue, 5 Oct 2010 16:36:42 +0000 (09:36 -0700)]
HAMMER VFS - Fix deadlock during read-only HAMMER mount

* HAMMER UNDOs are addressed using zone-1 (HAMMER_ZONE_RAW_VOLUME) and
  zone-2 (HAMMER_ZONE_RAW_BUFFER) data offsets.  Normal filesystem
  operations may use zone references which are incompatible with the UNDO
  data references.  That is, they may use a different zone accessing
  the same physical disk offset.

  Normally when the UNDO is run the modified buffers are flushed to disk
  and the buffers are destroyed before normal filesystem operations begin.
  Thus it isn't a problem for normal R+W mounts.

* Read-only mounts are a different story.  The modified buffers from the
  undo are left in core memory (they cannot be flushed yet because the
  mount is read-only).  The incompatible zones cause the HAMMER buffer
  system to lose track of related locked buffer cache buffers and can lead
  to a deadlock.

* Fix this by explicitly checking for a read-only mount and doing a
  secondary lookup using the RAW zone for certain selected zones.

Reported-by: Matthias Schmidt <matthias@dragonflybsd.org>
9 years agoprocfs: Add vnode path to /proc/<pid>/map for vn-backed vm objects.
Venkatesh Srinivas [Tue, 5 Oct 2010 13:18:02 +0000 (06:18 -0700)]
procfs: Add vnode path to /proc/<pid>/map for vn-backed vm objects.

9 years agoliblvm: Raise WARNS to 1.
Sascha Wildner [Tue, 5 Oct 2010 07:50:19 +0000 (09:50 +0200)]
liblvm: Raise WARNS to 1.

Since __BSD_VISIBLE is unset for liblvm compilation, we need to add the
standard define for alloca() (taken from <stdlib.h>) to lib.h to prevent

While here, clean up the Makefile a bit, too.

9 years agolibcryptsetup & libluks: Raise WARNS to 1.
Sascha Wildner [Tue, 5 Oct 2010 07:43:12 +0000 (09:43 +0200)]
libcryptsetup & libluks: Raise WARNS to 1.

9 years agogcc44: Teach gcc44 about our special conversions, such as %b and %D.
Sascha Wildner [Tue, 5 Oct 2010 07:26:41 +0000 (09:26 +0200)]
gcc44: Teach gcc44 about our special conversions, such as %b and %D.

Some special code is necessary to have %D take precedence over the DD
length specifier (which is not present in gcc41). Eventually, we will
probably have to get rid of all these local conversions entirely.

This commit gets rid of a large bunch of warnings when compiling the
kernel with gcc44.

9 years agotop - Adjust docs
Matthew Dillon [Tue, 5 Oct 2010 02:34:54 +0000 (19:34 -0700)]
top - Adjust docs

* Adjust manual page for PRES addition.

9 years agotop - Adjust top display
Matthew Dillon [Tue, 5 Oct 2010 02:30:07 +0000 (19:30 -0700)]
top - Adjust top display

* Replace RES with PRES, remove PRI.  This opens up more space for the
  command which had gotten too squeezed.

* Realign columns for smp and non-smp displays.

* Remove annoying "This terminal can only display..." message from the
  original contrib code.

9 years agokernel - Add Proportional RSS (PRES)
Matthew Dillon [Tue, 5 Oct 2010 02:16:57 +0000 (19:16 -0700)]
kernel - Add Proportional RSS (PRES)

* Track vm_object sharing and calculate proportional RSS in kinfo_proc

* Add PRES to the top(1) output

Submitted-by: Pratyush Kshirsagar <pratyush.kshirsagar@gmail.com>
9 years agonetwork - Fix altq_red
Matthew Dillon [Tue, 5 Oct 2010 00:44:24 +0000 (17:44 -0700)]
network - Fix altq_red

* altq_red was asserting that it could only be called from PF when in fact
  it can also be called via ifq_enqueue().

* Add code to handle the ifq_enqueue path.

Reported-by: Francois Tigeot <ftigeot@wolfpond.org>
9 years agopkgsrc - Hack for dynamic loading of certain libgcc.a symbols (2)
Matthew Dillon [Mon, 4 Oct 2010 20:15:15 +0000 (13:15 -0700)]
pkgsrc - Hack for dynamic loading of certain libgcc.a symbols (2)

* Make the hack i386-specific.

9 years agopkgsrc - Hack for dynamic loading of certain libgcc.a symbols
Matthew Dillon [Mon, 4 Oct 2010 18:48:35 +0000 (11:48 -0700)]
pkgsrc - Hack for dynamic loading of certain libgcc.a symbols

* For some reason firefox cannot find __popcountsi2 in a late reference
  from libcairo.so.2, which occurs when certain page content is accessed.
  This reference does not occur immediately.

* Add a weak reference from libc to force the symbol to be available,
  which appears to fix the problem.

* This is a horrible hack and currently we do not know why the dynamic
  link code cannot find the symbol.

9 years agolibc - Fix some recursion issues during thread teardown
Matthew Dillon [Mon, 4 Oct 2010 18:35:48 +0000 (11:35 -0700)]
libc - Fix some recursion issues during thread teardown

* thread destructors called by sophisticated pthreaded programs such
  as firefox can wind up allocating/freeing space multiple times
  AFTER nmalloc's destructor is run.

  This can leave the mtmagazine in a weird state because it's destructor
  fails to NULL-out tp->mags[i].loaded and tp->mags[i].prev.

* Properly NULL out tp->mags[i].{loaded,prev} in the destructor.

* Lockout mtmagazine use while the mtmagazine is being initialized or

* Permanently lockout mtmagazine use after its destructor has been run.

* Instead of trying to initialize the mtmagazine on the first free, which
  might not occur until the destrutor is run (causing pthreads to complain
  about destructors being left hanging), have libthread_xu call a new
  function _nmalloc_thr_init() during thread creation and do all the slab
  initialization there.

9 years agonetwork - Fix udp multicast assertion & mplock for ip_output
Matthew Dillon [Mon, 4 Oct 2010 15:34:03 +0000 (08:34 -0700)]
network - Fix udp multicast assertion & mplock for ip_output

* Fix an assertion which is no longer valid, the MP lock is no longer
  held by the caller when passing a multicast packet into ip_output.

* Move the mp lock for udp multicast packets inward.  The underlying code
  still isn't mpsafe.

Reported-by: "Edward O'Callaghan" <eocallaghan@auroraux.org>
9 years agoFix VKERNEL64 build.
Sascha Wildner [Mon, 4 Oct 2010 11:03:00 +0000 (13:03 +0200)]
Fix VKERNEL64 build.

9 years agokernel: Fix numerous errors in printf() like formats and arguments.
Sascha Wildner [Mon, 4 Oct 2010 10:58:06 +0000 (12:58 +0200)]
kernel: Fix numerous errors in printf() like formats and arguments.

9 years agokernel: Add some __printflike()'s to protect against format issues.
Sascha Wildner [Mon, 4 Oct 2010 06:03:43 +0000 (08:03 +0200)]
kernel: Add some __printflike()'s to protect against format issues.

9 years agoTeach gcc41 about %b and %D taking two parameters in a better way.
Sascha Wildner [Mon, 4 Oct 2010 06:33:54 +0000 (08:33 +0200)]
Teach gcc41 about %b and %D taking two parameters in a better way.

Previously, we had special code to handle the properties of %b and %D
(which are for printing bit masks and hexdumps, respectively). Remove
this code and instead use chained format_char_info's to pass the
information that both of these formats consume two arguments.

9 years agohammer(8): Fix wrong message.
Sascha Wildner [Sun, 3 Oct 2010 17:54:39 +0000 (19:54 +0200)]
hammer(8): Fix wrong message.

Noticed-by: beket
9 years agopflogd(8): Use TAB for indentation.
Sascha Wildner [Sat, 2 Oct 2010 21:09:22 +0000 (23:09 +0200)]
pflogd(8): Use TAB for indentation.

9 years agopflogd(8): Raise WARNS to 6.
Sascha Wildner [Sat, 2 Oct 2010 11:03:43 +0000 (13:03 +0200)]
pflogd(8): Raise WARNS to 6.

9 years agorc.resume - Reassociate with WPA client on resume
Matthias Schmidt [Sat, 2 Oct 2010 12:55:01 +0000 (14:55 +0200)]
rc.resume - Reassociate with WPA client on resume

change a comment while here and accept ACPI state 5.

Obtained-From: FreeBSD

9 years agogzip - Do not return from write after each inflate
Matthias Schmidt [Fri, 1 Oct 2010 19:20:23 +0000 (21:20 +0200)]
gzip - Do not return from write after each inflate

From FreeBSDs commit message:

In the past gunzip(1) write()'s after each inflate return.  This is
not optimal from a performance standpoint since the write buffer is
not necessarily be filled up when the inflate rountine reached the
end of input buffer and it's not the end of file.

Submitted-By: Xin LI <delphij@FreeBSD.org>
Obatined-From: FreeBSD

9 years agoRegenerate the pciconf(8) database
Sascha Wildner [Fri, 1 Oct 2010 15:04:39 +0000 (17:04 +0200)]
Regenerate the pciconf(8) database

...from the following files:

Hart:    Jan 22, 2008 (version 671)
Boemler: Oct  1, 2010
Mares:   Aug 27, 2010

9 years agofdisk(8): Fix a bug when reading >1TB slice sizes from a config file.
Sascha Wildner [Fri, 1 Oct 2010 05:24:20 +0000 (07:24 +0200)]
fdisk(8): Fix a bug when reading >1TB slice sizes from a config file.

The numerical parameters in configuration file lines were previously
read into signed integers. This would cause a problem with a config
file line like this (for a ~1.2TB slice):

p 1 165 63 2491404993

The length parameter (2491404993) for the slice would have exceeded
INT_MAX (2147483647) and the slice would have been truncated to 1TB.

Since the installer is using fdisk with a configuration file, it
was previously not possible to use a whole >1TB disk from it (one
had to work around it from the command line).

To fix all this, read the numerical parameters in configuration file
lines into a long long.

Note that this change only affects the variable type into which the
parameters read from the file are stored and not any on-disk structures.
Also, checks at different places in fdisk(8) will of course still ensure
that we don't ever go above 2TB.

9 years agosshd - Remove libmd from link to fix SHA*() function conflicts
Matthew Dillon [Fri, 1 Oct 2010 02:01:51 +0000 (19:01 -0700)]
sshd - Remove libmd from link to fix SHA*() function conflicts

* libmd conflicts with libcrypto, remove libmd from the link to fix
  conflicts which were breaking putty connections to sshd.

Reported-by: Peter Avalos <peter@theshell.com>
9 years agoSYSINIT.9: More mdoc fixes.
Sascha Wildner [Fri, 1 Oct 2010 00:04:22 +0000 (02:04 +0200)]
SYSINIT.9: More mdoc fixes.

9 years agoSYSINIT.9: Some cleanup (mostly whitespace).
Sascha Wildner [Thu, 30 Sep 2010 22:41:38 +0000 (00:41 +0200)]
SYSINIT.9: Some cleanup (mostly whitespace).