Commits on Apr 16, 2010
  1. Add more __printflike()'s and fix resulting fallout.

    Sascha Wildner committed Apr 16, 2010
  2. Move memmove(), strcasecmp() and strncasecmp() in !defined(KERNEL_VIR…

    This fixes the VKERNEL build.
    Sascha Wildner committed Apr 16, 2010
  3. ifconfig(1) - fix autoloading of kernel module

    YONETANI Tomokazu committed Apr 16, 2010
  4. mmc(4): Remove two unneeded .PATH lines in the Makefiles.

    Sascha Wildner committed Apr 16, 2010
  5. Add a condvar(9) manual page (based on FreeBSD's).

    Submitted-by: Venkatesh Srinivas <>
    Sascha Wildner committed Apr 16, 2010
  6. Bring in FreeBSD's MMC (MultiMediaCard) stack.

    mmc(4)   - The MMC bus
    sdhci(4) - Host controller driver
    mmcsd(4) - Memory card disk device driver
    SD, SDHC and MMC cards should be supported (tested with an SDHC card).
    Sascha Wildner committed Apr 16, 2010
  7. <sys/kthread.h>: Add some __printflike()'s.

    This guards against wrong conversion from FreeBSD's kthread_create()
    which takes two additional parameters.
    Fix the resulting fallout in kern_sensors.c
    Sascha Wildner committed Apr 16, 2010
  8. dsched: Fix x86_64 buildkernel.

    Sascha Wildner committed Apr 16, 2010
  9. HAMMER Util - Add 'checkmap', adjust hammer show

    * Add a checkmap function which scans the B-Tree, collects byte usage,
      and checks it against the blockmap.  This is still experimental.
    * Adjust hammer show to flag zone mismatches instead of asserting.
    Matthew Dillon committed Apr 16, 2010
Commits on Apr 15, 2010
  1. dsched - Change loader policy tunables (again)

    * Change them to follow the standard, dotted, format. Now the three
      types are:
        - kern.dsched.policy.da0
        - kern.dsched.policy.da
        - kern.dsched.policy.default
    Suggested-by: Sascha Wildner
    bwalex committed Apr 15, 2010
  2. dsched_fq - bump minor version

    bwalex committed Apr 14, 2010
  3. dsched_fq - Remove stale comment

    * Remove a useless comment
    bwalex committed Apr 14, 2010
  4. dsched - change loader tunables

    * Change loader tunables to dsched_pol avoiding the '*' character as it
      isn't supported by the loader.
    Reported-by: Petr Janda
    bwalex committed Apr 13, 2010
  5. dsched_fq - Avoid a rare div by 0

    * Avoid a rare division by 0 when calculating how busy the disk has
      been. It seems that sometimes the total disk time is 0, so when this
      happens, just assume that at least 1 us has passed.
    bwalex committed Apr 13, 2010
  6. dsched_fq - Refactor fqp allocation/destruction

    * Accept another argument for fqp allocation which is the corresponding
      fqmp. This is internally stored for proper self-removal out of the
      fqmp list on destruction.
    * This parameter is also used to link the fqp into the fqmp list
      automatically on creation, avoiding code duplication and deadlocking.
    * Changed the destruction refcount to -0x400 instead of -3 to make
      tracking of these cases simpler and not confuse them with bad
    * NOTE: this also fixes the longstanding issue of an eventual panic
      after a number of policy switches to/from fq.
    Reported-by: Antonio Huete (tuxillo@)
    bwalex committed Apr 13, 2010
  7. dsched_fq - Avoid int64 overflow on total_budget

    * Avoid an int64 overflow when calculating the total disk budget by
      losing bits of precision if needed.
    * Note that this might not quite fix the issue yet, as there is one
      other place where the int64 overflow can happen, although it is less
    * While here, make the rebalancing happen every 0.5s instead of every
      1s, effectively reducing the chance of int64 overflows.
    Reported-by: Antonio Huete (tuxillo@)
    bwalex committed Apr 9, 2010
  8. dsched_fq - Fix some issues, sprinkle some asserts

    * Add some strategic KKASSERT to catch negative values where they aren't
    * Avoid certain race conditions by using a local variable instead of
      using the generally accessible one (budget vs dpriv->budgetpb). Only
      set the final value once we are ready.
    bwalex committed Apr 9, 2010
  9. dsched_fq - decentralize balancing code

    * Move the balancing code out of the fq_balance_thread into
      fq_balance_Self, which should be called from dispatchers.
    * This essentially offloads the heavy processing onto (mostly) the
      processes/threads that do the I/O themselves.
    bwalex committed Apr 1, 2010
  10. dsched_fq - Refactor fq_balance_thread

    * Refactor fq_balance_thread to be an LWKT instead of callout.
    * Also make sure fqp->transactions, fqp->avg_latency don't change while
      we use them.
    bwalex committed Apr 1, 2010
  11. dsched_fq - Finalize switch to new disk-busy calc

    * Don't take the time since the last balancing run as a fixed value,
      instead calculate it.
    * Remove extraneous craft that suggested a disk is only busy if it also
      has many incomplete requests.
    bwalex committed Apr 1, 2010
  12. dsched_fq - Refactor and clean; handle flushes

    * Factor out an fq_drain which will either cancel or dispatch all the
      bios we have currently in all our fqp queues.
    * Clean out old comments and code.
    * Deal with flushes by not queuing them but rather letting dsched handle
      them. By returning EINVAL, dsched_queue will dispatch the flush
    bwalex committed Apr 1, 2010
  13. print_backtrace - Take parameter count

    * Modify print_backtrace to take a parameter 'count' that specifies the
      maximum number of frames to print for the backtrace.
    * Change all current consumers to use the new print_backtrace with count
      -1, resulting in the same behaviour as before this change.
    * Remove cruft in dsched_fq that simulated this behaviour previously.
    bwalex committed Mar 31, 2010
  14. dsched_fq - properly drain all queues on teardown

    * Properly drain all fqp queues on teardown to ensure that no bios and
      especially fqps are left dangling around.
    * This should fix the occasional panic during policy switches.
    bwalex committed Mar 31, 2010
  15. dsched_fq - minor cleanup and fix

    * Previously, wakes didn't correctly set the local idle bit in
      fq_dispatcher. Fix this by moving it into the right place.
    * Remove old code, replace comments, remove level of indentation.
    bwalex committed Mar 31, 2010
  16. dsched_fq - Improve performance, reduce idle time

    * Boost performance by dynamically adapting the rate limit on throttled
      threads if the disk becomes idle. This will ensure that the disk is
      always > 90% used if there are requests queued.
    bwalex committed Mar 31, 2010
  17. dsched_fq - Improve disk busy-% calculation

    * Use the disk idle time to account for disk business instead of the
      number of in-flight requests.
    Suggested-by: Simon "corecode" Schubert
    bwalex committed Mar 30, 2010
  18. dsched - Implement priorities and other improvements

    * Implemented fq priority support. This also includes the userland tool
    * Implement an exit_buffer hook to be able to clean up bufs before they
      are reused.
    * Some minor performance improvements in fq.
    bwalex committed Mar 30, 2010
  19. dsched - Add the FQ policy

    * Add the FQ (fair queueing) policy for the dsched I/O scheduler
    * Right now, this is at best experimental; it only starts rate limiting
      when the disk is busy. Each process is allocated an equal fair amount
      of disk time, based on the average request latency and tps.
      If the disk is busy and one process exceeeds its fair share, its bios
      are queued for later dispatch.
      To avoid starvation of heavy write processes, heavy writes are
      interleaved once every 3 scheduler rebalances. The scheduler rebalance
      time is currently set to 1s, so that exceeding processes will be
      limited after this period.
    * While I've done some limited testing on switching policies at runtime
      and even under heavy I/O going on, it is not recommended to do this,
      as some problems will crop up.
    * Future work to do:
    	- stabilization pass
    	- adding bucket support (i.e. having different priority buckets
    	  for groups of processes, so that for example processes A,B and
    	  C get a total aggregate of 80% disk time, while processes D
    	  and E get a total aggregate of 20%, instead of each process
    	  getting 20%)
    	- adding an "ionice" userland tool to allow to change the
    	  bucket/priority of a process
    bwalex committed Feb 25, 2010
  20. dsched - Tie the dsched framework into the system

    * tie the dsched framework into the system by binding it into the build,
      adding all the necessary hooks and other calls.
    bwalex committed Feb 25, 2010
  21. dsched - import the I/O scheduler framework dsched

    * Import my branch of the I/O scheduler framework. This commit only
      introduces the core dsched framework, without binding it into the
      system and without any policy except for the default one.
    bwalex committed Feb 25, 2010
  22. system boot - Fix savecore when swapdev != dumpdev

    * Specify the dumpdev on the savecore line.  Fixed issues when the swapdev
      is not the same as the dumpdev.
    Reported-by: Alexander Polakov <>
    Matthew Dillon committed Apr 15, 2010
  23. <sys/buf2.h>: Add bioq_takefirst() from FreeBSD for easier driver por…

    Sascha Wildner committed Apr 15, 2010
  24. Remove the inclusion of <machine/bus_at386.h> from some WLAN drivers.

    This file exists only on i386. Including it is not needed at all since
    <sys/bus.h> on i386 already brings it in (via <machine/bus_dma.h>) and
    also does the right thing in x86_64.
    This fixes module building on x86_64.
    Sascha Wildner committed Apr 15, 2010
Commits on Apr 14, 2010
  1. Merge remote branch 'rpaulo/net80211-update'

    Matthew Dillon committed Apr 14, 2010