Commits on Oct 29, 2010
  1. dummy commit so a 2.8 commitid is at the top for tagging.

    Matthew Dillon committed Oct 29, 2010
  2. nata - properly teardown interrupts on ENXIO

    Matthew Dillon committed Oct 29, 2010
    * When a ata controller cannot be attached (e.g. due to AHCI having
      already taken its resources) be sure to teardown and release any
      resources that had been obtained.
    * This fixes a panic on certain motherboards (e.g. gigabyte / phenomX6)
      where the ata controller ENXIO'd but left interrupt handlers setup.
      An interrupt would then occur, access stale memory, and blow the machine
  3. boot - Multiple changes to try to make cdboot work with more bioses

    Matthew Dillon committed Oct 29, 2010
    * Go back to single sector read.  This seems to help gigabyte bioses
      (phenom x 6).  Multi-sector reads tend to cause reads to fail with
      a timeout for reasons unknown.
    * Enable interrupts on start.
    * (non operator) replace jcxz.  It's a bit unclear whether this is an
      issue or not but some assemblers do not generate the correct prefix
      for jcxz.
    * Report read timeouts and delay 1 second before retrying.  At the
      very least this allows timeouts to be reported distinctly.
Commits on Oct 28, 2010
  1. nullfs - Add 'noexec' flag support.

    tuxillo committed with Matthew Dillon Oct 25, 2010
    * Make possible to mount a null-mount with 'noexec' option.
    * If the underlying filesystem is mounted as 'noexec' and no options
    were given at mount-time, the null mount will automatically
    have 'noexec'.
    Pointed-out-by: @dillon
  2. nrelease gui - add xterm resources

    Matthew Dillon committed Oct 28, 2010
    * Add some resources for xterms
  3. kernel - Fix serious issue w/ smp_invltlb(), plus other issues (2)

    Matthew Dillon committed Oct 28, 2010
    It looks like there are a number of additional cases where kernel threads
    can wind up running with interrupts physically disabled, which can create
    serious problems for smp_invltlb().
    It is not entirely clear how these deadlocks occur since the IPI code does
    a forced "STI" if it would otherwise loop, but there are several other
    hard loops that do not:  lwkt_switch looping on a vm_token, spin locks,
    and probably a few other places.
    We want interrupts to be enabled in all cases where these sorts of loops
    occur in order to be able to service Xinvltlb via smp_invltlb() as well
    as to prevent the LAPIC interrupt queue from filling up and livelocking
    something that it shouldn't.
    * lwkt_preempt() must save, zero, and restore gd->gd_intr_nesting_level
      when issuing a preemption.  Otherwise it will improperly panic on
      an assertion if the preempting interrupt thread code tries to switch out.
      It is perfectly acceptable for the preempting thread to block (it just
      switches back to the thread that got preempted).
      Why the assertion was not occuring before I do not know but it is
      probably related to threads getting stuck in 'cli' mode.  The additional
      changes below appear to significantly increase the number of interrupt
      thread preemptions which succeed (lwkt.preempt_{hit,miss} counters).
    * STI prior to running ithread_fast_handler() from all IDTVECs related
      to device interrupts.
    * STI in Xcpustop, Xipiq, and Xtimer.  These functions can call more
      complex C code and doing so with interrupts disabled may prevent
      Xinvltlb (via smp_invltlb()) from being executed, deadlocking the
    * Reorder a mfence().  Probably not needed but do it anyway.
  4. kernel - Fix serious issue w/ smp_invltlb(), plus other issues.

    Matthew Dillon committed Oct 28, 2010
    * smp_invltlb() was running asynchronously when it really needs to run
      synchronously.  Generally speaking the asynchronous ipi did in fact work
      pretty well but it still presents a 1uS window of opportunity which
      bypasses normal write ordering safeties.
      Run smp_invltlb() synchronously.
    * Fixing the above lea to the discovery of an ACPI issue.  The ACPI
      cpu idle halt code, at least on the gigabyte phenom x 6 I've been
      testing with, can cause IPIs to be lost.  Not just delayed, straight
      out lost.  Gone.  Poof.  It doesn't matter whether the IPI is a
      broadcast IPI or a directed IPI, it can still get lost.
      This was particularly noticeable when I fixed smp_invltlb() and my
      test box started locking up due to a random cpu sometimes not receiving
      the Xinvltlb IPI, and it is quite possible that this issue was also
      responsible for the random seg-faults we would sometimes get on 64-bit
      For now the acpi halt code has been disabled.  It can be enabled with
      sysctl machdep.cpu_idle_hlt=2 if you want to risk it.
    * Use doreti_syscall_ret and doreti_iret in several cases that were
      previously popping the interrupt frame and iret'ing manually.  This
      is operationally equivalent.
    * Add a missing "sti" in the idle loop.  Usually the cpu_idle_hook()
      deals with this but there are some alternative paths which might not,
      potentially causing interrupts to be delayed unnecessarily.
      At worst the idle thread has an extra sti in it.
    * Add v_smpinvltlb to struct vmmeter, plus some reserved slots for
      future expansion.
    * Adjust vmstat -s to report smpinvltlb's.
  5. Merge branch 'DragonFly_RELEASE_2_8' of ssh://…

    Matthew Dillon committed Oct 28, 2010
    …/repository/git/dragonfly into DragonFly_RELEASE_2_8
  6. nrelease: Add two options (dri and inet6) to the default mk.conf we s…

    Sascha Wildner committed Oct 28, 2010
    We use them for building the packages that go to the LiveCD.
    However, we don't add PKG_OPTIONS.scmgit=-scmgit-gui (used for the LiveCD's
    scmgit to save space). So people who want to continue using git without X11
    support will need to tweak mk.conf like before.
  7. nrelease/installer: Rename the UP/SMP kernel directories on the LiveCD.

    Sascha Wildner committed Oct 28, 2010
    Changed from UP -> kernel.UP and from SMP -> kernel.SMP.
    Requested-by: dillon
