]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/log
FreeBSD/FreeBSD.git
6 years agoAdd check to avoid raw inode iblocks fields overflow in case of huge_file feature.
Fedor Uporov [Wed, 27 Sep 2017 16:12:13 +0000 (16:12 +0000)]
Add check to avoid raw inode iblocks fields overflow in case of huge_file feature.
Use the Linux logic for now.

Reviewed by:    pfg (mentor)
Approved by:    pfg (mentor)
MFC after:      2 weeks
Differential Revision: https://reviews.freebsd.org/D12131

6 years agoRemove PNP metadata from drm2 drivers until kldxref problem is resolved
Conrad Meyer [Wed, 27 Sep 2017 14:59:18 +0000 (14:59 +0000)]
Remove PNP metadata from drm2 drivers until kldxref problem is resolved

Reported by: np
Sponsored by: Dell EMC Isilon

6 years agoRemove unused function.
Michael Tuexen [Wed, 27 Sep 2017 13:05:23 +0000 (13:05 +0000)]
Remove unused function.

MFC after: 1 week

6 years agovfs_export: Simplify vfs_export_lookup
Emmanuel Vadot [Wed, 27 Sep 2017 09:39:16 +0000 (09:39 +0000)]
vfs_export: Simplify vfs_export_lookup

If the filesystem is not exported directly return NULL.
If no address is given and filesystem is exported using some default
one return it directly, if it doesn't have a default one directly
return NULL.

Reviewed by: kib, bapt
MFC after: 1 week
Sponsored by: Gandi.net
Differential Revision: https://reviews.freebsd.org/D12505

6 years agokernel: Bump __FreeBSD_version for the removal of M_HASHTYPE_RSS_UDP_IPV4_EX
Sepherosa Ziehau [Wed, 27 Sep 2017 06:33:55 +0000 (06:33 +0000)]
kernel: Bump __FreeBSD_version for the removal of M_HASHTYPE_RSS_UDP_IPV4_EX

Sponsored by: Microsoft

6 years agombuf: Remove UDP_IPV4_EX, which was never defined.
Sepherosa Ziehau [Wed, 27 Sep 2017 06:31:35 +0000 (06:31 +0000)]
mbuf: Remove UDP_IPV4_EX, which was never defined.

Add comment to explain the IPV6_EX suffix.  The confusion about
these RSS hash type probably stems from the facts that they were
never widely implemented by hardwares.

Reviewed by: rwatson
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D12453

6 years agoixl: Fix mbuf hash type settings.
Sepherosa Ziehau [Wed, 27 Sep 2017 05:59:54 +0000 (05:59 +0000)]
ixl: Fix mbuf hash type settings.

IPV6_EXs in RSS never mean fragment.  They mean:
"- Home address from the home address option in the IPv6 destination
   options header.  If the extension header is not present, use the
   Source IPv6 Address.
 - IPv6 address that is contained in the Routing-Header-Type-2 from
   the associated extension header.  If the extension header is not
   present, use the Destination IPv6 Address."

UDP_IPV4_EX is an invalid RSS hash type, which will be removed.

Quoted from:
https://docs.microsoft.com/en-us/windows-hardware/drivers/network/rss-hashing-types#ndishashipv6ex

Reviewed by: erj
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D12450

6 years agotcp: Don't "negotiate" MSS.
Sepherosa Ziehau [Wed, 27 Sep 2017 05:52:37 +0000 (05:52 +0000)]
tcp: Don't "negotiate" MSS.

_NO_ OSes actually "negotiate" MSS.

RFC 879:
"... This Maximum Segment Size (MSS) announcement (often mistakenly
called a negotiation) ..."

This negotiation behaviour was introduced 11 years ago by r159955
without any explaination about why FreeBSD had to "negotiate" MSS:

    In syncache_respond() do not reply with a MSS that is larger than what
    the peer announced to us but make it at least tcp_minmss in size.

    Sponsored by:   TCP/IP Optimization Fundraise 2005

The tcp_minmss behaviour is still kept.

Syncookie fix was prodded by tuexen, who also helped to test this
patch w/ packetdrill.

Reviewed by: tuexen, karels, bz (previous version)
MFC after: 2 week
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D12430

6 years agohyperv/hn: Fix UDP checksum offload issue in Azure.
Sepherosa Ziehau [Wed, 27 Sep 2017 05:44:50 +0000 (05:44 +0000)]
hyperv/hn: Fix UDP checksum offload issue in Azure.

UDP checksum offload does not work in Azure if following conditions are
met:
- sizeof(IP hdr + UDP hdr + payload) > 1420.
- IP_DF is not set in IP hdr

Use software checksum for UDP datagrams falling into this category.

Add two tunables to disable UDP/IPv4 and UDP/IPv6 checksum offload, in
case something unexpected happened.

MFC after: 1 week
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D12429

6 years agohyperv/hn: Set tcp header offset for CSUM/LSO offloading.
Sepherosa Ziehau [Wed, 27 Sep 2017 04:42:40 +0000 (04:42 +0000)]
hyperv/hn: Set tcp header offset for CSUM/LSO offloading.

No observable effect; better safe than sorry.

MFC after: 1 week
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D12417

6 years agosysctl: remove target buffer read/write checks prior to calling the handler
Mateusz Guzik [Wed, 27 Sep 2017 01:31:52 +0000 (01:31 +0000)]
sysctl: remove target buffer read/write checks prior to calling the handler

Said checks were inherently racy anyway as jokers could unmap target areas
before the handler got around to accessing them.

This saves time by avoiding locking the address space.

MFC after: 1 week

6 years agoAnnotate sysctlmemlock with __exclusive_cache_line.
Mateusz Guzik [Wed, 27 Sep 2017 01:27:43 +0000 (01:27 +0000)]
Annotate sysctlmemlock with __exclusive_cache_line.

MFC after: 1 week

6 years agoRemove manpage entries about crshared(9)
Mateusz Guzik [Wed, 27 Sep 2017 01:12:47 +0000 (01:12 +0000)]
Remove manpage entries about crshared(9)

The function itself was removed years ago in r272546

Submitted by: Paulm <paulm tetrardus.net>
MFC after: 2 weeks

6 years agoWhack procctl(8)
Mateusz Guzik [Wed, 27 Sep 2017 01:03:00 +0000 (01:03 +0000)]
Whack procctl(8)

It was supposed to provide a recovery mechanism against bugs in procfs's
long deprecated tracing capabilities.

Remove the tool as a prerequisite to axing the kernel side.

The tracing facility to use is ptrace(2).

MFC after: 2 weeks

6 years agomtx: drop the tid argument from _mtx_lock_sleep
Mateusz Guzik [Wed, 27 Sep 2017 00:57:05 +0000 (00:57 +0000)]
mtx: drop the tid argument from _mtx_lock_sleep

