Commits on Mar 28, 2010
  1. kernel - Fix cluster_read random I/O heuristic

    * cluster_read was improperly accounting for the seqcount in the random
      I/O heuristic, failing to reduce the count in the loop which led to
      fairly maximal sequential read-ahead even for random I/O.
      Properly reduce the seqcount for both the initial buffer and in the
      read-ahead loop, which has the effect of terminating the loop early
      or not running it at all when the I/O is random.
    * HAMMER was not scaling the seqcount for the heuristic to BKVASIZE.
    * Thanks to Jan for spending the time required to bisect and track down the
    Reported-by: Jan Lentfer <>
    Matthew Dillon committed Mar 28, 2010
  2. kernel - vinum - Fix volume number for 'vinum read'

    * vinum read was not assigning the proper volume number, resulting in
      broken devices in /dev/vinum/vol.
    Submitted-by: Rumko
    Matthew Dillon committed Mar 28, 2010
  3. kernel - Add debug.panic sysctl

    * Add sysctl knob to panic the kernel for debugging purposes.
    Submitted-by: Venkatesh Srinivas <>
    Matthew Dillon committed Mar 28, 2010
  4. Sort sections in various manual pages.

    Sascha Wildner committed Mar 28, 2010
  5. Merge branch 'master' of ssh://…

    Matthew Dillon committed Mar 28, 2010
  6. kernel - Correct syscalls.master for shmat()

    * kernel config doesn't understand void *, use caddr_t.  This has no
      effect on the prototypes per-say.
    Matthew Dillon committed Mar 28, 2010
  7. Merge branch 'master' of ssh://…

    Matthew Dillon committed Mar 28, 2010
  8. kernel - Fix shmat() for 64-bit

    * shmat() was storing pointers into integer fields, which works fine
      for 32-bit but fails utterly for 64-bit.  Fixed.
    Reported-by: Stathis Kamperis <>
    Matthew Dillon committed Mar 28, 2010
Commits on Mar 27, 2010
  1. Further adjustments for 64 bit vkernels.

    * Put a vkernel on the ISO too, just like we do with the 32 bit vkernel.
    * Adjust miscellaneous manual pages.
    * Don't build bus modules for 64 bit vkernels, too.
    * Install 64 bit vkernels to /var/vkernel, too.
    Sascha Wildner committed Mar 27, 2010
  2. HAMMER VFS - Conditionalize more debugging kprintfs during recovery

    * Conditionalize recovery record record debug message as well
    Matthew Dillon committed Mar 27, 2010
  3. kernel - Move PANIC_REBOOT_WAIT_TIME to conf/options

    * Move it out of the platform-specific conf and into the generic conf.
    Submitted-by: Sylvestre Gallon <>
    Matthew Dillon committed Mar 27, 2010
  4. OpenSSL - Quickly patch openssl issue

    Submitted-by: Peter Avalos <>
    Matthew Dillon committed Mar 27, 2010
  5. msgrcv.3: No need for .Tn or .Ns here.

    Sascha Wildner committed Mar 27, 2010
  6. mandoc(1): Update to 1.9.19.

    For a full list of changes, see <>.
    Thanks-to: Kristaps Dzonsons
    Sascha Wildner committed Mar 27, 2010
  7. HAMMER VFS - Conditionalize debugging kprintfs during recovery

    * Conditionalize debug kprintfs on bootverbose during REDO recovery.
    Matthew Dillon committed Mar 27, 2010
  8. nrelease: replace cvsup with pkgsrc/net/csup

    Also mention net/csup and devel/cvsync in README file.
    YONETANI Tomokazu committed Mar 27, 2010