Commits on Oct 27, 2010
  1. installer: Install the kernel used to install the system to /boot/ker…

    Sascha Wildner committed Oct 27, 2010
    We assume that the kernel the user booted the LiveCD/image with for
    installing his system will be the kernel he wants to boot the system
    from, too.
  2. nrelease: Fix an annoying bug that was preventing the ISOs from booti…

    Sascha Wildner committed Oct 27, 2010
    …ng UP.
    It seems our CD9660 support in libstand at least has some problems with
    directory names containing dots. This prevented the LiveCD to properly
    boot the UP kernel. Don't ask me about how it ended up using the SMP
    kernel in this case, but that's what it did, making the UP boot
    impossible. My guess is it has something to do with the order in which
    stuff had been added to the ISO. But that's pure speculation. I'm not
    even sure about the dot part. It might as well be directory name length.
    In any case, UP boot from the LiveCD was broken.
    To fix all this, install the UP kernel to /boot/UP and the SMP kernel to
    /boot/SMP on the LiveCD and images. They will be picked up by the
    installer from there by a separate commit.
    While here, remove some non-functional code from We can't
    easily build i386/x86_64 dual boot ISOs at the moment (for this we would
    need cross-building pkgsrc).
    Thanks to sjg for bringing me on the right track.
  3. nrelease: Add a missing semicolon.

    Sascha Wildner committed Oct 27, 2010
  4. nrelease: Remove unused variable.

    Sascha Wildner committed Oct 26, 2010
  5. dloader: Fix error messages.

    Sascha Wildner committed Oct 26, 2010
Commits on Oct 26, 2010
  1. zic(8): Sync with tzcode2010n from

    Sascha Wildner committed Oct 26, 2010
    * Conditionally output extra types with most-recently-used offsets last
      (for use by systems with pre-2011 versions of localtime.c, helping to
      ensure that globals "altzone" and "timezone" get set correctly).
    * Fix generation of POSIX strings for zones with rules using
      "weekday<=n" forms of dates (thanks to Lei Liu for finding the
      problem). Also, limit output for non-POSIX-specificable zones defined
      to follow the same rules every year. (Note that no zones of either of
      the above types appear in the distribution; these changes cater to
      add-on zones).
  2. libc/stdtime: Sync localtime.c with tzcode2010n from

    Sascha Wildner committed Oct 26, 2010
    * Change to set timezone and altzone based on time types with greatest
      transition times (for the benefit of Asia/Seoul).
    * Initialize ttinfo structures filled by tzparse (thanks to Ravindra
      for reporting a valgrind warning).
  3. Sync zoneinfo database with tzdata2010n from

    Sascha Wildner committed Oct 26, 2010
    Theory:         8.4  -> 8.5
    asia:           8.61 -> 8.62
    australasia:    8.18 -> 8.19
    factory:        8.2  -> n/a       8.37 -> 8.38
    * Remove the 'factory' file and references to it. It is no longer needed.
    * asia: No DST in Hong Kong in 1977 (thanks to Jesper Norgaard for
        finding the problem).
    * australasia: Change end of DST in Samoa in 2011 from 2011-04-03 0:00 to
        2011-04-03 1:00 (thanks to Raymond Hughes for a reference).
    * Remove obsolete association of Vostok Station with South
        Magnetic Pole; add association with Lake Vostok (thanks to
        Petr Machata for finding the problem).