tid must be equal to curthread and the target routine was already reading
it anyway, which is not a problem. Not passing it as a parameter allows for
a little bit shorter code in callers.

MFC after: 1 week

6 years agoAdd major and minor version arguments to nfscl_reqstart().
Rick Macklem [Tue, 26 Sep 2017 23:42:44 +0000 (23:42 +0000)]
Add major and minor version arguments to nfscl_reqstart().

This patch adds "vers" and "minorvers" arguments to nfscl_reqstart().
The patch always passes them in as "0" and that implies no change
in semantics. These arguments will be used by a future commit that
adds support for the Flexible File Layout.

6 years agoDon't defer wakeup()s for completed journal workitems.
John Baldwin [Tue, 26 Sep 2017 23:24:15 +0000 (23:24 +0000)]
Don't defer wakeup()s for completed journal workitems.

Normally wakeups() are performed for completed softupdates work items
in workitem_free() before the underlying memory is free()'d.
complete_jseg() was clearing the "wakeup needed" flag in work items to
defer the wakeup until the end of each loop iteration.  However, this
resulted in the item being free'd before it's address was used with
wakeup().  As a result, another part of the kernel could allocate this
memory from malloc() and use it as a wait channel for a different
"event" with a different lock.  This triggered an assertion failure
when the lock passed to sleepq_add() did not match the existing lock
associated with the sleep queue.  Fix this by removing the code to
defer the wakeup in complete_jseg() allowing the wakeup to occur
slightly earlier in workitem_free() before free() is called.

The main reason I can think of for deferring a wakeup() would be to
avoid waking up a waiter while holding a lock that the waiter would
need.  However, no locks are dropped in between the wakeup() in
workitem_free() and the end of the loop in complete_jseg() as far as I
can tell.

In general I think it is not safe to do a wakeup() after free() as one
cannot control how other parts of the kernel that might reuse the
address for a different wait channel will handle spurious wakeups.

Reported by: pho
Reviewed by: kib
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D12494

6 years agoAdd PNP metadata to more drivers
Conrad Meyer [Tue, 26 Sep 2017 23:23:58 +0000 (23:23 +0000)]
Add PNP metadata to more drivers

GPUs: radeonkms, i915kms
NICs: if_em, if_igb, if_bnxt

This metadata isn't used yet, but it will be handy to have later to
implement automatic module loading.

Reviewed by: imp, mmacy
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D12488

6 years agoaesni(4): Add support for x86 SHA intrinsics
Conrad Meyer [Tue, 26 Sep 2017 23:12:32 +0000 (23:12 +0000)]
aesni(4): Add support for x86 SHA intrinsics

Some x86 class CPUs have accelerated intrinsics for SHA1 and SHA256.
Provide this functionality on CPUs that support it.

This implements CRYPTO_SHA1, CRYPTO_SHA1_HMAC, and CRYPTO_SHA2_256_HMAC.

Correctness: The cryptotest.py suite in tests/sys/opencrypto has been
enhanced to verify SHA1 and SHA256 HMAC using standard NIST test vectors.
The test passes on this driver.  Additionally, jhb's cryptocheck tool has
been used to compare various random inputs against OpenSSL.  This test also
passes.

Rough performance averages on AMD Ryzen 1950X (4kB buffer):
aesni:      SHA1: ~8300 Mb/s    SHA256: ~8000 Mb/s
cryptosoft:       ~1800 Mb/s    SHA256: ~1800 Mb/s

So ~4.4-4.6x speedup depending on algorithm choice.  This is consistent with
the results the Linux folks saw for 4kB buffers.

The driver borrows SHA update code from sys/crypto sha1 and sha256.  The
intrinsic step function comes from Intel under a 3-clause BSDL.[0]  The
intel_sha_extensions_sha<foo>_intrinsic.c files were renamed and lightly
modified (added const, resolved a warning or two; included the sha_sse
header to declare the functions).

[0]: https://software.intel.com/en-us/articles/intel-sha-extensions-implementations

Reviewed by: jhb
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D12452

6 years agoFix regression from r323855. The EXIT trap now isn't cleared, so upon
Gleb Smirnoff [Tue, 26 Sep 2017 21:54:19 +0000 (21:54 +0000)]
Fix regression from r323855.  The EXIT trap now isn't cleared, so upon
exit it tried to unmount already unmounted partition, resulting in failure.

6 years agoFix delete all multicast addresses
David C Somayajulu [Tue, 26 Sep 2017 20:53:25 +0000 (20:53 +0000)]
Fix delete all multicast addresses

Submitted by:Anand.Khoje@cavium.com
MFC after:5 days

6 years agoa10_gpio: Enable all needed clocks
Emmanuel Vadot [Tue, 26 Sep 2017 20:23:09 +0000 (20:23 +0000)]
a10_gpio: Enable all needed clocks

Do not enable only the first clock, enable them all.

6 years agoa10_ehci: Enable all clocks and reset
Emmanuel Vadot [Tue, 26 Sep 2017 19:21:43 +0000 (19:21 +0000)]
a10_ehci: Enable all clocks and reset

a10_ehci can have multiple clocks and reset, enable them all instead of
only the first one.

6 years agoaw_usbphy: Only reroute OTG for phy0
Emmanuel Vadot [Tue, 26 Sep 2017 19:20:50 +0000 (19:20 +0000)]
aw_usbphy: Only reroute OTG for phy0

We only need to route OTG port to host mode on phy0 and if no VBUS
is present on the port, otherwise leave the port in periperal mode.

6 years agoaw_usbphy: Fix write of unknown register
Emmanuel Vadot [Tue, 26 Sep 2017 19:19:44 +0000 (19:19 +0000)]
aw_usbphy: Fix write of unknown register

Some SoC require a write to a unknown register to work corectly.
This write should be in the pmu region not in the phy ctrl one.

Reported by: Mark Millard (markmi@dsl-only.net)

6 years agoopencrypto: Use C99 initializers for auth_hash instances
Conrad Meyer [Tue, 26 Sep 2017 17:52:52 +0000 (17:52 +0000)]
opencrypto: Use C99 initializers for auth_hash instances

A misordering in the Via padlock driver really strongly suggested that these
should use C99 named initializers.

No functional change.

Sponsored by: Dell EMC Isilon

6 years agoopencrypto: Loosen restriction on HMAC key sizes
Conrad Meyer [Tue, 26 Sep 2017 16:18:10 +0000 (16:18 +0000)]
opencrypto: Loosen restriction on HMAC key sizes

Theoretically, HMACs do not actually have any limit on key sizes.
Transforms should compact input keys larger than the HMAC block size by
using the transform (hash) on the input key.

(Short input keys are padded out with zeros to the HMAC block size.)

