1. 14 Aug, 2015 5 commits
    • mav's avatar
      MFV r285025: 6033 arc_adjust() should search MFU lists for oldest buffer · 14f3f345
      mav authored
      when adjusting MFU size.
        When we're looking for the list containing oldest buffer we never
        actually look at the MFU lists even when we try to evict from MFU.
        looks like a copy paste error, the fix is here:
      Reviewed by: Saso Kiselkov <saso.kiselkov@nexenta.com>
      Reviewed by: Xin Li <delphij@delphij.net>
      Reviewed by: Prakash Surya <me@prakashsurya.com>
      Approved by: Matthew Ahrens <mahrens@delphix.com>
      Author: Alek Pinchuk <alek@nexenta.com>
      Obtained from:  illumos
    • mav's avatar
      MFV r277431: 5497 lock contention on arcs_mtx · 71fb6300
      mav authored
      Reviewed by: George Wilson <george.wilson@delphix.com>
      Reviewed by: Matthew Ahrens <mahrens@delphix.com>
      Reviewed by: Richard Elling <richard.elling@richardelling.com>
      Approved by: Dan McDonald <danmcd@omniti.com>
      Author: Prakash Surya <prakash.surya@delphix.com>
      This patch attempts to reduce lock contention on the current arc_state_t
      mutexes. These mutexes are used liberally to protect the number of LRU
      lists within the ARC (e.g. ARC_mru, ARC_mfu, etc). The granularity at
      which these locks are acquired has been shown to greatly affect the
      performance of highly concurrent, cached workloads.
    • mav's avatar
      Revert part of r205231, introducing multiple ARC state locks. · 6c172b24
      mav authored
      This local implementation will be replaced by one from Illumos to reduce
      code divergence and make further merges easier.
    • pfg's avatar
      Move the stack protector to a new "secure" directory · 9b366d35
      pfg authored
      As part of the code refactoring to support FORTIFY_SOURCE we want
      a new subdirectory "secure" to keep the files related to security.
      Move the stack protector functions to this new directory.
      No functional change.
      Differential Review:	https://reviews.freebsd.org/D3333
    • araujo's avatar
      Make clear the bcopy(3) manpage regards when it was marked as LEGACY · 0488e047
      araujo authored
      as well as when it was removed from POSIX specification.
      Reviewed by:		theraven, wblock, bapt, rodrigc
      Approved by:		bapt, rodrigc (mentor)
      Differential Revision:	D3374
  2. 13 Aug, 2015 26 commits
  3. 12 Aug, 2015 9 commits
    • mav's avatar
      MFV 286707: 5959 clean up per-dataset feature count code · 95e93478
      mav authored
      Reviewed by: Toomas Soome <tsoome@me.com>
      Reviewed by: George Wilson <george@delphix.com>
      Reviewed by: Alex Reece <alex@delphix.com>
      Approved by: Richard Lowe <richlowe@richlowe.net>
      Author: Matthew Ahrens <mahrens@delphix.com>
      A ZFS feature flags (large blocks) tracks its refcounts as the number of
      datasets that have ever used the feature. Several features of this type
      are planned to be added (new checksum functions). This code should be made
      common infrastructure rather than duplicating the code for each feature.
    • mav's avatar
      MFV r286704: 5960 zfs recv should prefetch indirect blocks · 99cadf9e
      mav authored
      5925 zfs receive -o origin=
      Reviewed by: Prakash Surya <prakash.surya@delphix.com>
      Reviewed by: Matthew Ahrens <mahrens@delphix.com>
      Author: Paul Dagnelie <pcd@delphix.com>
      While running 'zfs recv' we noticed that every 128th 8K block required a
      read. We were seeing that restore_write() was calling dmu_tx_hold_write()
      and the indirect block was not cached. We should prefetch upcoming indirect
      blocks to avoid having to go to disk and blocking the restore_write().
      Allow an incremental send stream to be received as a clone, even if the
      stream does not mark it as a clone.
    • np's avatar
      Reinstate unify_tcp_port_space and associated code that was lost during · cf4bfaba
      np authored
      the last OFED update (r278886).
      iWARP on FreeBSD is properly integrated with the network stack and the
      iWARP drivers _never_ operate out of any private TCP port-space that is
      invisible to the kernel.  Instead, an iWARP connection shows up as a TCP
      socket (which is what it is) fully visible to the kernel and standard
      tools like netstat, sockstat, etc.
    • dim's avatar
      In ipfw2, avoid left-shifting negative integers, which is undefined. · 06a3ccc4
      dim authored
      While here, make some other arguments to htonl(3) unsigned too.
      MFC after:	3 days
    • ian's avatar
      If a specific timecounter has been chosen via sysctl, and a new timecounter · e0651881
      ian authored
      with higher quality registers (presumably in a module that has just been
      loaded), do not undo the user's choice by switching to the new timecounter.
      Document that behavior, and also the fact that there is no way to unregister
      a timecounter (and thus no way to unload a module containing one).
    • hiren's avatar
      Make LAG LACP fast timeout tunable through IOCTL. · 99dda03e
      hiren authored
      Differential Revision:	D3300
      Submitted by:		LN Sundararajan <lakshmi.n at msystechnologies>
      Reviewed by:		wblock, smh, gnn, hiren, rpokala at panasas
      MFC after:		2 weeks
      Sponsored by:		Panasas
    • dim's avatar
      In gcc's libcpp, stop using the INTTYPE_MAXIMUM() macro, which relies on · a83dfa76
      dim authored
      undefined behavior.  The code used this macro to avoid problems on some
      broken systems which define SSIZE_MAX incorrectly, but this is not
      needed on FreeBSD, obviously.
      MFC after: 3 days
    • oshogbo's avatar
      When the wait*(2) syscalls wait for any process (P_ALL), they should · 7dae5ce3
      oshogbo authored
      ignore processes created with the pdfork(2) syscall.
      PR:		201054
      Approved by:	pjd (mentor)
      Discussed with:	emaste, rwatson
    • ian's avatar
      Remove all dregs of the old PPS driver from this code, in preparation for · f1aec4c4
      ian authored
      redoing it as a separate driver.  Now that each hardware timer is handled by
      a separate instance of the timer driver, it no longer makes sense to bundle
      the pps driver with the regular timecounter code.  (When all 8 timers were
      handled by one driver there was no choice about this.)
      Split the hardware register definitions out to their own file, so that the
      new pps driver (coming in a separate commit later) can share them.
      With the PPS driver gone, the question of which hardware timer to use for
      what purpose becomes much easier (some instances can't do the PPS capture).
      Now we can just hardcore timer2 for eventtimer and timer3 for timecounter.
      This also now only instantiates devices for the 2 hardware timers actually
      used to implement eventtimer and timecounter.  This is required so that
      other drivers can come along and attach to other hardware timers to provide
      other functionality.  (In addition to PPS, this hardware can also do PWM
      stuff, general pulse width and frequency measurements, etc.  Maybe some
      day we'll have drivers for those things.)