Commits on Mar 26, 2010
  1. HAMMER VFS - Remove some debugging

    * Remove print_backtrace() call in hammer_cursor_moved_element() which
      can cause x86_64 to panic.
    Matthew Dillon committed Mar 26, 2010
  2. HAMMER VFS - Implement REDO recovery code

    * Implement the primary REDO recovery mechanics and document the whole mess.
      REDO recovery essentially works using an expanded UNDO/REDO FIFO range.
      The nominal UNDO range, required for running UNDOs, is calculated first.
      If a REDO_SYNC record is found within this range the record specifies
      the expanded FIFO start offset required to run REDOs.  This is necessary
      because the inodes related to REDOs layed down in the FIFO are not
      necessarily flush in the next flush sequence, so the recovery code may
      have to scan the UNDO/REDO FIFO backwards considerably beyond the nominal
      recovery ranged required to run UNDOs in order to find active REDOs.
      When a REDO_SYNC record is found the recovery code expands the range
      by scanning backwards and validating the UNDO/REDO FIFO as it goes.
      It must make sure that the sequence space remains contiguous all the
      back to the REDO_SYNC point.
      While doing the reverse scan the recovery code collects REDO_TERM_*
      records which are used to mask earlier REDO_* records once their
      meta-data has been flushed.  Only TERM records in the expanded range
      that are outside the nominal UNDO range matter.  Any TERM records in
      the nominal UNDO range refer to meta-data which was undone by the
      stage1 UNDO recovery and so must be ignored (we want to run the
      related REDOs).
      The recovery code then does a forward scan through the entire expanded
      range of the UNDO/REDO FIFO executing any REDO_* records it finds
      which have not been masked by later REDO_TERM_* records.  It executes
      the REDOs using the live filesystem.
    * Expand the REDO FIFO structure, I had forgotten to add a localization
      field, otherwise HAMMER doesn't know which PFS the REDO is refering to.
    * Umount was improperly flushing the FIFO to the disk for read-only mounts.
      Fix it.
    * The recovery code now detects whether any REDOs are present by the
      observation of a REDO_SYNC record in the nominal UNDO recovery range.
      It will not run stage2 (the REDO pass) if it does not see this record.
    * Properly generate a REDO_SYNC record in the UNDO space when generating
      only REDOs, as well as UNDOs.  HAMMER was previously only generating
      the REDO_SYNC record when generating UNDOs.
    * Generate a REDO_TRUNC record during a file flush if any records were
      previously queued with REDO, even if those records no longer exist
      (e.g. due to a truncation) and even if REDO is now turned off due to
      redo heuristic limits being exceeded.
      This is necessary in order for the recovery code to properly sequence
      REDOs and TRUNCations during recovery.
    * For now be very verbose during redo recovery.
    * Make sure that mount -o ro and mount -u -o rw work properly.  The
      stage2 REDO cannot be run on a read-only mount because it requires a
      live filesystem.  The operations are defered until the mount is
      upgraded to rw.
    Matthew Dillon committed Mar 26, 2010
Commits on Mar 25, 2010
  1. cpdup - Fix bug where cpdup sometimes does not remove files on target

    * Fix a bug introduced in a recent commit which caused cpdup to sometimes
      not remove files on the target which were removed from the source.
    Submitted-by: Oliver Fromme <>
    Matthew Dillon committed Mar 25, 2010
  2. initdiskless - Handle cpio archives in accordance with the comments.

    Match cpio archive handling with what is indicated in the comments
    Don't bother using gzip since cpio can handle gzipped archives.
    Submitted-By: Rumko
    Issue: 1568
    Joe Talbott committed Mar 25, 2010
  3. nrelease - leftover from transition to building from pkgsrc tree

    the conditional is always true as PKGSRC_BOOTSTRAP_KIT is defined in nowhere.
    YONETANI Tomokazu committed Mar 24, 2010
Commits on Mar 24, 2010
  1. linux - Add syscalls

    * Stub out a number of syscalls using the DUMMY macro
    * Add a preliminary implementation of pipe2
    thesjg committed Mar 24, 2010
  2. remove several leftover debug kprintfs

    Reported-by: Rumko
    bwalex committed Mar 24, 2010
  3. linprocfs - further fix /proc/{pid}/maps

    * Change to use sbufs instead of ksprintf and don't copy out to userland
      until done parsing maps.
    * Avoid using EFBIG, since linux programs don't understand it.
    * Make use of the new vn_fullpath guessing so that it is likely that we
      get the right path.
    * Fix a bug when fullpath was NULL.
    Reported-by: Samuel J. Greear
    bwalex committed Mar 24, 2010
  4. cache_fullpath - Guess mountpoints if requested

    * cache_fullpath (and vn_fullpath) now take an extra parameter, guess,
      which, if != 0, makes cache_fullpath look for a matching mp if an ncp
      flagged as a mountpoint is found while traversing upwards.
      This fixes uses of *_fullpath when no nch is provided, but only a vp.
    * Change all consumers of cache_fullpath and vn_fullpath to accomodate
      for the extra parameter.
    Suggested-by: Matthew Dillon
    bwalex committed Mar 24, 2010
  5. Merge remote branch 'crater/master' into vkernel64

    Matthew Dillon committed Mar 24, 2010
  6. kernel - Turn on vfs.cache_mpsafe by default

    * Change the vfs.cache_mpsafe default from 0 to 1.
    Matthew Dillon committed Mar 24, 2010
  7. kernel - vm - Change inactive target to 1/4 memory instead of 1/2 mem…

    Matthew Dillon committed Mar 24, 2010
  8. tools - Add scripts for snapshot generation.

    Matthew Dillon committed Mar 24, 2010
Commits on Mar 23, 2010
  1. NFS - Remove debugging kprintfs

    * Remove the "Warning: NFS/rddirplus, UNABLE TO ENTER..." debugging
    Matthew Dillon committed Mar 23, 2010