Still, not all FreeBSD crypto drivers that provide HMAC functionality
handle longer-than-blocksize keys appropriately, so enforce a "maximum" key
length in the crypto API for auth_hashes that previously expressed a
requirement.  (The "maximum" is the size of a single HMAC block for the
given transform.)  Unconstrained auth_hashes are left as-is.

I believe the previous hardcoded sizes were committed in the original
import of opencrypto from OpenBSD and are due to specific protocol
details of IPSec.  Note that none of the previous sizes actually matched
the appropriate HMAC block size.

The previous hardcoded sizes made the SHA tests in cryptotest.py
useless for testing FreeBSD crypto drivers; none of the NIST-KAT example
inputs had keys sized to the previous expectations.

The following drivers were audited to check that they handled keys up to
the block size of the HMAC safely:

  Software HMAC:
    * padlock(4)
    * cesa
    * glxsb
    * safe(4)
    * ubsec(4)

  Hardware accelerated HMAC:
    * ccr(4)
    * hifn(4)
    * sec(4) (Only supports up to 64 byte keys despite claiming to
      support SHA2 HMACs, but validates input key sizes)
    * cryptocteon (MIPS)
    * nlmsec (MIPS)
    * rmisec (MIPS) (Amusingly, does not appear to use key material at
      all -- presumed broken)

Reviewed by: jhb (previous version), rlibby (previous version)
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D12437

6 years agofix r324011, MFV of r323535, 8585 improve batching done in zil_commit()
Andriy Gapon [Tue, 26 Sep 2017 15:38:16 +0000 (15:38 +0000)]
fix r324011, MFV of r323535, 8585 improve batching done in zil_commit()

I managed to commit an older version of the change.
Plus, even the latest version was not ready for userland compilation.

Reported by: "O. Hartmann" <ohartmann@walstatt.org>,
cy
MFC after: 1 week
X-MFC with: r324011

6 years agomountd: Avoid memory leak by freeing dp_dirp
Emmanuel Vadot [Tue, 26 Sep 2017 12:15:13 +0000 (12:15 +0000)]
mountd: Avoid memory leak by freeing dp_dirp

Introduced in r324007, the data alloced by strdup was never free'ed.
While here, remove cast to caddr_t when freeing dp.

Reported by: bde
MFC after: 1 week
X MFC With: r324007

6 years agocalendar: replace strcpy/strcat with asprintf
Baptiste Daroussin [Tue, 26 Sep 2017 11:16:33 +0000 (11:16 +0000)]
calendar: replace strcpy/strcat with asprintf

6 years agomountd: Remove unneeded cast
Emmanuel Vadot [Tue, 26 Sep 2017 11:11:17 +0000 (11:11 +0000)]
mountd: Remove unneeded cast

Reported by: kib
MFC after: 1 week
X MFC With: r324007

6 years agoMFV r323535: 8585 improve batching done in zil_commit()
Andriy Gapon [Tue, 26 Sep 2017 11:04:08 +0000 (11:04 +0000)]
MFV r323535: 8585 improve batching done in zil_commit()

FreeBSD notes:
- this MFV reverts FreeBSD commit r314549 to make the merge easier
- at present our emulation of cv_timedwait_hires is rather poor,
  so I elected to use cv_timedwait_sbt directly
Please see the differential revision for details.
Unfortunately, I did not get any positive reviews, so there could be
bugs in the FreeBSD-specific piece of the merge.
Hence, the long MFC timeout.

illumos/illumos-gate@1271e4b10dfaaed576c08a812f466f6e81370e5e
https://github.com/illumos/illumos-gate/commit/1271e4b10dfaaed576c08a812f466f6e81370e5e

https://www.illumos.org/issues/8585
  The current implementation of zil_commit() can introduce significant
  latency, beyond what is inherent due to the latency of the underlying
  storage. The additional latency comes from two main problems:
  1. When there's outstanding ZIL blocks being written (i.e. there's
      already a "writer thread" in progress), then any new calls to
      zil_commit() will block waiting for the currently oustanding ZIL
      blocks to complete. The blocks written for each "writer thread" is
      coined a "batch", and there can only ever be a single "batch" being
      written at a time. When a batch is being written, any new ZIL
      transactions will have to wait for the next batch to be written,
      which won't occur until the current batch finishes.
  As a result, the underlying storage may not be used as efficiently
      as possible. While "new" threads enter zil_commit() and are blocked
      waiting for the next batch, it's possible that the underlying
      storage isn't fully utilized by the current batch of ZIL blocks. In
      that case, it'd be better to allow these new threads to generate
      (and issue) a new ZIL block, such that it could be serviced by the
      underlying storage concurrently with the other ZIL blocks that are
      being serviced.
  2. Any call to zil_commit() must wait for all ZIL blocks in its "batch"
      to complete, prior to zil_commit() returning. The size of any given
      batch is proportional to the number of ZIL transaction in the queue
      at the time that the batch starts processing the queue; which
      doesn't occur until the previous batch completes. Thus, if there's a
      lot of transactions in the queue, the batch could be composed of
      many ZIL blocks, and each call to zil_commit() will have to wait for
      all of these writes to complete (even if the thread calling
      zil_commit() only cared about one of the transactions in the batch).

Reviewed by: Brad Lewis <brad.lewis@delphix.com>
Reviewed by: Matt Ahrens <mahrens@delphix.com>
Reviewed by: George Wilson <george.wilson@delphix.com>
Approved by: Dan McDonald <danmcd@joyent.com>
Author: Prakash Surya <prakash.surya@delphix.com>

MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D12355

6 years agomountd: Replace malloc+strcpy to strdup
Emmanuel Vadot [Tue, 26 Sep 2017 09:18:18 +0000 (09:18 +0000)]
mountd: Replace malloc+strcpy to strdup

Reviewed by: bapt
MFC after: 1 week
Sponsored by: Gandi.net
Differential Revision: https://reviews.freebsd.org/D12503

6 years agoRemove empty lines for consistency with other entries
Baptiste Daroussin [Tue, 26 Sep 2017 05:47:33 +0000 (05:47 +0000)]
Remove empty lines for consistency with other entries

6 years agoDo not actually install uneeded alias for man
Baptiste Daroussin [Tue, 26 Sep 2017 05:46:10 +0000 (05:46 +0000)]
Do not actually install uneeded alias for man

6 years agoRemove unneeded locales and alias man directories
Baptiste Daroussin [Tue, 26 Sep 2017 05:43:55 +0000 (05:43 +0000)]
Remove unneeded locales and alias man directories

In base, locales (and encoding) specific directories are not used
by any tool. Just remove them.

While here also remove the cat page directory for openssl

6 years agoDo not print error when running make delete-old on system
Baptiste Daroussin [Tue, 26 Sep 2017 05:33:15 +0000 (05:33 +0000)]
Do not print error when running make delete-old on system
without catpages directories

