mmokhi [Fri, 23 Jun 2017 10:36:27 +0000 (10:36 +0000)]
Fix caveat in new implementation of linprocfs_docpuinfo():
Prevent kernel panic in case that extended-cpuid isn't supported by CPU
Reviewed by: kib, ngie, trasz
Approved by: trasz
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D11294
tuexen [Fri, 23 Jun 2017 10:09:49 +0000 (10:09 +0000)]
Check the length of a COOKIE chunk before accessing fields in it.
Thanks to Felix Weinrank for reporting the issue he found by using
libFuzzer.
MFC after: 3 days
tuexen [Fri, 23 Jun 2017 09:27:31 +0000 (09:27 +0000)]
Use a longer buffer for messages in ERROR chunks.
This allows them to be sent in a non truncated way and addresses a warning
given by newver versions of gcc.
Thanks to Anselm Jonas Scholl for reporting it and providing a patch.
avg [Fri, 23 Jun 2017 08:42:53 +0000 (08:42 +0000)]
fix gcc-specific fallout from r320156, MFV of r318946, ZFS ABD
Reported by: jhibbits
MFC after: 1 week
X-MFC with: r320156
tuexen [Fri, 23 Jun 2017 08:35:54 +0000 (08:35 +0000)]
Honor the backlog field.
tuexen [Fri, 23 Jun 2017 08:34:01 +0000 (08:34 +0000)]
Improve compilation on platforms different from FreeBSD.
avg [Fri, 23 Jun 2017 06:25:39 +0000 (06:25 +0000)]
jedec_ts: read device id from the correct register
Due to my braino / typo the driver was reading the Vendor ID register
twice.
MFC after: 3 days
emaste [Fri, 23 Jun 2017 03:55:00 +0000 (03:55 +0000)]
change GNU ld LINKER_TYPE from binutils to bfd
GNU binutils includes two linkers: ld.bfd and ld.gold. For clarity use
LINKER_TYPE=bfd to refer to ld.bfd, the original binutils linker that
identifies itself as "GNU ld".
Discussed with: bdrewery
cy [Fri, 23 Jun 2017 02:42:04 +0000 (02:42 +0000)]
Replace AF_INET6 ifdefs with USE_INET6 ifdefs. This is more consistent
and guaranteed to build everywhere in ipfilter.
Not all of this commit can be MFCed. Some is original code while others
are not.
cy [Fri, 23 Jun 2017 01:05:49 +0000 (01:05 +0000)]
Replace the leap-seconds file in r320242 from USNO -
ftp://tycho.usno.navy.mil/pub/ntp/leap-seconds.
3701462400 - with a
leap-seconds file from NIST at ftp://time.nist.gov/pub/. The USNO
version of the file changes the last documented leap second update
time whereas the NIST version does not. The expiration of the USNO
version of the file is also one month short.
Requested by: ian@
Obtained from: ftp://time.nist.gov/pub/leap-seconds.
3676924800
MFC after: 3 days
asomers [Fri, 23 Jun 2017 00:40:09 +0000 (00:40 +0000)]
Clarify usage of aio(4) with kqueue(2)
Reviewed by: jhb
MFC after: 3 weeks
Differential Revision: https://reviews.freebsd.org/D11299
gjb [Fri, 23 Jun 2017 00:27:40 +0000 (00:27 +0000)]
Fix, for the fourth or fifth time now, looking up where boot1.efi
is located.
MFC after: 5 days
X-MFC-Note: maybe
X-MFC-With: r320252, r320253
Sponsored by: The FreeBSD Foundation
gjb [Fri, 23 Jun 2017 00:11:34 +0000 (00:11 +0000)]
Remove two configuration entries used for debugging that snuck in.
MFC after: 5 days
X-MFC-Note: maybe
X-MFC-With: r320252
Sponsored by: The FreeBSD Foundation
gjb [Fri, 23 Jun 2017 00:08:36 +0000 (00:08 +0000)]
In release/release.sh:
- Rename chroot_arm_armv6_build_release() to chroot_arm_build_release()
and make it hardware agnostic (such as armv6 -vs- armv7 -vs- arm64).
- Evaluate EMBEDDED_TARGET differently so release/tools/arm.subr can
be used for arm/armv6 and arm64/aarch64.
- Update comments and copyright.
In release/tools/arm.subr:
- In arm_create_disk(), change the default alignment from 63 to 512k,
fixing a boot issue on arm64 and EFI. [1]
- Update comments and copyright.
Add a RPI3 configuration file, pieces obtained from Crochet.
Obtained from: Crochet [1]
MFC after: 5 days
X-MFC-Note: maybe
Sponsored by: The FreeBSD Foundation
bdrewery [Thu, 22 Jun 2017 22:53:10 +0000 (22:53 +0000)]
Provide proper values for X_LINKER_TYPE/VERSION when XLD == LD.
MFC after: 2 weeks
Sponsored by: Dell EMC Isilon
bdrewery [Thu, 22 Jun 2017 22:53:07 +0000 (22:53 +0000)]
Don't overwrite already-set LINKER_VERSION/LINKER_TYPE.
MFC after: 2 weeks
Sponsored by: Dell EMC Isilon
bdrewery [Thu, 22 Jun 2017 21:22:12 +0000 (21:22 +0000)]
LINKER_VERSION: Support external binutils.
The ports binutils stores the version in the 5th word so just look for
a version using a pattern instead.
Reported by: rpokala
MFC after: 2 weeks
Sponsored by: Dell EMC Isilon
bdrewery [Thu, 22 Jun 2017 21:03:30 +0000 (21:03 +0000)]
Pass along LINKER_* vars during installworld and show in test-system-compiler.
Sponsored by: Dell EMC Isilon
bdrewery [Thu, 22 Jun 2017 21:03:27 +0000 (21:03 +0000)]
Support cached linker values in environment.
This is similar to r289659 for bsd.compiler.mk.
MFC after: 2 weeks
Reviewed by: emaste
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D11310
bdrewery [Thu, 22 Jun 2017 21:03:24 +0000 (21:03 +0000)]
Support XLD for setting X_LINKER_TYPE and X_LINKER_VERSION.
This is similar to r300350 for bsd.compiler.mk.
MFC after: 2 weeks
Reviewed by: emaste
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D11309
bdrewery [Thu, 22 Jun 2017 21:03:20 +0000 (21:03 +0000)]
Add basic bsd.linker.mk auto included from bsd.compiler.mk.
This will provide LINKER_TYPE and LINKER_VERSION.
MFC after: 2 weeks
Reviewed by: emaste
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D11308
bdrewery [Thu, 22 Jun 2017 20:32:23 +0000 (20:32 +0000)]
Fix spelling error.
Reported by: arc
Sponsored by: Dell EMC Isilon
cy [Thu, 22 Jun 2017 19:25:17 +0000 (19:25 +0000)]
Update leap-seconds to leap-seconds.
3701462400.
As per https://datacenter.iers.org/eop/-/somos/5Rgv/latest/16:
INTERNATIONAL EARTH ROTATION AND REFERENCE SYSTEMS SERVICE (IERS)
SERVICE INTERNATIONAL DE LA ROTATION TERRESTRE ET DES SYSTEMES DE REFERENCE
SERVICE DE LA ROTATION TERRESTRE
OBSERVATOIRE DE PARIS
61, Av. de l'Observatoire 75014 PARIS (France)
Tel. : 33 (0) 1 40 51 23 35
FAX : 33 (0) 1 40 51 22 91
Internet : services.iers@obspm.fr
Paris, 9 January 2017
Bulletin C 53
To authorities responsible
for the measurement and
distribution of time
INFORMATION ON UTC - TAI
NO leap second will be introduced at the end of June 2017.
The difference between Coordinated Universal Time UTC and the
International Atomic Time TAI is :
from 2017 January 1, 0h UTC, until further notice : UTC-TAI = -37 s
Leap seconds can be introduced in UTC at the end of the months of December
or June, depending on the evolution of UT1-TAI. Bulletin C is mailed every
six months, either to announce a time step in UTC, or to confirm that there
will be no time step at the next possible date.
Christian BIZOUARD
Director
Earth Orientation Center of IERS
Observatoire de Paris, France
Obtained from: ftp://tycho.usno.navy.mil/pub/ntp/leap-seconds.
3701462400
MFC after: 3 days
ed [Thu, 22 Jun 2017 18:39:52 +0000 (18:39 +0000)]
Use __ISO_C_VISIBLE, as opposed to testing __STDC_VERSION__.
FreeBSD's C library uses __STDC_VERSION__ to determine whether the
compiler provides language features specific to a certain version of the
C standard. __ISO_C_VISIBLE is used to specify which library features
need to be exposed.
max_align_t currently uses __STDC_VERSION__, even though it should be
using __ISO_C_VISIBLE to remain consistent with the rest of the headers
in include/.
Reviewed by: dim
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D11303
avg [Thu, 22 Jun 2017 17:10:34 +0000 (17:10 +0000)]
MFV r319950: 5220 L2ARC does not support devices that do not provide 512B access
FreeBSD note: the actual change has been in FreeBSD since r297848. This
commit accounts for integration of that change with subsequent changes,
especially r320156 (MFV of r318946) and r314274.
illumos/illumos-gate@
403a8da73c64ff9dfb6230ba045c765a242213fb
https://github.com/illumos/illumos-gate/commit/
403a8da73c64ff9dfb6230ba045c765a242213fb
https://www.illumos.org/issues/5220
There are disk devices that have logical sector size larger than 512B, for
example 4KB. That is, their physical sector size is larger than 512B and they
do not provide emulation for 512B sector sizes. For such devices both a data
offset and a data size must be properly aligned. L2ARC should arrange that
because it uses physical I/O.
zio_vdev_io_start() performs a necessary transformation if io_size is not
aligned to vdev_ashift, but that is done only for logical I/O. Something
similar should be done in L2ARC code.
* a temporary write buffer should be allocated if the original buffer is
not going to be compressed and its size is not aligned
* size of a temporary compression buffer should be ashift aligned
* for the reads, if a size of a target buffer is not sufficiently large and
it is not aligned then a temporary read buffer should be allocated
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Dan Kimmel <dan.kimmel@delphix.com>
Reviewed by: Saso Kiselkov <saso.kiselkov@nexenta.com>
Approved by: Dan McDonald <danmcd@joyent.com>
Author: Andriy Gapon <avg@FreeBSD.org>
MFC after: 3 weeks
avg [Thu, 22 Jun 2017 16:58:09 +0000 (16:58 +0000)]
MFV r319742: 8056 zfs send size estimate is inaccurate for some zvols
illumos/illumos-gate@
0255edcc85fc0cd1dda0e49bcd52eb66c06a1b16
https://github.com/illumos/illumos-gate/commit/
0255edcc85fc0cd1dda0e49bcd52eb66c06a1b16
https://www.illumos.org/issues/8056
The send size estimate for a zvol can be too low, if the size of the record
headers (dmu_replay_record_t's) is a significant portion of the size.
This is typically the case when the data is highly compressible, especially
with embedded blocks.
The problem is that dmu_adjust_send_estimate_for_indirects() assumes that
blocks are the size of the "recordsize" property (128KB).
However, for zvols, the blocks are the size of the "volblocksize" property
(8KB). Therefore, we estimate that there will be 16x less record headers than
there really will be.
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Pavel Zakharov <pavel.zakharov@delphix.com>
Approved by: Robert Mustacchi <rm@joyent.com>
Author: Paul Dagnelie <pcd@delphix.com>
MFC after: 3 weeks
avg [Thu, 22 Jun 2017 16:52:22 +0000 (16:52 +0000)]
MFV r318947: 7578 Fix/improve some aspects of ZIL writing.
FreeBSD note: this commit removes small differences between what mav
committed to FreeBSD in r308782 and what ended up committed to illumos
after addressing all review comments.
illumos/illumos-gate@
c5ee46810f82e8a53d2cc5a487568a573f449039
https://github.com/illumos/illumos-gate/commit/
c5ee46810f82e8a53d2cc5a487568a573f449039
https://www.illumos.org/issues/7578
After some ZIL changes 6 years ago zil_slog_limit got partially broken
due to zl_itx_list_sz not updated when async itx'es upgraded to sync.
Actually because of other changes about that time zl_itx_list_sz is not
really required to implement the functionality, so this patch removes
some unneeded broken code and variables.
Original idea of zil_slog_limit was to reduce chance of SLOG abuse by
single heavy logger, that increased latency for other (more latency critical)
loggers, by pushing heavy log out into the main pool instead of SLOG. Beside
huge latency increase for heavy writers, this implementation caused double
write of all data, since the log records were explicitly prepared for SLOG.
Since we now have I/O scheduler, I've found it can be much more efficient
to reduce priority of heavy logger SLOG writes from ZIO_PRIORITY_SYNC_WRITE
to ZIO_PRIORITY_ASYNC_WRITE, while still leave them on SLOG.
Existing ZIL implementation had problem with space efficiency when it
has to write large chunks of data into log blocks of limited size. In some
cases efficiency stopped to almost as low as 50%. In case of ZIL stored on
spinning rust, that also reduced log write speed in half, since head had to
uselessly fly over allocated but not written areas. This change improves
the situation by offloading problematic operations from z*_log_write() to
zil_lwb_commit(), which knows real situation of log blocks allocation and
can split large requests into pieces much more efficiently. Also as side
effect it removes one of two data copy operations done by ZIL code WR_COPIED
case.
While there, untangle and unify code of z*_log_write() functions.
Also zfs_log_write() alike to zvol_log_write() can now handle writes crossing
block boundary, that may also improve efficiency if ZPL is made to do that.
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Andriy Gapon <avg@FreeBSD.org>
Reviewed by: Steven Hartland <steven.hartland@multiplay.co.uk>
Reviewed by: Brad Lewis <brad.lewis@delphix.com>
Reviewed by: Richard Elling <Richard.Elling@RichardElling.com>
Approved by: Robert Mustacchi <rm@joyent.com>
Author: Alexander Motin <mav@FreeBSD.org>
MFC after: 3 weeks
cem [Thu, 22 Jun 2017 15:52:18 +0000 (15:52 +0000)]
sglist.h: Fix sg_refs signedness to match refcount(9)
PR: 220122
Reported by: Mark Millard <markmi at dsl-only.net>
Sponsored by: Dell EMC Isilon
emaste [Thu, 22 Jun 2017 15:09:42 +0000 (15:09 +0000)]
retire arm64 kernel module linker workaround
Relocatable linking in aarch64 ld from binutils 2.25.1 does not work.
The linker corrupts the references to the external symbols which are
defined by other object in the linking set and should therefore lose
the GOT entry.
The problem is fixed in later versions of GNU ld and does not exist in
the in-tree lld linker that we now use by default for arm64, so the
workaround can be removed.
Reviewed by: kib
MFC after: 3 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D11302
emaste [Thu, 22 Jun 2017 14:30:09 +0000 (14:30 +0000)]
Make structure padding explicit in EFI_MEMORY_DESCRIPTOR
The EFI memory descriptor 64-bit aligns PhysicalStart on both 32- and
64-bit platforms. Make the padding explicit for i386 EFI.
Submitted by: Siva Mahadevan <smahadevan@freebsdfoundation.org>
MFC after: 3 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D11301
cy [Thu, 22 Jun 2017 12:46:48 +0000 (12:46 +0000)]
In poolnodcommand(): TTL (-T) is only valid when adding a node to a
pool (ippool -a) not when removing a node from a pool (ippool -r).
Flag -T as an error in ippool -r.
cy [Thu, 22 Jun 2017 06:25:34 +0000 (06:25 +0000)]
poolflush() has no positional arguments.
bdrewery [Thu, 22 Jun 2017 05:34:41 +0000 (05:34 +0000)]
Rework logic for skipping .depend/.meta file read/stat/writes.
- Rename _SKIP_READ_DEPEND to _SKIP_DEPEND since it also avoids writing.
- This now uses .NOMETA to avoid reading any .meta files related to
DEPENDOBJS. Objects not in OBJS/DEPENDOBJS may still have their .meta
files read in if they are in the dependency graph.
- This also avoids statting .meta and .depend files in the META_MODE +
-DNO_FILEMON case.
MFC after: 2 weeks
Sponsored by: Dell EMC Isilon
delphij [Thu, 22 Jun 2017 05:10:16 +0000 (05:10 +0000)]
Fix use-after-free introduced in r300388.
In r300388, endnetconfig() was called on nc_handle which would release
the associated netconfig structure, which means tmpnconf->nc_netid
would be a use-after-free.
Solve this by doing endnetconfig() in return paths instead.
Reported by: jemalloc via kevlo
Reviewed by: cem, ngie (earlier version)
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D11288
emaste [Thu, 22 Jun 2017 02:46:36 +0000 (02:46 +0000)]
makefs: add copies of NetBSD makefs msdos source files
We do not treat makefs as contrib code. Import copies of makefs msdos
files from NetBSD so that we can track our changes to these files.
These are copied from NetBSD, with only a change to use __FBSDID and
$FreeBSD$ instead of __KERNEL_RCSID and $NetBSD$. A copy of the
original $NetBSD$ tag remains in each source file.
Submitted by: Siva Mahadevan
Sponsored by: The FreeBSD Foundation
pfg [Thu, 22 Jun 2017 02:43:32 +0000 (02:43 +0000)]
ext2fs: add dir_nlink feature support.
ext4 on linux has always supported more than 32000 directories through
the dir_nlink feature, but FreeBSD was unable to catch up on this feature.
As part of the 64 bit inode changes nlink_t has been extended and this
feature is now possible.
Submitted by: Fedor Uporov
Differential Revision: https://reviews.freebsd.org/D11210
cem [Thu, 22 Jun 2017 02:19:39 +0000 (02:19 +0000)]
join(1): Fix field ordering for -v output
Per POSIX, join(1) (in modes other than -o) is a concatenation of selected
character fields. The joined field is first, followed by fields in the
order they occurred in the input files.
Our join(1) utility previously handled this correctly for lines with a match
in the other file. But it failed to order output fields correctly for
unmatched lines, printed in -a and -v modes.
A simple test case is:
$ touch a
$ echo "2 1" > b
$ join -v2 -2 2 a b
1 2
PR: 217711
Reported by: alt.j2-4o4s2yon at yopmail.com
Sponsored by: Dell EMC Isilon
emaste [Thu, 22 Jun 2017 01:11:20 +0000 (01:11 +0000)]
msdosfs: reformat a comment to reduce NetBSD diffs
rmacklem [Thu, 22 Jun 2017 00:17:15 +0000 (00:17 +0000)]
Ensure that the credentials field of the NFSv4 client open structure is
initialized.
bdrewery@ has reported panics "newnfs_copycred: negative nfsc_ngroups".
The only way I can see that this occurs is that the credentials field of
the open structure gets used before being filled in.
I am not sure quite how this happens, but for the file create case, the
code is serialized via the vnode lock on the directory. If, somehow, a
link to the same file gets created just after file creation, this might
occur.
This patch ensures that the credentials field is initialized to a reasonable
set of credentials before the structure is linked into any list, so I
this should ensure it is initialized before use.
I am committing the patch now, since bdrewery@ notes that the panics
are intermittent and it may be months before he knows if the patch fixes
his problem.
Reported by: bdrewery
MFC after: 2 weeks
bdrewery [Wed, 21 Jun 2017 23:28:24 +0000 (23:28 +0000)]
Tweak r320206: Still create the TABLE but not the .depend entry for missing headers.
X-MFC-With: r320206
MFC after: 3 days
Sponsored by: Dell EMC Isilon
bdrewery [Wed, 21 Jun 2017 23:01:18 +0000 (23:01 +0000)]
Follow-up r308602: Don't add missing headers to .depend.tables.h.
This also avoids an error from egrep when a header is missing. This can happen
with something like WITHOUT_BLUETOOTH set when searching for
$include_dir/netgraph/bluetooth/include/ng_btsocket.h. The warning was
not an error (from set -e) due to being on the left side of a pipe. Now the
all_headers list is only filled with existing headers.
Reviewed by: ngie
MFC after: 3 days
Sponsored by: Dell EMC Isilon
bdrewery [Wed, 21 Jun 2017 20:10:58 +0000 (20:10 +0000)]
Remove logic for setting .MAKE.DEPENDFILE=/dev/null already covered by _SKIP_BUILD.
_SKIP_BUILD is defined in bsd.init.mk.
MFC after: 2 weeks
Sponsored by: Dell EMC Isilon
bdrewery [Wed, 21 Jun 2017 19:55:26 +0000 (19:55 +0000)]
Fix various 'make *clean *all *install' combinations.
This follows commits like r320174 in share/mk/bsd.dep.mk.
MFC after: 3 days
Sponsored by: Dell EMC Isilon
bdrewery [Wed, 21 Jun 2017 18:56:53 +0000 (18:56 +0000)]
Similar to r296013 for NO_ROOT, force SUBDIR_PARALLEL for buildworld WORLDTMP staging.
MFC after: 2 weeks
Sponsored by: Dell EMC Isilon
kib [Wed, 21 Jun 2017 18:54:28 +0000 (18:54 +0000)]
Call pmap_copy() only for map entries which have the backing object
instantiated.
Calling pmap_copy() on non-faulted anonymous memory entries is useless.
Noted and reviewed by: alc
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
kib [Wed, 21 Jun 2017 18:51:30 +0000 (18:51 +0000)]
Assert that the protection of a new map entry is a subset of the max
protection.
Noted and reviewed by: alc
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
zbb [Wed, 21 Jun 2017 18:28:37 +0000 (18:28 +0000)]
Enable arm,io-coherent property of PL310 L2 cache on Armada 38x platforms
This patch disables outer cache sync in PL310 driver
by adding "arm,io-coherent" property. In addition to
the previous patches it was the last bit needed
for enabling proper operation of Armada 38x SoCs
with the IO cache coherency.
Submitted by: Michal Mazur <mkm@semihalf.com>
Obtained from: Semihalf
Sponsored by: Stormshield
Reviewed by: mmel
Differential revision: https://reviews.freebsd.org/D11204
zbb [Wed, 21 Jun 2017 18:27:05 +0000 (18:27 +0000)]
Create root DMA tag and fix MBUS windows on DMA coherent platforms
Armada 38x SoCs, in order to work properly in IO-coherent mode,
requires an update of the MBUS windows attributesd.
This patch also configures nexus coherent dma tag, because all
busses and children devices have to inherit this setting in runtime.
The latter has to be executed as a sysinit (SI_SUB_DRIVERS type),
so that bus_dma_tag_create() can be executed properly.
Submitted by: Michal Mazur <mkm@semihalf.com>
Marcin Wojtas <mw@semihalf.com>
Obtained from: Semihalf
Sponsored by: Stormshield
Reviewed by: ian
Differential revision: https://reviews.freebsd.org/D11203
zbb [Wed, 21 Jun 2017 18:25:35 +0000 (18:25 +0000)]
Enable setting the dma tag at the nexus level
Allow to set the dma tag for nexus in the platform init code,
so that all busses and devices would be able to inherit it.
This change is useful e.g. for setting coherent dma tag for
the platforms with hardware IO cache coherency.
Submitted by: ian
Michal Mazur <mkm@semihalf.com>
Reviewed by: ian
Differential revision: https://reviews.freebsd.org/D11202
zbb [Wed, 21 Jun 2017 18:23:28 +0000 (18:23 +0000)]
Introduce support for DMA coherent ARM platforms
- Inherit BUS_DMA_COHERENT flag from parent buses
- Use cacheable memory attributes on dma coherent platform
- Disable cache synchronization on coherent platform
Changes are based on ARMv8 busdma code and commit r299683.
Submitted by: Michal Mazur <mkm@semihalf.com>
Obtained from: Semihalf
Sponsored by: Stormshield
Reviewed by: ian
Differential revision: https://reviews.freebsd.org/D11201
markj [Wed, 21 Jun 2017 18:20:17 +0000 (18:20 +0000)]
Update io-mapping.h in the LinuxKPI.
Add io_mapping_init_wc() and add a third (unused) parameter to
io_mapping_map_wc().
Reviewed by: hselasky
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D11286
avg [Wed, 21 Jun 2017 18:19:27 +0000 (18:19 +0000)]
bhyveload: correctly query size of disks
On FreeBSD fstat(2) works fine for querying sizes of plain files,
but not so much for character devices.
So, use DIOCGMEDIASIZE to try to get the correct size for disks
and disk-like devices (e.g. zvols).
PR: 220186
Reviewed by: tsoome, grehan
MFC after: 1 week
markj [Wed, 21 Jun 2017 18:17:32 +0000 (18:17 +0000)]
Add missing lock destructor invocations to the LinuxKPI unload handler.
MFC after: 1 week
markj [Wed, 21 Jun 2017 18:15:47 +0000 (18:15 +0000)]
Include kmod.h from the LinuxKPI's module.h.
MFC after: 1 week
markj [Wed, 21 Jun 2017 18:08:36 +0000 (18:08 +0000)]
Add a lockdep macro to the LinuxKPI.
Also fix some nearby style issues.
MFC after: 1 week
bdrewery [Wed, 21 Jun 2017 17:11:49 +0000 (17:11 +0000)]
objwarn should be .PHONY.
Otherwise in META_MODE it may create an objwarn.meta if only bsd.obj.mk
is included; bsd.sys.mk already had .PHONY: objwarn.
MFC after: 3 days
Sponsored by: Dell EMC Isilon
hselasky [Wed, 21 Jun 2017 14:38:52 +0000 (14:38 +0000)]
Allow the VM fault handler to be NULL in the LinuxKPI when handling a
memory map request. When the VM fault handler is NULL a return code of
VM_PAGER_BAD is returned from the character device's pager populate
handler. This fixes compatibility with Linux.
MFC after: 1 week
Sponsored by: Mellanox Technologies
cy [Wed, 21 Jun 2017 12:19:05 +0000 (12:19 +0000)]
Fix -S handling within poolcommand(). Specifying a seed (-S) is only
valid when adding a pool (ippool -A), not when removing a pool
(ippool -R). It is a command line syntax error if specifying a seed (-S)
is specified when emoving a pool (-R).
avg [Wed, 21 Jun 2017 08:12:07 +0000 (08:12 +0000)]
fix several fallouts from r320156, ZFS ABD import
All of the problems were related to the FreeBSD-only features.
One was caused by a mismerge in the zfsbootcfg support code.
All others were in the TRIM support code.
MFC after: 1 week
X-MFC with: r320156
avg [Wed, 21 Jun 2017 08:10:45 +0000 (08:10 +0000)]
fix several fallouts from r320156, ZFS ABD import
All of the problems were related to the FreeBSD-only features.
One was caused by a mismerge in the zfsbootcfg support code.
All others were in the TRIM support code.
Reported by: ken,
O. Hartmann <ohartmann@walstatt.org>,
Trond Endrestøl <Trond.Endrestol@fagskolen.gjovik.no>
MFC after: 1 week
X-MFC with: r320156
sephe [Wed, 21 Jun 2017 06:44:56 +0000 (06:44 +0000)]
hyperv/storvsc: Reduce log verbosity
On some windows hosts TEST_UNIT_READY command will return
SRB_STATUS_ERROR and sense data "NOT READY asc:3a,1 (Medium
not present - tray closed)", this occurs periodically, and
not hurt anything else. So, we prefer to ignore this kind
of errors.
PR: 219973
Submitted by: Hongjiang Zhang <hongzhan microsoft com>
MFC after: 3 days
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D11271
delphij [Wed, 21 Jun 2017 06:34:06 +0000 (06:34 +0000)]
Reduce code duplication in rpc.lockd.
Reuse create_service code instead of duplicating it in
lookup_addresses for kernel NLM.
As a (good) side effect this also fixed a few issues that were
already fixed in the former but never applied to the latter.
Reviewed by: kevlo
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D11259
alc [Wed, 21 Jun 2017 03:55:45 +0000 (03:55 +0000)]
Eliminate an unused macro.
MFC after: 3 days
emaste [Wed, 21 Jun 2017 00:33:16 +0000 (00:33 +0000)]
add -znotext to kernel module link invocation
ARM kernel modules require .text relocations (DT_TEXTREL) in shared
object ouptut, which is not allowed by default by lld. Add the -znotext
option to enable this. For simplicity add it unconditionally: it is
already default and thus either redundant (GNU BFD ld and gold from
ports) or ignored as an unknown option (GNU BFD ld 2.17.50 in the base
system).
Reviewed by: kib
MFC after: 3 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D11250
mav [Wed, 21 Jun 2017 00:30:57 +0000 (00:30 +0000)]
Add some device IDs for Intel Denverton SoCs.
bdrewery [Tue, 20 Jun 2017 22:08:02 +0000 (22:08 +0000)]
buildworld: Pass which world phase the build is in down to submakes.
This is useful for having directories behave differently depending
on the phase - such as enabling SUBDIR_PARALLEL or disabling
redundant building of library directories already done by
earlier 'make _libraries'.
Sponsored by: Dell EMC Isilon
mckusick [Tue, 20 Jun 2017 21:26:42 +0000 (21:26 +0000)]
Allow '_' in labels when specifying -L to newfs.
Reported by: Keve Nagy
Reviewed by: kib
PR: 220163
MFC after: 5 days
davidcs [Tue, 20 Jun 2017 21:17:05 +0000 (21:17 +0000)]
Add pkts_cnt_oversized to stats.
bdrewery [Tue, 20 Jun 2017 20:52:06 +0000 (20:52 +0000)]
Fix 'make clean all' to work again.
This likely broke completely with r308599.
Apply the same fix for 'make destroy' which is a DIRDEPS_BUILD thing.
PR: 219819
Reported by: trasz
MFC after: 3 days
Sponsored by: Dell EMC Isilon
ngie [Tue, 20 Jun 2017 20:50:54 +0000 (20:50 +0000)]
Don't expect :sF_flag to fail anymore
While here, also add a check to verify that the link target
is updated in the testcase
MFC after: 1 month
MFC with: r320172
PR: 219943
Differential Revision: D11167
Submitted by: shivansh
Sponsored by: Google (GSoC 2017)
ngie [Tue, 20 Jun 2017 20:46:08 +0000 (20:46 +0000)]
ln(1): fix -F behavior
When '-F' option is used, the target directory needs to be unlinked.
Currently, the modified target ("target/source") is being unlinked, and
since it doesn't yet exist, the original target isn't removed.
This is fixed by skipping the block where target is modified to
"target/source" when '-F' option is set.
Hence, a symbolic link (with the same name as of the original target) to
the source_file is produced.
Update the test for ln(1) to reflect fix for option '-F'
MFC after: 1 month
PR: 219943
Differential Revision: D11167
Submitted by: shivansh
Sponsored by: Google (GSoC 2017)
bdrewery [Tue, 20 Jun 2017 20:34:30 +0000 (20:34 +0000)]
LIBADD: Try to support partial tree checkouts in some limited cases.
LIBADD is only supported for in-tree builds because we do not install
share/mk/src.libnames.mk (which provides LIBADD support) into /usr/share/mk.
So if a partial checkout is done then the LIBADDs are ignored and no LDADD is
ever added.
Provide limited support for this case for when LIBADD is composed entirely of
base libraries. This is to avoid clashes with ports and other out-of-tree
LIBADD uses that should not be mapped to LDADD and because we do not want to
support LIBADD out-of-tree right now.
Reported by: mckusick, kib
MFC after: 2 weeks
Sponsored by: Dell EMC Isilon
pfg [Tue, 20 Jun 2017 20:22:34 +0000 (20:22 +0000)]
Attempt to treat "metadata" as a collectively singular noun.
Or at least more consistent.
Input from: matteo, ian
asomers [Tue, 20 Jun 2017 19:45:02 +0000 (19:45 +0000)]
zfsd(8): Remove pidfile on shutdown
MFC after: 3 weeks
Sponsored by: Spectra Logic Corp
asomers [Tue, 20 Jun 2017 19:34:21 +0000 (19:34 +0000)]
Require devd to be running for its ATF tests to run
The ATF tests communicate with the system's running devd
PR: 220169
Reported by: gjb
MFC after: 3 weeks
Sponsored by: Spectra Logic Corp
asomers [Tue, 20 Jun 2017 19:32:39 +0000 (19:32 +0000)]
devd(8): Remove pidfile on shutdown
MFC after: 3 weeks
Sponsored by: Spectra Logic Corp
asomers [Tue, 20 Jun 2017 19:00:55 +0000 (19:00 +0000)]
Fix usr.sbin/makefs/makefs_ffs_tests when /etc/fstab does not exist
dumpfs prints a harmless warning message (via ufs_disk_fillout(3) and
getfsfile(3)), when /etc/fstab does not exist. We can ignore it.
PR: 220165
Reported by: gjb
MFC after: 3 weeks
Sponsored by: Spectra Logic Corp
loos [Tue, 20 Jun 2017 18:38:51 +0000 (18:38 +0000)]
Always ignore the START and STOP bits whenever the control register is
being overwritten, they are set only bits (cleared by hardware).
Disable the Acknowledge of the controller slave address. The slave mode is
not supported.
Make sure the interrupt flag bit is being cleared as recommended, add a
delay() _after_ clear the interrupt bit.
Sponsored by: Rubicon Communications, LLC (Netgate)
manu [Tue, 20 Jun 2017 18:29:01 +0000 (18:29 +0000)]
dtc: Update to upstream 917526
- Add missing "typename" in divmod's "using" of binary_operator_base::result.
loos [Tue, 20 Jun 2017 18:25:27 +0000 (18:25 +0000)]
Make ofw_iicbus attach to twsi I2C controllers.
Add the ofw_bus_get_node() callback in mv_twsi, it is mandatory for the
ofw_iicbus usage.
Sponsored by: Rubicon Communications, LLC (Netgate)
loos [Tue, 20 Jun 2017 18:14:56 +0000 (18:14 +0000)]
Allow the use of extended media types with if_mvneta, so it can report 2.5G
speeds properly.
While here remove a couple of stray white spaces.
Sponsored by: Rubicon Communications, LLC (Netgate)
loos [Tue, 20 Jun 2017 18:11:23 +0000 (18:11 +0000)]
Add support to 2.5G uplink for the MV88E6141 and MV88E6341 switches.
Force the switch port settings for fixed media types.
Tested with: 88E6176, 88E6141
Sponsored by: Rubicon Communications, LLC (Netgate)
avg [Tue, 20 Jun 2017 17:39:24 +0000 (17:39 +0000)]
MFV r318946: 8021 ARC buf data scatter-ization
illumos/illumos-gate@
770499e185d15678ccb0be57ebc626ad18d93383
https://github.com/illumos/illumos-gate/commit/
770499e185d15678ccb0be57ebc626ad18d93383
https://www.illumos.org/issues/8021
The ARC buf data project (known simply as "ABD" since its genesis in the ZoL
community) changes the way the ARC allocates `b_pdata` memory from using linear
`void *` buffers to using scatter/gather lists of fixed-size 1KB chunks. This
improves ZFS's performance by helping to defragment the address space occupied
by the ARC, in particular for cases where compressed ARC is enabled. It could
also ease future work to allocate pages directly from `segkpm` for minimal-
overhead memory allocations, bypassing the `kmem` subsystem.
This is essentially the same change as the one which recently landed in ZFS on
Linux, although they made some platform-specific changes while adapting this
work to their codebase:
1. Implemented the equivalent of the `segkpm` suggestion for future work
mentioned above to bypass issues that they've had with the Linux kernel memory
allocator.
2. Changed the internal representation of the ABD's scatter/gather list so it
could be used to pass I/O directly into Linux block device drivers. (This
feature is not available in the illumos block device interface yet.)
FreeBSD notes:
- the actual (default) chunk size is 4KB (despite the text above saying 1KB)
- we can try to reimplement ABDs, so that they are not permanently
mapped into the KVA unless explicitly requested, especially on
platforms with scarce KVA
- we can try to use unmapped I/O and avoid intermediate allocation of a
linear, virtual memory mapped buffer
- we can try to avoid extra data copying by referring to chunks / pages
in the original ABD
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Paul Dagnelie <pcd@delphix.com>
Reviewed by: John Kennedy <john.kennedy@delphix.com>
Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Prashanth Sreenivasa <pks@delphix.com>
Reviewed by: Pavel Zakharov <pavel.zakharov@delphix.com>
Reviewed by: Chris Williamson <chris.williamson@delphix.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
Author: Dan Kimmel <dan.kimmel@delphix.com>
MFC after: 3 weeks
avg [Tue, 20 Jun 2017 16:55:30 +0000 (16:55 +0000)]
revert r315852 which introduced zio_buf_alloc_nowait for use in vdev_queue_aggregate
I think that the change is still good, but reconciling it with a planned
merge of the ARC buf data scatter-ization is a bit more tedious
than I can handle.
MFC after: 17 days
avg [Tue, 20 Jun 2017 16:45:48 +0000 (16:45 +0000)]
fstyp: move sys/ include path after zfs include paths
The reason is that FreeBSD refcount.h shadows ZFS refcount.h and that
will lead to a build error after a planned import of the ARC buf data
scatter-ization.
It's possible that some day we will have an opposite problem where
a ZFS header would shadow an essential FreeBSD header.
So, we need to think about a better long term solution.
Discussed with: allanjude
MFC after: 17 days
avg [Tue, 20 Jun 2017 16:40:31 +0000 (16:40 +0000)]
remove bogus declaration of malloc from tcp_wrappers
The declaration was already inactive when INET6 was enabled
and it causes a build error in the other case because of
a conflict with the correct definition in stdlib.h.
Discussed with: dim, ume
MFC after: 2 weeks
emaste [Tue, 20 Jun 2017 15:51:09 +0000 (15:51 +0000)]
Fall back to GPL dtc(1) when we lack a C++11 compiler
The BSD licensed device tree compiler is written in C++11.
Reported by: jhibbits
Reviewed by: jhibbits, manu
Sponsored by: The FreeBSD Foundation
pfg [Tue, 20 Jun 2017 14:35:19 +0000 (14:35 +0000)]
Improve grammar concerning "metadata".
Remove unnecessary space while here.
pfg [Tue, 20 Jun 2017 14:28:51 +0000 (14:28 +0000)]
ext2fs: Add uninit_bg feature support.
From the linux tune2fs(8) manpage:
"Allow the kernel to initialize bitmaps and inode tables and keep a high
watermark for the unused inodes in a filesystem, to reduce e2fsck(8) time.
This first e2fsck run after enabling this feature will take the full time,
but subsequent e2fsck runs will take only a fraction of the original time,
depending on how full the file system is."
Submitted by: Fedor Uporov
Differential Revision: https://reviews.freebsd.org/D11211
cy [Tue, 20 Jun 2017 12:31:58 +0000 (12:31 +0000)]
Flag poolnodecommand() (ippool -a and ippool -r) command line syntax
errors.
zbb [Tue, 20 Jun 2017 11:11:42 +0000 (11:11 +0000)]
Disable PL310 outer cache sync for IO coherent platforms
When a PL310 cache is used on a system that provides hardware
coherency, the outer cache sync operation is useless, and can be
skipped. Moreover, on some systems, it is harmful as it causes
deadlocks between the Marvell coherency mechanism, the Marvell PCIe
or Crypto controllers and the Cortex-A9.
To avoid this, this commit introduces a new Device Tree property
'arm,io-coherent' for the L2 cache controller node, valid only for the
PL310 cache. It identifies the usage of the PL310 cache in an I/O
coherent configuration. Internally, it makes the driver disable the
outer cache sync operation.
Note, that other outer-cache operations are not removed, as they may
be needed for certain situations, such as booting secondary CPUs.
Moreover, in order to enable IO coherent operation, the decision
whether to use L2 cache maintenance callbacks is done in busdma
layer, which was enabled in one of the previous commits.
Submitted by: Michal Mazur <mkm@semihalf.com>
Marcin Wojtas <mw@semihalf.com>
Reviewed by: mmel
Obtained from: Semihalf
Differential revision: https://reviews.freebsd.org/D11245
zbb [Tue, 20 Jun 2017 11:09:38 +0000 (11:09 +0000)]
Implement workaround for Armada 38X family HW issue between CPU and devices
There is a hardware problem between Cortex-A9 CPUs and on-chip devices
in Armada 38X SoCs that may cause hang on heavy load. This can be
however worked around by mapping all registers and PCI IO
as strongly ordered instead of device memory.
Submitted by: Zbigniew Bodek <zbb@semihalf.com>
Reviewed by: mmel
Tested by: mw_semihalf.com
Obtained from: Semihalf
Differential revision: https://reviews.freebsd.org/D10218
smh [Tue, 20 Jun 2017 08:03:50 +0000 (08:03 +0000)]
Fixed bsdinstall location of vfs.zfs.min_auto_ashift
vfs.zfs.min_auto_ashift is a sysctl only not a tunable so updated bsdinstall
to use the correct location /etc/sysctl.conf instead of /boot/loader.conf
Reported by: Aaron Caza
Reviewed by: allanjude
MFC after: 2 days
Sponsored by: Multiplay
Differential Revision: https://reviews.freebsd.org/D11278
jasone [Tue, 20 Jun 2017 07:25:38 +0000 (07:25 +0000)]
Decrease relative branch brittleness.
Replace conditional branches with trampolines to unconditional branches when
jumping to labels within other compilation units. This increases the offset
range from +-1 MiB to +-128 MiB.
ngie [Tue, 20 Jun 2017 06:20:09 +0000 (06:20 +0000)]
periodic(8): delete trailing whitespace
MFC after: 1 month
manu [Tue, 20 Jun 2017 04:58:12 +0000 (04:58 +0000)]
Add sun8i-h3-orangepi-one.dts to the build
We support the board and have a u-boot port for it.
manu [Tue, 20 Jun 2017 03:44:21 +0000 (03:44 +0000)]
Fix punctionation in UPDATING and regen src.conf after r320127
Reported by: ngie
manu [Tue, 20 Jun 2017 03:41:06 +0000 (03:41 +0000)]
Remove some custom DTS files as we are using upstream ones.
manu [Tue, 20 Jun 2017 03:13:49 +0000 (03:13 +0000)]
Update the GNU DTS file from Linux 4.11
manu [Tue, 20 Jun 2017 02:28:15 +0000 (02:28 +0000)]
Update the DTS file from Linux 4.11