Commits on Oct 25, 2010
  1. nrelease - gui - Change window manager, cpdup additional directories

    Matthew Dillon committed Oct 25, 2010
    * Change to fvwm2
    * Autostart two xterms and clocks
    * Add simple button bar with two buttons 'xterm' and 'firefox'.
    * Installer now also installs /usr/src and /usr/pkgsrc from the stick.
  2. nrelease - Provide default /etc/X11, better rc.conf

    Matthew Dillon committed Oct 25, 2010
    * Don't make users agonize over /etc/X11, provide one even if we aren't
      the gui.  Also provide it in /etc.hdd so it gets installed onto the
    * This also fixes the problem where the gui install was failing to install
      /etc/X11 onto the HD.
    * The normal and gui installs were not installing reasonable rc.conf
      defaults.  Do so.
  3. nrelease - gui build adjustments

    Matthew Dillon committed Oct 25, 2010
    * Remove packages that failed to build.  Unfortunately rxvt was one of them.
      Note that I did some manual build hacks to other packages to build
      which aren't committed to pkgsrc.
    * Fix size calculation for usb disk img.
    * Adjust fluxbox menu firefox3->firefox and urxvt->xterm.
  4. build - define struct in6_addr in arpa/inet.h

    Matthew Dillon committed Oct 25, 2010
    * Use the same mechanic used for struct in_addr to define in6_addr in
      arpa/inet.h, conditionalizing the define in in6.h.
    * This helps w/pkgsrc builds.
  5. dummy commit so a 2.8 commitid is at the top for tagging.

    Matthew Dillon committed Oct 25, 2010
  6. nrelease - installer - Use different emergency interrupt mechanic

    Matthew Dillon committed Oct 25, 2010
    * Use a tuneable instead of a sysctl.
  7. ehci - add missing dependency on usb driver

    YONETANI Tomokazu committed with Matthew Dillon Oct 25, 2010
  8. docs - update tuning(7)

    Matthew Dillon committed Oct 25, 2010
    * Get rid of a ton of old cruft that no longer applies and replace with
      more applicable information.
  9. Fix typo in argv handling.

    tuxillo committed with Matthew Dillon Oct 24, 2010
Commits on Oct 24, 2010
  1. kernel - Temporarily back-out smp_invltlb() changes

    Matthew Dillon committed Oct 24, 2010
    * These changes are deadlocking i386 kernels, and it is too close to
      the release so back them out for the release.  The issue will be
      fixed another way post-release.
  2. kernel - Fix bug in the emergency interrupt polling thread

    Matthew Dillon committed Oct 24, 2010
    * This thread is only active when kern.emergency_intr_enable is non-zero
    * Get the next intr handler before processing the current one, since the
      act of processing the current handler may remove it.
    * In the emergency interrupt polling thread do not stall if we cannot get
      the serializer for the interrupt.  just skip the handler and we'll try
      again next time.
  3. sysctl.conf - Enable emergency interrupt polling at a low rate by def…

    Matthew Dillon committed Oct 24, 2010
    * Set kern.emergency_intr_enable=1 in the ISO/IMG sysctl.conf for
      newly installed kernels.  The idea is so people can get things working
      more quickly and worry about performance afterwords.
    * This commit actually got into the previous commit accidently so I am
      posting a following commit so we get a proper comment associated with it.
  4. hammer utility - Add force support to cleanup

    Matthew Dillon committed Oct 24, 2010
    * Allow hammer -f cleanup to override the normal timestamp checking and
      force the cleanup to run.
  5. nrelease - Add *_GENERIC_SMP for this release

    Matthew Dillon committed Oct 24, 2010
    * We will be stuffing both UP and SMP kernels on our release img/iso
      for 2.8.
  6. nrelease - Release build adjustments

    Matthew Dillon committed Oct 24, 2010
    * Add GITHOST override to Makefile.usr
    * For now checkout 2010Q3 by default in master, this will be changed
      to 'master' in a month or two but for now we want to match the release.
    * Add GITHOST feature to the nrelease Makefile, defaulting to  This allows developers who do release builds
      to specify a more local clone/mirror/copy of the pkgsrcv2.git and
      dragonfly.git repos.
      nrelease pulls from these repos so this can save a bunch of time.
    * nrelease now installs each kernel into its own kernel.XXX directory
      in /boot, with a complete set of modules for each kernel.  This is
      instead of installing all kernels into /boot/kernel/ and naming them
      differently inside /boot/kernel/.
      This is to conform to the recent dloader work and very recent new
      menu features.
    * All kernels+modules are installed with INSTALLSTRIPPEDMODULES so the
      ISO comes in at a reasonable size.
    * The release ISO now contains both a UP and a SMP kernel, selectable
      at boot time.
    * Do not try to include pkgsrc in the release ISO/IMG (at 1G+ it is too
      big).  We continue to include system sources.  There isn't enough room
      for full sources in the ISO/IMG.  Note that GUI builds will include
      a full pkgsrc and full sources, including a .git base for them.
    * nrelease now supports a IMGSIZE override on the make line (in sectors),
      for the usb image.
    * nrelease now autosizes the IMG file (when not overriden by IMGSIZE) to
      the nearest base-10 gigabyte to ensure that it fits on the USB stick
      and provide a bit of extra space for messing around.
  7. mtree - no longer create /boot/modules

    Matthew Dillon committed Oct 24, 2010
    * /boot/modules is no longer used, do not create it in mtree.