6 years agocrypto(9): Use a more specific error code when a capable driver is not found
Conrad Meyer [Tue, 26 Sep 2017 01:31:49 +0000 (01:31 +0000)]
crypto(9): Use a more specific error code when a capable driver is not found

When crypto_newsession() is given a request for an unsupported capability,
raise a more specific error than EINVAL.

This allows cryptotest.py to skip some HMAC tests that a driver does not
support.

Reviewed by: jhb, rlibby
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D12451

6 years agoFix the return value from _Unwind_Backtrace() on arm.
Ian Lepore [Mon, 25 Sep 2017 23:50:10 +0000 (23:50 +0000)]
Fix the return value from _Unwind_Backtrace() on arm.

If unwinding stops due to hitting the end of the call chain, the return
value is supposed to be _URC_END_OF_STACK; other values indicate internal
errors.  The return value from get_eit_entry() is now returned without
translating it to _URC_FAILURE, so that callers can see _URC_END_OF_STACK
when it happens.

6 years agoFix handling of uncaught exceptions in a std::terminate() handler on arm.
Ian Lepore [Mon, 25 Sep 2017 23:24:41 +0000 (23:24 +0000)]
Fix handling of uncaught exceptions in a std::terminate() handler on arm.

When raising an exception, the unwinder searches for a catch handler and if
none is found it should invoke std::terminate() with the uncaught exception
as the "current" exception.  Before this change, the terminate handler was
invoked with no exception as current (abi::__cxa_current_exception_type()
returned NULL), because the return value from the unwinder indicated an
internal failure in unwinding.  It turns out that was because all errors
from get_eit_entry() were translated to _URC_FAILURE.  Now the error is
returned untranslated, which allows _URC_END_OF_STACK to percolate upwards
to throw_exception() in libcxxrt.  When it sees that return status it
properly calls std::terminate() with the uncaught exception installed
as the current exception, allowing custom terminate handlers to work
with it.

6 years agoRemove the cat pages directory now that catman(1) is gone
Baptiste Daroussin [Mon, 25 Sep 2017 21:23:49 +0000 (21:23 +0000)]
Remove the cat pages directory now that catman(1) is gone

6 years agoClose a memory leak when using zpool_read_all_labels
Alan Somers [Mon, 25 Sep 2017 20:44:40 +0000 (20:44 +0000)]
Close a memory leak when using zpool_read_all_labels

MFC after: 3 weeks
X-MFC-With: 322854
Sponsored by: Spectra Logic Corp

6 years agoLog signal number passed to PT_STEP requests in KTR_PTRACE traces.
John Baldwin [Mon, 25 Sep 2017 20:38:55 +0000 (20:38 +0000)]
Log signal number passed to PT_STEP requests in KTR_PTRACE traces.

MFC after: 1 week

6 years agoUse tmpfs_print for tmpfs FIFOs.
John Baldwin [Mon, 25 Sep 2017 20:26:16 +0000 (20:26 +0000)]
Use tmpfs_print for tmpfs FIFOs.

Reviewed by: kib (part of a larger patch)

6 years agolibefi: efipart_floppy() will should not pass acpi pointer if the HID test fails
Toomas Soome [Mon, 25 Sep 2017 19:49:56 +0000 (19:49 +0000)]
libefi: efipart_floppy() will should not pass acpi pointer if the HID test fails

The current efipart_floppy() implementation is leaking the acpi pointer.

6 years agocapsicum_helpers: Add SEEK to default stdio rights set
Conrad Meyer [Mon, 25 Sep 2017 19:33:32 +0000 (19:33 +0000)]
capsicum_helpers: Add SEEK to default stdio rights set

PR: 219173
Sponsored by: Dell EMC Isilon

6 years agoUse nstosbt() instead of multiplying by SBT_1NS to avoid roundoff errors.
Ian Lepore [Mon, 25 Sep 2017 15:03:27 +0000 (15:03 +0000)]
Use nstosbt() instead of multiplying by SBT_1NS to avoid roundoff errors.

Differential Revision: https://reviews.freebsd.org/D11779

6 years agoFix gcc compilation issues in the mvneta driver
Marcin Wojtas [Mon, 25 Sep 2017 02:06:51 +0000 (02:06 +0000)]
Fix gcc compilation issues in the mvneta driver

Compiling mvneta driver with gcc unveiled two issues, that
required fixing.

Reported by: andrew
Obtained from: Semihalf

6 years agoChange vm_page_try_to_free() to require a managed page. Essentially,
Alan Cox [Sun, 24 Sep 2017 23:35:01 +0000 (23:35 +0000)]
Change vm_page_try_to_free() to require a managed page.  Essentially,
vm_page_try_to_free() is testing conditions, like clean versus dirty,
that only vary in managed pages.

Suggested by: kib
Reviewed by: markj
X-MFC after: never

6 years agoModernize the use of vm_page_unwire(). Since r288122, vm_page_unwire()
Alan Cox [Sun, 24 Sep 2017 22:29:11 +0000 (22:29 +0000)]
Modernize the use of vm_page_unwire().  Since r288122, vm_page_unwire()
has returned TRUE when the wire count transitions to zero, eliminating
the need for callers to inspect the page's wire count.

MFC after: 1 week

6 years agoSmall style(9) issue: spaces vs TAB.
Pedro F. Giffuni [Sun, 24 Sep 2017 20:57:03 +0000 (20:57 +0000)]
Small style(9) issue: spaces vs TAB.

6 years agoChange a panic to an error return.
Rick Macklem [Sun, 24 Sep 2017 20:05:48 +0000 (20:05 +0000)]
Change a panic to an error return.

There was a panic() in the NFS server's write operation that didn't
need to be a panic() and could just be an error return.
This patch makes that change.
Found by code inspection during development of the pNFS service.

MFC after: 2 weeks

6 years agog_resize_provider_event: Do not invoke orphan method twice
Conrad Meyer [Sun, 24 Sep 2017 19:59:26 +0000 (19:59 +0000)]
g_resize_provider_event: Do not invoke orphan method twice

Like r266444, g_resize_provider_event can attempt to orphan an already
orphaned geom_dev consumer.  This will cause a panic in g_dev_orphan.  Apply
the same fix as was applied to g_orphan_register.

Reviewed by: ae
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D12469

6 years agoRemove 0 filling from nfsm_uiombuflist().
Rick Macklem [Sun, 24 Sep 2017 19:43:31 +0000 (19:43 +0000)]
Remove 0 filling from nfsm_uiombuflist().

nfsm_uiombuflist() zero filled the mbuf list to a multiple of 4bytes
as required for XDR. Unfortunately that modified an mbuf list after
it was m_copym()'d and was broken. This patch removes the zero filling code.
Since nfsm_uiombuflist() is not yet used in head/current, this has no
effect on users.
The function will be used by a future commit of code that adds Flex
File Layout support.

