Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Aug 30, 2015
  1. UTF8 locales: Refine Latin supplement more

    John Marino authored
    The multiplication and division sign were missing, and the control
    characters were not outlined.  Also set superscript 1,2,3 as digits.
    There are not showing up with iswdigit() function so that requires
    further investigation (iswdigit does work for '0','1',...'9' however)
  2. UTF8 locales: Include inverted exclamation mark too

    John Marino authored
    I was off by one character when I defined the first range on the previous
    commit.  It starts with an inverted exclamation mark, not the cent sign.
  3. UTF8 locales: Complete implemenation of Latin-1 Supplement

    John Marino authored
    The Latin-1 Supplement block of UTF-8 (U0080-U00FF) was not fully
    implemented.  Specifically it was missing U00A1 (inverted exclamation)
    through U00BF (inverted question mark).  Some popular characters this
    affected was cent sign, pound sign, Yen sign, broken bar, copyright
    symbol and superscripts.  On international keyboards, AltGR + number
    key wouldn't output correctly.  This addition to the manual ctype input
    definitions (and subsequent regenerations) will fix these issues.
    Reported by: profmakx, ivadasz
    Diagnostics: YRabbit
  4. hammer2 - live dedup, cleanup

    Matthew Dillon authored
    * First attempt at a live dedup.  The H2 strategy code now caches
      {data_off, crc} info to track recently accessed data blocks.  The
      cache is checked in the strategy_write code after device-level
      block encoding.  If we get a cache hit, the disk block is compared
      against the write data and reused if it matches.
    * This 'live' dedup should catch most typical 'cp' or 'cpdup' style
      commands.  There will also be a bulk dedup capable of catching
    * Note that 'df' output might be a bit confusing because the 'Used'
      field represents the topology and does not take into account dedups.
      'Avail' is calculated from the actual freemap.  To make things look
      right the total disk size is adjusted upward so it matches
      Used+Avail.  This mechanism will likely change.
      Here is an example with one copy of /usr/src and 13 copies of /usr/src.
      The first copy eats around 872MB, and a 'du' will show each copy eating
      about the same.  But because of dedup each subsequent copy actually only
      eats around 160MB as you can see from the 'Avail' field:
        test40# df -h /mnt
        Filesystem                             Size   Used  Avail Capacity
        /dev/serno/WD-WX51A82J2299.s1f@LOCAL    99G   934M    99G     1%
        Filesystem                             Size   Used  Avail Capacity
        /dev/serno/WD-WX51A82J2299.s1f@LOCAL   106G   8.5G    97G     8%
    * Rename hammer2_bulkscan.c to hammer2_bulkfree.c since that is
      basically all it does.
    * Move the synchronization code to its own file, hammer2_synchro.c.
      (note: This code is currently in rip-up mode and will not operate
Commits on Aug 29, 2015
  1. kernel: Use NULL for pointers in DRIVER_MODULE* calls.

    Sascha Wildner authored
  2. kernel: Add gnu/ to SUBDIR for MODULES_WITH_WORLD.

    Sascha Wildner authored
    I forgot to do that in b993bb8.
Commits on Aug 28, 2015
  1. hammer2 - bulkfree work, rip-up cluster sync.

    Matthew Dillon authored
    * bulkfree no longer attempts to flush.  Instead it deals with races against
      live by refusing to free blocks in L1 freemap chains that have been modified
      since the last sync.  This is a temporary workaround.
    * No longer propagate modify_tid during a flush.  modify_tid is now used
      as a localized but cluster-aware TID (whereas mirror_tid is only localized
      to a cluster node).
    * Start work on adding an update_tid to the blockref.  This will ultimately
      be used by the cluster synchronization code instead of modify_tid.
    * Adjust the DESIGN document for the new synchronization concept.
  2. kernel: Adjust sys/conf/files for recent drm changes.

    Sascha Wildner authored
  3. hammer2 - stabilization, sequencing

    Matthew Dillon authored
    * Change the way XOPs are dispatched.  Instead of dispatching a XOP
      to specific service threads in the xgrp we now queue the XOP to a
      per-cluster-node xopq and allow the service threads to compete for
    * Implement XOP dependency tracking.  Cluster nodes can complete execution
      of a XOP in any order and the frontend may complete early on-quorum while
      the XOP is still executing on other cluster nodes.  In this situation
      the inode lock may be released or cycled and another, dependent XOP may
      be issued, potentially executing out of order on the cluster nodes that
      have not yet finished (or possibly even started) the previous XOP.
      With the new queueing mechanism we also implement dependency tracking
      using the xop->ip1, ip2, and ip3 fields.  Dependent XOPs on (slow) cluster
      nodes will be held-back and ordering of dependent XOPS will be enforced.
      This fixes one of several cluster-related issues that will need to be
      addressed in order to free the frontend of slow backend cluster nodes.
    * The strategy XOP now uses a per-XOP lock instead of an xgrp lock
      (xgrp is no longer used in the xop structure and XOPs are now
      distributed to potentially different xgrps for each cluster node).
    * Normalize some structural field names.
    * bulkfree now takes a snapshot of vchain, using a separate (temporary)
      chain structure which isolates the entire topology scan from the
      live filesystem.
      This required minor adjustments to base/count handling for
    * Debugging adjustments.
  4. hammer2 - hide some debugging kprintfs

    Matthew Dillon authored
    * Hide debugging kprintfs related to flushes so we do not default to
      feeding console messages back to syslogd.
Commits on Aug 27, 2015
  1. drm/i915: Update to Linux 3.17

    François Tigeot authored
    * With an Haswell stability fix from Linux 3.19
    * Display-Port code not completely synced with Linux 3.17, this was
      breaking things as noticed by Rimvydas Jasinskas
    * Broadwell and Cherryview support improvements
    * Runtime power-management improvements
    * Panel Self-Refresh (PSR) now enabled by default on Haswell and Broadwell,
      leading to further power savings
    * Interrupt handling improvements
    * backlight brightness locking fixes by Yellow Rabbit
    * As usual, all sort of little fixes everywhere
  2. Remove colldef(1) manpage too via 'make upgrade'.

    Sascha Wildner authored
  3. drm: Add linux/notifier.h

    François Tigeot authored
    Obtained-from: FreeBSD/OFED
  4. hammer2 - cleanup

    Matthew Dillon authored
    * Cleanup some printfs.
  5. mount_hammer2 - Allow serno/ relative paths

    Matthew Dillon authored
    * Allow paths to omit the /dev.
  6. kernel - Add root mount support for hammer2

    Matthew Dillon authored
    * Don't try to interpret the device string in mountroot for
      hammer2 either (it was already not being interpreted for hammer).
  7. hammer2 - Add root mount support.

    Matthew Dillon authored
    * Add root mount support to the hammer2 vfs.
  8. hammer2 - Require a @label in the device path

    Matthew Dillon authored
    * If the user forgets to specify an @label in a hammer2 mount, complain
      in a way that does not leave the user confused.
    * newfs_hammer2 no longer creates a "BOOT" and "ROOT" PFS by default.
      It still always creates the "LOCAL" PFS which we may use later to hold
      hammer2 configuration data.
      Now hammer2 creates one additional label by default, when no -L option is
      specified, based on the partition from the device path:
      'a' - newfs_hammer2 will create a "BOOT" PFS
      'd' - newfs_hammer2 will create a "ROOT" PFS
       *  - newfs_hammer2 will create a "DATA" PFS
    * When -L is specified to indicate label(s) to create, newfs_hammer2 no longer
      creates any default labels other than "LOCAL" (which must always be
    * Adjust manual page.
  9. hammer2 - Fix hammer2 probe in boot code

    Matthew Dillon authored
    * During boot2 the BIOS dskread might not be able to handle a 64KB read
      request.  Break requests up into 16KB pieces in the hammer2 read code,
      allowing DragonFly to boot from a HAMMER2 boot partition.
    * Automatically dive the "BOOT" label under the superoot.
  10. hammer2 - Add WANT_HAMMER2 to buildworld

    Matthew Dillon authored
    * Setting WANT_HAMMER=YES in /etc/make.conf will build the hammer2 pieces.
  11. hammer2 - Fix unlink/reclaim panic, add macro for "BOOT" key

    Matthew Dillon authored
    * Fix confusion where an inode would erronously be placed on the unlinkq
      even though it was not moved to the hidden directory.
    * Add HAMMER2_BOOT_KEY for use by libstand.
  12. kernel - allow '@' key at mountroot> prompt

    Matthew Dillon authored
    * Allow the @ key to generate an '@' at the mountroot<> prompt
      so HAMMER2 label specifications can be typed in.
  13. uipc: Fix lockless unp_conn accessing and uipc_detach() race.

    Sepherosa Ziehau authored
               THREAD1                         THREAD2
      uipc_send(unp)                    uipc_detach(unp2)
      {                                 {
        lock(unp);                        unp_free(unp2)
        unp2 = unp->unp_conn;             {
          :                                 /* unp2 ref is 0 */
        unp_reference(unp2);                unp_detach(unp2); (***)
        /* unp2 ref is 1 */               }
          :                             }
        unp_free(unp2)                            :
        {                                         :
           /* unp2 ref is 0 */                    :
           unp_detach(unp2); (***)                :
        }                                         :
        unlock(unp);                              :
      }                                           :
    Two calls of unp_detach() on unp2!
    To fix this race, we drop all connections before calling unp_free()
    on uipc_detach() and uipc_abort() path.
  14. uipc: Assert global token is held in unp_connect_pair

    Sepherosa Ziehau authored
Commits on Aug 26, 2015
  1. regex.3: Add LIBRARY section.

    Sascha Wildner authored
  2. uipc: Return error from unp_connect_pair() if one of unps is not atta…

    Sepherosa Ziehau authored
  3. uipc: Don't abuse unp_conn for unconnect DGRAM unix sockets.

    Sepherosa Ziehau authored
    Use unp_find_lockref() to located the target unp instead.
  4. uipc: Fix various races on unp_connect() path.

    Sepherosa Ziehau authored
    And factor out unp_find_lockref(), which will be used to avoid
    abusing unpcb.unp_conn on uipc_send() for unconnected DGRAM
    unix sockets.
Commits on Aug 25, 2015
  1. kernel: Sync sys/conf/files with recent drm(4) and radeonkms(4) updates.

    Sascha Wildner authored
    This fixes building drm into the kernel.
  2. drm: Make the hlist API compatible with Linux 3.17

    François Tigeot authored
    * Replace hlist_add_after_rcu by hlist_add_behind_rcu
    * hlist_for_each_entry() now only uses 3 arguments
  3. kernel/linux: Add hweight64()

    François Tigeot authored
  4. kernel: Add bitcount64 to sys/systm.h

    François Tigeot authored
    Obtained-from: FreeBSD
Something went wrong with that request. Please try again.