daddbdc7 behlendorf1 June 13, 2019, 12:15 a.m.
sysfs_attr_init() is required to make lockdep happy for dynamically
allocated sysfs attributes. This fixed #8868 on Fedora 29 running

This requirement was introduced in 2.6.34.
See include/linux/sysfs.h for what it actually does.

Reviewed-by: Brian Behlendorf <>
Reviewed-by: Olaf Faaland <>
Signed-off-by: Tomohiro Kusumi <>
Closes #8868 
Closes #8884
61b54f34 bdrewery June 12, 2019, 11:09 p.m.
Sponsored by:	DellEMC
cgit ViewVC
efc5c442 dim June 12, 2019, 9:10 p.m.
libunwind and openmp to the upstream release_80 branch r363030
(effectively, 8.0.1 rc2).  The 8.0.1 release should follow this within a
week or so.

MFC after:	2 weeks
cgit ViewVC
a04cd5cd alc June 12, 2019, 8:38 p.m.
demotion failure.  Otherwise, some callers to pmap_demote_l2_locked(), such
as pmap_protect(), may leave an incorrect mapping in place on a demotion

Change pmap_demote_l2_locked() so that it handles addresses that are not
superpage aligned.  Some callers to pmap_demote_l2_locked(), such as
pmap_protect(), may not pass a superpage aligned address.

Change pmap_enter_l2() so that it correctly calls vm_page_free_pages_toq().
The arm64 pmap is updating the count of wired pages when freeing page table
pages, so pmap_enter_l2() should pass false to vm_page_free_pages_toq().

Optimize TLB invalidation in pmap_remove_l2().

Reviewed by:	kib, markj (an earlier version)
Discussed with:	andrew
MFC after:	3 weeks
Differential Revision:
cgit ViewVC
d9b4bf06 behlendorf1 June 12, 2019, 8:13 p.m.
When iterating over a ZAP object, we're almost always certain to iterate
over the entire object. If there are multiple leaf blocks, we can
realize a performance win by issuing reads for all the leaf blocks in
parallel when the iteration begins.

For example, if we have 10,000 snapshots, "zfs destroy -nv
pool/fs@1%9999" can take 30 minutes when the cache is cold. This change
provides a >3x performance improvement, by issuing the reads for all ~64
blocks of each ZAP object in parallel.

Reviewed-by: Andreas Dilger <>
Reviewed-by: Brian Behlendorf <>
Signed-off-by: Matthew Ahrens <>
External-issue: DLPX-58347
Closes #8862
d9cd66e4 behlendorf1 June 12, 2019, 8:06 p.m.
Sometimes the target ARC size is reduced to arc_c_min, which impacts
performance.  We've seen this happen as part of the random_reads
performance regression test, where the ARC size is reduced before the
reads test starts which impacts how long it takes for system to reach
good IOPS performance.

We call arc_reduce_target_size when arc_reap_cb_check() returns TRUE,
and arc_available_memory() is less than arc_c>>arc_shrink_shift.

However, arc_available_memory() could easily be low, even when arc_c is
low, because we can have tons of unused bufs in the abd kmem cache. This
would be especially true just after the DMU requests a bunch of stuff be
evicted from the ARC (e.g. due to "zpool export").

To fix this, the ARC should reduce arc_c by the requested amount, not
all the way down to arc_size (or arc_c_min), which can be very small.

Reviewed-by: Tim Chase <>
Reviewed by: Brian Behlendorf <>
Reviewed-by: George Melikov <>
Signed-off-by: Matthew Ahrens <>
External-issue: DLPX-59431
Closes #8864
10269e02 behlendorf1 June 12, 2019, 8:03 p.m.
Fix typo in vdev_raidz_math.c

Reviewed by: Brian Behlendorf <>
Reviewed-by: George Melikov <>
Signed-off-by: Brad Forschinger <>
Closes #8875 
Closes #8880
4b3f7927 oshogbo June 12, 2019, 7:31 p.m.
Those function may be useful to pass fileargs connections around.
cgit ViewVC
a8024393 oshogbo June 12, 2019, 7:29 p.m.
e7630efb oshogbo June 12, 2019, 7:29 p.m.
Let's change the unsigned arguments to the signed one, but let's don't
change pointers to the array notation.

Requested by:	pjd
cgit ViewVC
705aad98 shurd June 12, 2019, 6:07 p.m.
asserted. Some development boards for example will reset on DTR,
and some radio interfaces will transmit on RTS.

This patch allows "stty -f /dev/ttyu9.init -rtsdtr" to prevent
RTS and DTR from being asserted on open(), allowing these devices
to be used without problems.

Reviewed by:    imp
Differential Revision:
cgit ViewVC
0026d8cc jhb June 12, 2019, 4:49 p.m.
This was causing 'enbit' to not be initialized in this case.

CID:		1401924
Reported by:	Coverity
MFC after:	1 week
cgit ViewVC
15242987 jtl June 12, 2019, 4:06 p.m.
between each byte either sent or received). However, most transitions
actually complete in 2-3 microseconds.

By polling the status register with a delay of 4us with exponential
backoff, the performance of most IPMI operations is significantly
  - A BMC update on a Supermicro x9 or x11 motherboard goes from ~1 hour
    to ~6-8 minutes.
  - An ipmitool sensor list time improves by a factor of 4.

Testing showed no significant improvements on a modern server by using
a lower delay.

The changes should also generally reduce the total amount of CPU or
I/O bandwidth used for a given IPMI operation.

Submitted by:	Loic Prylli <>
Reviewed by:	jhb
MFC after:	2 weeks
Sponsored by:	Netflix
Differential Revision:
cgit ViewVC
3a3ab509 ian June 12, 2019, 4:05 p.m.
necessary support functions in cpu-v6.h, and it may be that the only armv6
platform we support (RPi, the bcm2835 SOC) is incapable of supporting hwpmc.

Reported by:	dim@
cgit ViewVC
664104b4 bdragon June 12, 2019, 3:58 p.m.
r348783 changed the behavior of the kernel mappings and broke booting on G5.

- Split the kernel mapping logic out so that the case where we are
running from the wrong memory space is handled using identity
mappings, and the case where we are not using a DMAP is handled by
forcibly mapping the kernel into the dmap range as intended by

Reported by:	Mikael Urankar
Reviewed by:	luporl
Approved by:	jhibbits (mentor)
Differential Revision:
cgit ViewVC