6 years agoOptimize vm_page_try_to_free(). Specifically, the call to pmap_remove_all()
Alan Cox [Sun, 24 Sep 2017 16:50:10 +0000 (16:50 +0000)]
Optimize vm_page_try_to_free().  Specifically, the call to pmap_remove_all()
can be avoided when the page's containing object has a reference count of
zero.  (If the object has a reference count of zero, then none of its pages
can possibly be mapped.)

Address nearby style issues in vm_page_try_to_free(), and change its
return type to "bool".

Reviewed by: kib, markj
MFC after: 1 week

6 years agoAdd myself to the calendar.freebsd
Fedor Uporov [Sun, 24 Sep 2017 14:36:01 +0000 (14:36 +0000)]
Add myself to the calendar.freebsd

Reviewed by:    pfg (mentor)
Approved by:    pfg (mentor)

6 years agoFix packages with interactive post install scripts.
Warner Losh [Sun, 24 Sep 2017 14:22:36 +0000 (14:22 +0000)]
Fix packages with interactive post install scripts.

Tell pkg(8) we're running non-interactively so packages that with
interactive post install scripts don't hang.

Submitted by: Guido van Rooij

6 years agoRemove the VIRT kernel config, it's now useable through GENERIC.
Andrew Turner [Sun, 24 Sep 2017 13:28:24 +0000 (13:28 +0000)]
Remove the VIRT kernel config, it's now useable through GENERIC.

Sponsored by: DARPA, AFRL

6 years agoAdd the ability to report and set debug flags as text strings instead of
Scott Long [Sun, 24 Sep 2017 13:14:50 +0000 (13:14 +0000)]
Add the ability to report and set debug flags as text strings instead of
just integer flags.  Report both for convenience.

Submitted by: Eygene Ryabinkin (manpage)
Sponsored by: Netflix

6 years agoAdd i.MX6 and Xilinx to GENERIC.
Andrew Turner [Sun, 24 Sep 2017 09:33:08 +0000 (09:33 +0000)]
Add i.MX6 and Xilinx to GENERIC.

Merge in the missing devices from the IMX6 and ZEDBOARD kernel configs. The
Freescale sdma device has been renamed to fslsdma to mark it as a platform
specific driver.

Reviewed by: ian
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D11564

6 years agoRename sdhci_cam_start_slot() into sdhci_start_slot()
Ilya Bakulin [Sun, 24 Sep 2017 09:05:35 +0000 (09:05 +0000)]
Rename sdhci_cam_start_slot() into sdhci_start_slot()

This change allows to just call sdhci_start_slot() in SDHCI drivers
and not to think about which stack handles the operation.

As a side effect, this will also fix MMCCAM with sdhci_acpi driver.

Approved by: imp (mentor)
Differential Revision: https://reviews.freebsd.org/D12471

6 years agoDon't display empty error context.
Warner Losh [Sun, 24 Sep 2017 05:04:06 +0000 (05:04 +0000)]
Don't display empty error context.

Context extraction didn't handle this case and showed uninitialized memory.

Obtained from: OpenBSD lib.c 1.21
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D12379

6 years agoFix %c for floating values that become 0 when coerced to int.
Warner Losh [Sun, 24 Sep 2017 05:04:02 +0000 (05:04 +0000)]
Fix %c for floating values that become 0 when coerced to int.

Obtained from: OpenBSD run.c 1.36 (From Jeremy Devenport)
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D12379

6 years agoFix uninitialized variable
Warner Losh [Sun, 24 Sep 2017 05:03:57 +0000 (05:03 +0000)]
Fix uninitialized variable

echo | awk 'BEGIN {i=$1; print i}' prints a boatload of stack
garbage. NUL terminate the memory returned from malloc to prevent it.

Obtained from: OpenBSD run.c 1.40
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D12379

6 years agoFix typo from r323945.
Cy Schubert [Sun, 24 Sep 2017 03:33:26 +0000 (03:33 +0000)]
Fix typo from r323945.

Reported by: Gary Jennejohn <gljennjohn@gmail.com>
Point hat to: cy (me)

6 years agoSince the page "frame" doesn't belong to a vm object, it can't be paged
Alan Cox [Sun, 24 Sep 2017 02:50:59 +0000 (02:50 +0000)]
Since the page "frame" doesn't belong to a vm object, it can't be paged
out.  Since it can't be paged out, it is never actually enqueued in a
paging queue.  Nonetheless, passing PQ_INACTIVE to vm_page_unwire()
creates the appearance that the page "frame" is being enqueued in the
inactive queue.  As of r288122, we can avoid this false impression by
passing PQ_NONE.

MFC after: 1 week

6 years agoConvert some idioms over to py3k-compatible idioms
Enji Cooper [Sun, 24 Sep 2017 00:14:48 +0000 (00:14 +0000)]
Convert some idioms over to py3k-compatible idioms

- Import print_function from __future__ and use print(..) instead of `print ..`.
- Use repr instead of backticks when the object needs to be dumped, unless
  print(..) can do it lazily. Use str instead of backticks as appropriate
  for simplification reasons.

This doesn't fully convert these modules over py3k. It just gets over some of
the trivial compatibility hurdles.

6 years agoAdd myself as src committer.
Fedor Uporov [Sat, 23 Sep 2017 19:49:12 +0000 (19:49 +0000)]
Add myself as src committer.

Approved by:    pfg (mentor)

6 years agoddb(4): Add 'show badstacks' command to show witness badstacks
Conrad Meyer [Sat, 23 Sep 2017 17:48:49 +0000 (17:48 +0000)]
ddb(4): Add 'show badstacks' command to show witness badstacks

Add a DDB command that mirrors sysctl debug.witness.badstacks.

Reapply r323935 after fixing trivial deficiency.  I forgot to compile with
WITNESS enabled.  Thanks emaste@ for fixing the build while I was asleep.

Reported by: rstone
Reviewed by: rstone (previous version)
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D12468

6 years agobnxt: Choose better HW LRO defaults for performance
Stephen Hurd [Sat, 23 Sep 2017 16:59:37 +0000 (16:59 +0000)]
bnxt: Choose better HW LRO defaults for performance

1) Choose correct Firmware options for HW LRO for best performance
2) Delete TBD and other comments which are not required.
3) Added sysctl interface to enable / disable / modify different factors
   of HW LRO.
4) Disabled HW LRO by default to avoid issues with packet forwarding

This allows much better control over the LRO configuration via sysctls, and
uses much better defaults.  Hardware LRO can now be enabled/disabled
independantly from the software LRO, and the tuning parameters are exposed.

manpage updates coming soon.

Submitted by: Bhargava Chenna Marreddy <bhargava.marreddy@broadcom.com>
Reviewed by: shurd, sbruno
Approved by: sbruno (mentor)
Sponsored by: Broadcom Limited
Differential Revision: https://reviews.freebsd.org/D12223

