Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Apr 16, 2010
  1. Antonio Huete Jimenez
  2. Add more __printflike()'s and fix resulting fallout.

    Sascha Wildner authored
  3. Move memmove(), strcasecmp() and strncasecmp() in !defined(KERNEL_VIR…

    Sascha Wildner authored
    …TUAL).
    
    This fixes the VKERNEL build.
  4. ifconfig(1) - fix autoloading of kernel module

    YONETANI Tomokazu authored
  5. mmc(4): Remove two unneeded .PATH lines in the Makefiles.

    Sascha Wildner authored
  6. Add a condvar(9) manual page (based on FreeBSD's).

    Sascha Wildner authored
    Submitted-by: Venkatesh Srinivas <me@endeavour.zapto.org>
  7. Bring in FreeBSD's MMC (MultiMediaCard) stack.

    Sascha Wildner authored
    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).
  8. <sys/kthread.h>: Add some __printflike()'s.

    Sascha Wildner authored
    This guards against wrong conversion from FreeBSD's kthread_create()
    which takes two additional parameters.
    
    Fix the resulting fallout in kern_sensors.c
  9. dsched: Fix x86_64 buildkernel.

    Sascha Wildner authored
  10. HAMMER Util - Add 'checkmap', adjust hammer show

    Matthew Dillon authored
    * 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.
Commits on Apr 15, 2010
  1. Alex Hornung

    dsched - Change loader policy tunables (again)

    bwalex authored
    * 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
  2. Alex Hornung

    dsched_fq - bump minor version

    bwalex authored
  3. Alex Hornung

    dsched_fq - Remove stale comment

    bwalex authored
    * Remove a useless comment
  4. Alex Hornung

    dsched - change loader tunables

    bwalex authored
    * Change loader tunables to dsched_pol avoiding the '*' character as it
      isn't supported by the loader.
    
    Reported-by: Petr Janda
  5. Alex Hornung

    dsched_fq - Avoid a rare div by 0

    bwalex authored
    * 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.
  6. Alex Hornung

    dsched_fq - Refactor fqp allocation/destruction

    bwalex authored
    * 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
      refcounting.
    
    * 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@)
  7. Alex Hornung

    dsched_fq - Avoid int64 overflow on total_budget

    bwalex authored
    * 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
      likely.
    
    * 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@)
  8. Alex Hornung

    dsched_fq - Fix some issues, sprinkle some asserts

    bwalex authored
    * Add some strategic KKASSERT to catch negative values where they aren't
      allowed.
    
    * 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.
  9. Alex Hornung

    dsched_fq - decentralize balancing code

    bwalex authored
    * 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.
  10. Alex Hornung

    dsched_fq - Refactor fq_balance_thread

    bwalex authored
    * 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.
  11. Alex Hornung

    dsched_fq - Finalize switch to new disk-busy calc

    bwalex authored
    * 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.
  12. Alex Hornung

    dsched_fq - Refactor and clean; handle flushes

    bwalex authored
    * 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
      itself.
  13. Alex Hornung

    print_backtrace - Take parameter count

    bwalex authored
    * 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.
  14. Alex Hornung

    dsched_fq - properly drain all queues on teardown

    bwalex authored
    * 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.
  15. Alex Hornung

    dsched_fq - minor cleanup and fix

    bwalex authored
    * 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.
  16. Alex Hornung

    dsched_fq - Improve performance, reduce idle time

    bwalex authored
    * 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.
  17. Alex Hornung

    dsched_fq - Improve disk busy-% calculation

    bwalex authored
    * Use the disk idle time to account for disk business instead of the
      number of in-flight requests.
    
    Suggested-by: Simon "corecode" Schubert
  18. Alex Hornung

    dsched - Implement priorities and other improvements

    bwalex authored
    * Implemented fq priority support. This also includes the userland tool
      ionice.
    
    * Implement an exit_buffer hook to be able to clean up bufs before they
      are reused.
    
    * Some minor performance improvements in fq.
  19. Alex Hornung

    dsched - Add the FQ policy

    bwalex authored
    * Add the FQ (fair queueing) policy for the dsched I/O scheduler
      framework.
    
    * 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
  20. Alex Hornung

    dsched - Tie the dsched framework into the system

    bwalex authored
    * tie the dsched framework into the system by binding it into the build,
      adding all the necessary hooks and other calls.
  21. Alex Hornung

    dsched - import the I/O scheduler framework dsched

    bwalex authored
    * 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.
  22. system boot - Fix savecore when swapdev != dumpdev

    Matthew Dillon authored
    * Specify the dumpdev on the savecore line.  Fixed issues when the swapdev
      is not the same as the dumpdev.
    
    Reported-by: Alexander Polakov <polachok@gmail.com>
  23. Remove the inclusion of <machine/bus_at386.h> from some WLAN drivers.

    Sascha Wildner authored
    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.
Commits on Apr 14, 2010
  1. Merge remote branch 'rpaulo/net80211-update'

    Matthew Dillon authored
Something went wrong with that request. Please try again.