6 years agoHave ifmp_ring_enqueue() abdicate instead of switch to a consumer
Stephen Hurd [Sat, 23 Sep 2017 16:46:30 +0000 (16:46 +0000)]
Have ifmp_ring_enqueue() abdicate instead of switch to a consumer

Move TX out of the enqueue() path. As a result, we need
to have ifmp_ring_check_drainage() pick up from the abdicate state.

We also need to either enqueue the TX task, or check drainage
after calling ifmp_ring_enqueue() to ensure it's sent.

This change results in a 30% small packet forwarding improvement.

Reviewed by: olivier, sbruno
Approved by: sbruno (mentor)
Sponsored by: Limelight Networks
Differential Revision: https://reviews.freebsd.org/D12439

6 years agoAfter the r317886 support for TFTP and NFS can be enable simultaneously.
Mariusz Zaborski [Sat, 23 Sep 2017 12:44:42 +0000 (12:44 +0000)]
After the r317886 support for TFTP and NFS can be enable simultaneously.

The cleanup of this distinction was done in the r318988, but this Makefile
was omitted.

Submitted by: kczekirda@

6 years agoRevert r323935 as it broke the build
Ed Maste [Sat, 23 Sep 2017 12:35:46 +0000 (12:35 +0000)]
Revert r323935 as it broke the build

subr_witness.c:2577:4: error: use of undeclared identifier 'req'
                        req->oldidx = 0;
                        ^

6 years agoGarbage collect usued fields
Scott Long [Sat, 23 Sep 2017 08:26:42 +0000 (08:26 +0000)]
Garbage collect usued fields

Sponsored by: Netflix

6 years agoCorrect two misspellings. Also align */.
Cy Schubert [Sat, 23 Sep 2017 06:00:17 +0000 (06:00 +0000)]
Correct two misspellings. Also align */.

6 years agoMake struct grouptask gt_name member a char array
Stephen Hurd [Sat, 23 Sep 2017 01:39:16 +0000 (01:39 +0000)]
Make struct grouptask gt_name member a char array

Previously, it was just a pointer which was copied, but
some callers pass in a stack variable which will go out of scope.
Add GROUPTASK_NAMELEN macro (32) and snprintf() the name into it,
using "grouptask" if name is NULL. We can now safely include
gtask->gt_name in console messages.

Reviewed by: sbruno
Approved by: sbruno (mentor)
Sponsored by: Limelight Networks
Differential Revision: https://reviews.freebsd.org/D12449

6 years agoMake the rx budget a tunable
Stephen Hurd [Sat, 23 Sep 2017 01:37:01 +0000 (01:37 +0000)]
Make the rx budget a tunable

This allows tuning the rx budget for special load profiles
as well as more easily testing to determine sane defaults.

Reviewed by: sbruno
Approved by: sbruno (mentor)
Sponsored by: Limelight Networks
Differential Revision: https://reviews.freebsd.org/D12445

6 years agoChain mbufs before passing to if_input()
Stephen Hurd [Sat, 23 Sep 2017 01:35:14 +0000 (01:35 +0000)]
Chain mbufs before passing to if_input()

Build a list of mbufs to pass to if_input() after LRO. Results in
12% small packet forwarding rate improvement.

Reviewed by: sbruno
Approved by: sbruno (mentor)
Sponsored by: Limelight Networks
Differential Revision: https://reviews.freebsd.org/D12444

6 years agoSome small packet performance improvements
Stephen Hurd [Sat, 23 Sep 2017 01:33:20 +0000 (01:33 +0000)]
Some small packet performance improvements

If the packet is smaller than MTU, disable the TSO flags.
Move TCP header parsing inside the IS_TSO?() test.
Add a new IFLIB_NEED_ZERO_CSUM flag to indicate the checksums need to be zeroed before TX.

Reviewed by: sbruno
Approved by: sbruno (mentor)
Sponsored by: Limelight Networks
Differential Revision: https://reviews.freebsd.org/D12442

6 years agoddb(4): Add 'show badstacks' command to show witness badstacks
Conrad Meyer [Fri, 22 Sep 2017 20:01:12 +0000 (20:01 +0000)]
ddb(4): Add 'show badstacks' command to show witness badstacks

Add a DDB command that mirrors sysctl debug.witness.badstacks.

Reported by: rstone
Reviewed by: rstone
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D12468

6 years agoDetect NEON and set HWCAP_NEON if present.
John Baldwin [Fri, 22 Sep 2017 17:58:57 +0000 (17:58 +0000)]
Detect NEON and set HWCAP_NEON if present.

Reviewed by: andrew, ian
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D12389

6 years agoCorrect HWCAP_VFP3* values to match Linux.
John Baldwin [Fri, 22 Sep 2017 17:57:38 +0000 (17:57 +0000)]
Correct HWCAP_VFP3* values to match Linux.

Reviewed by: andrew, ian
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D12388

6 years agoFix 32bit build.
Konstantin Belousov [Fri, 22 Sep 2017 16:42:41 +0000 (16:42 +0000)]
Fix 32bit build.

Reported by: emaste
Sponsored by: The FreeBSD Foundation

6 years agoRevert r323812 from release/tools/arm.subr, which has broken the
Glen Barber [Fri, 22 Sep 2017 14:34:27 +0000 (14:34 +0000)]
Revert r323812 from release/tools/arm.subr, which has broken the
build on arm/armv6 images.

Pointyhat: gjb (myself)
MFC after: immediate
MFC note: releng/10.4 has broken because of this
Sponsored by: The FreeBSD Foundation

6 years agoContinuing efforts to provide hardening of FFS, this change adds a
Kirk McKusick [Fri, 22 Sep 2017 12:45:15 +0000 (12:45 +0000)]
Continuing efforts to provide hardening of FFS, this change adds a
check hash to cylinder groups. If a check hash fails when a cylinder
group is read, no further allocations are attempted in that cylinder
group until it has been fixed by fsck. This avoids a class of
filesystem panics related to corrupted cylinder group maps. The
hash is done using crc32c.

Check hases are added only to UFS2 and not to UFS1 as UFS1 is primarily
used in embedded systems with small memories and low-powered processors
which need as light-weight a filesystem as possible.

Specifics of the changes:

sys/sys/buf.h:
    Add BX_FSPRIV to reserve a set of eight b_xflags that may be used
    by individual filesystems for their own purpose. Their specific
    definitions are found in the header files for each filesystem
    that uses them. Also add fields to struct buf as noted below.

sys/kern/vfs_bio.c:
    It is only necessary to compute a check hash for a cylinder
    group when it is actually read from disk. When calling bread,
    you do not know whether the buffer was found in the cache or
    read. So a new flag (GB_CKHASH) and a pointer to a function to
    perform the hash has been added to breadn_flags to say that the
    function should be called to calculate a hash if the data has
    been read. The check hash is placed in b_ckhash and the B_CKHASH
    flag is set to indicate that a read was done and a check hash
    calculated. Though a rather elaborate mechanism, it should
    also work for check hashing other metadata in the future. A
    kernel internal API change was to change breada into a static
    fucntion and add flags and a function pointer to a check-hash
    function.

sys/ufs/ffs/fs.h:
    Add flags for types of check hashes; stored in a new word in the
    superblock. Define corresponding BX_ flags for the different types
    of check hashes. Add a check hash word in the cylinder group.

sys/ufs/ffs/ffs_alloc.c:
    In ffs_getcg do the dance with breadn_flags to get a check hash and
    if one is provided, check it.

sys/ufs/ffs/ffs_vfsops.c:
    Copy across the BX_FFSTYPES flags in background writes.
    Update the check hash when writing out buffers that need them.

sys/ufs/ffs/ffs_snapshot.c:
    Recompute check hash when updating snapshot cylinder groups.

sys/libkern/crc32.c:
lib/libufs/Makefile:
lib/libufs/libufs.h:
lib/libufs/cgroup.c:
    Include libkern/crc32.c in libufs and use it to compute check
    hashes when updating cylinder groups.

Four utilities are affected:

sbin/newfs/mkfs.c:
    Add the check hashes when building the cylinder groups.

sbin/fsck_ffs/fsck.h:
sbin/fsck_ffs/fsutil.c:
    Verify and update check hashes when checking and writing cylinder groups.

sbin/fsck_ffs/pass5.c:
    Offer to add check hashes to existing filesystems.
    Precompute check hashes when rebuilding cylinder group
    (although this will be done when it is written in fsutil.c
    it is necessary to do it early before comparing with the old
    cylinder group)

sbin/dumpfs/dumpfs.c
    Print out the new check hash flag(s)

sbin/fsdb/Makefile:
    Needs to add libufs now used by pass5.c imported from fsck_ffs.

Reviewed by: kib
Tested by: Peter Holm (pho)

6 years agoClean up error messages related to device discovery
Scott Long [Fri, 22 Sep 2017 12:07:03 +0000 (12:07 +0000)]
Clean up error messages related to device discovery

Sponsored by: Netflix

6 years agoMFV r323917: 8648 Fix range locking in ZIL commit codepath
Andriy Gapon [Fri, 22 Sep 2017 08:27:27 +0000 (08:27 +0000)]
MFV r323917: 8648 Fix range locking in ZIL commit codepath

illumos/illumos-gate@42b14111721da2ebd5159e7b45012a3eb0e3384c
https://github.com/illumos/illumos-gate/commit/42b14111721da2ebd5159e7b45012a3eb0e3384c

https://www.illumos.org/issues/8648
  I'm opening this bug to track integration of the following ZFS on Linux
  commit into illumos:

  commit f763c3d1df569a8d6b60bcb5e95cf07aa7a189e6
  Author: LOLi <loli10K@users.noreply.github.com>
  Date:   Mon Aug 21 17:59:48 2017 +0200

      Fix range locking in ZIL commit codepath

      Since OpenZFS 7578 (1b7c1e5) if we have a ZVOL with logbias=throughput
      we will force WR_INDIRECT itxs in zvol_log_write() setting itx->itx_lr
      offset and length to the offset and length of the BIO from
      zvol_write()->zvol_log_write(): these offset and length are later used
      to take a range lock in zillog->zl_get_data function: zvol_get_data().

      Now suppose we have a ZVOL with blocksize=8K and push 4K writes to
      offset 0: we will only be range-locking 0-4096. This means the
      ASSERTion we make in dbuf_unoverride() is no longer valid because now
      dmu_sync() is called from zilog's get_data functions holding a partial
      lock on the dbuf.

      Fix this by taking a range lock on the whole block in zvol_get_data().

Reviewed-by: Chunwei Chen <tuxoko@gmail.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: loli10K <ezomori.nozomu@gmail.com>
Reviewed by: Igor Kozhukhov <igor@dilos.org>
Reviewed by: Matt Ahrens <mahrens@delphix.com>
Reviewed by: Andriy Gapon <avg@FreeBSD.org>
Reviewed by: Alexander Motin <mav@FreeBSD.org>
Approved by: Robert Mustacchi <rm@joyent.com>
Author: LOLi <loli10K@users.noreply.github.com>

MFC after: 10 days

6 years ago8648 Fix range locking in ZIL commit codepath
Andriy Gapon [Fri, 22 Sep 2017 08:23:24 +0000 (08:23 +0000)]
8648 Fix range locking in ZIL commit codepath

illumos/illumos-gate@42b14111721da2ebd5159e7b45012a3eb0e3384c
https://github.com/illumos/illumos-gate/commit/42b14111721da2ebd5159e7b45012a3eb0e3384c

https://www.illumos.org/issues/8648
  I'm opening this bug to track integration of the following ZFS on Linux
  commit into illumos:

  commit f763c3d1df569a8d6b60bcb5e95cf07aa7a189e6
  Author: LOLi <loli10K@users.noreply.github.com>
  Date:   Mon Aug 21 17:59:48 2017 +0200

      Fix range locking in ZIL commit codepath

      Since OpenZFS 7578 (1b7c1e5) if we have a ZVOL with logbias=throughput
      we will force WR_INDIRECT itxs in zvol_log_write() setting itx->itx_lr
      offset and length to the offset and length of the BIO from
      zvol_write()->zvol_log_write(): these offset and length are later used
      to take a range lock in zillog->zl_get_data function: zvol_get_data().

      Now suppose we have a ZVOL with blocksize=8K and push 4K writes to
      offset 0: we will only be range-locking 0-4096. This means the
      ASSERTion we make in dbuf_unoverride() is no longer valid because now
      dmu_sync() is called from zilog's get_data functions holding a partial
      lock on the dbuf.

      Fix this by taking a range lock on the whole block in zvol_get_data().

Reviewed-by: Chunwei Chen <tuxoko@gmail.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: loli10K <ezomori.nozomu@gmail.com>
Reviewed by: Igor Kozhukhov <igor@dilos.org>
Reviewed by: Matt Ahrens <mahrens@delphix.com>
Reviewed by: Andriy Gapon <avg@FreeBSD.org>
Reviewed by: Alexander Motin <mav@FreeBSD.org>
Approved by: Robert Mustacchi <rm@joyent.com>
Author: LOLi <loli10K@users.noreply.github.com>

6 years agoExtend sysctl description for hw.usb.disable_enumeration .
Hans Petter Selasky [Fri, 22 Sep 2017 08:21:35 +0000 (08:21 +0000)]
Extend sysctl description for hw.usb.disable_enumeration .

PR: 222505
Submitted by: Julian H. Stacey <jhs@berklix.com>
MFC after: 1 week
Sponsored by: Mellanox Technologies

6 years agoMFV r323914: 8661 remove "zil-cw2" dtrace probe
Andriy Gapon [Fri, 22 Sep 2017 08:21:14 +0000 (08:21 +0000)]
MFV r323914: 8661 remove "zil-cw2" dtrace probe

illumos/illumos-gate@bd9d3f904625846bdc61af8897a1072029c7aeb7
https://github.com/illumos/illumos-gate/commit/bd9d3f904625846bdc61af8897a1072029c7aeb7

https://www.illumos.org/issues/8661
  The "zil-cw1" dtrace probe was previously removed in 8558, and the "zil-cw2"
  probe should have been removed in that patch as well. Unfortunately, the "zil-
  cw2" was not removed in 8558, so this bug is to track it's removal.

Reviewed by: Serapheim Dimitropoulos <serapheim@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Igor Kozhukhov <igor@dilos.org>
Approved by: Robert Mustacchi <rm@joyent.com>
Author: Prakash Surya <prakash.surya@delphix.com>

MFC after: 1 week

6 years ago8661 remove "zil-cw2" dtrace probe
Andriy Gapon [Fri, 22 Sep 2017 08:18:49 +0000 (08:18 +0000)]
8661 remove "zil-cw2" dtrace probe

illumos/illumos-gate@bd9d3f904625846bdc61af8897a1072029c7aeb7
https://github.com/illumos/illumos-gate/commit/bd9d3f904625846bdc61af8897a1072029c7aeb7

https://www.illumos.org/issues/8661
  The "zil-cw1" dtrace probe was previously removed in 8558, and the "zil-cw2"
  probe should have been removed in that patch as well. Unfortunately, the "zil-
  cw2" was not removed in 8558, so this bug is to track it's removal.

Reviewed by: Serapheim Dimitropoulos <serapheim@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Igor Kozhukhov <igor@dilos.org>
Approved by: Robert Mustacchi <rm@joyent.com>
Author: Prakash Surya <prakash.surya@delphix.com>

6 years ago8600 ZFS channel programs - snapshot
Andriy Gapon [Fri, 22 Sep 2017 08:18:05 +0000 (08:18 +0000)]
8600 ZFS channel programs - snapshot

illumos/illumos-gate@2840dce1a029098fb784afd951d5f98089f850d8
https://github.com/illumos/illumos-gate/commit/2840dce1a029098fb784afd951d5f98089f850d8

https://www.illumos.org/issues/8600
  ZFS channel programs should be able to create snapshots.
  In addition to the base snapshot functionality, this will likely entail adding
  extra logic to handle edge cases which were formerly not possible, such as
  creating then destroying a snapshot in the same transaction sync.

Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: John Kennedy <john.kennedy@delphix.com>
Reviewed by: Brad Lewis <brad.lewis@delphix.com>
Approved by: Robert Mustacchi <rm@joyent.com>
Author: Chris Williamson <chris.williamson@delphix.com>

6 years ago8592 ZFS channel programs - rollback
Andriy Gapon [Fri, 22 Sep 2017 08:15:35 +0000 (08:15 +0000)]
8592 ZFS channel programs - rollback

illumos/illumos-gate@000cce6b6fad4a8b0eecef6e1251f6aca1719c55
https://github.com/illumos/illumos-gate/commit/000cce6b6fad4a8b0eecef6e1251f6aca1719c55

https://www.illumos.org/issues/8592
  ZFS channel programs should be able to perform a rollback. This logic will
  probably look pretty similar to zfs.sync.destroy().

Reviewed by: Chris Williamson <chris.williamson@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Approved by: Robert Mustacchi <rm@joyent.com>
Author: Brad Lewis <brad.lewis@delphix.com>

6 years ago8502 illumos#7955 broke delegated datasets when libshare is not present
Andriy Gapon [Fri, 22 Sep 2017 08:13:09 +0000 (08:13 +0000)]
8502 illumos#7955 broke delegated datasets when libshare is not present

illumos/illumos-gate@1c18e8fbd8db41a9fb39bd3ef7a18ee71ece20da
https://github.com/illumos/illumos-gate/commit/1c18e8fbd8db41a9fb39bd3ef7a18ee71ece20da

https://www.illumos.org/issues/8502
  The code in lib/libzfs/common/libzfs_mount.c already basically handles
  the case when libshare is not installed. We just need to not fail in
  zfs_init_libshare_impl.  I tested this in lx and things work as
  expected. I also tested there trying to set sharenfs and sharesmb on
  the delegated dataset. Neither is allowed from within a zone.  The
  spew of msgs from a native zone is not ZFS specific. I see the same
  spew simply running the share command.

Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Yuri Pankov <yuripv@gmx.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
Author: Jerry Jelinek <jerry.jelinek@joyent.com>

6 years agoAdd support for 32-bit compatibility IOCTLs in the LinuxKPI.
Hans Petter Selasky [Fri, 22 Sep 2017 08:12:08 +0000 (08:12 +0000)]
Add support for 32-bit compatibility IOCTLs in the LinuxKPI.

Bump the FreeBSD version to force recompilation of external
kernel modules due to structure change.

PR: 222504
Submitted by: Greg V <greg@unrelenting.technology>
MFC after: 1 week
Sponsored by: Mellanox Technologies

6 years agolibefi: define EISA PNP constants
Toomas Soome [Fri, 22 Sep 2017 07:44:36 +0000 (07:44 +0000)]
libefi: define EISA PNP constants

Define EISA PNP constants and use them, also fix ID for 0x701

6 years agolibefi: efipart_hdinfo_add_filepath should check strtol result
Toomas Soome [Fri, 22 Sep 2017 07:40:05 +0000 (07:40 +0000)]
libefi: efipart_hdinfo_add_filepath should check strtol result

Use errno for error checking.

6 years agolibefi: efipart.c cstyle fix for efipart_print_common()
Toomas Soome [Fri, 22 Sep 2017 07:37:42 +0000 (07:37 +0000)]
libefi: efipart.c cstyle fix for efipart_print_common()

The else statement should have { }

6 years agolibefi: efipart_strategy() should return ENXIO when there is no media
Toomas Soome [Fri, 22 Sep 2017 07:34:08 +0000 (07:34 +0000)]
libefi: efipart_strategy() should return ENXIO when there is no media

We should return ENXIO to indicate the situation with device present,
but no media.

6 years agolibefi: pdinfo_t pd_unit and pd_open should be unsigned
Toomas Soome [Fri, 22 Sep 2017 07:29:26 +0000 (07:29 +0000)]
libefi: pdinfo_t pd_unit and pd_open should be unsigned

The device index, partition index and reference counter are all positive
numbers. However, since our internal partition number may be negative
to indicate GPT table, the compare expression need to take care when comparing
pdinfo_t and partition data.