Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 8 Dec 2015 18:54:28 +0000 (GMT)
From:      jenkins-admin@FreeBSD.org
To:        brueffer@FreeBSD.org, smh@FreeBSD.org, ngie@FreeBSD.org, kib@FreeBSD.org,  vangyzen@FreeBSD.org, imp@FreeBSD.org, arybchik@FreeBSD.org,  emaste@FreeBSD.org, jhb@FreeBSD.org, uqs@FreeBSD.org, np@FreeBSD.org,  tuexen@FreeBSD.org, jilles@FreeBSD.org, kevlo@FreeBSD.org,  cem@FreeBSD.org, avos@FreeBSD.org, bapt@FreeBSD.org,  melifaro@FreeBSD.org, markj@FreeBSD.org, andrew@FreeBSD.org,  benno@FreeBSD.org, ken@FreeBSD.org, dim@FreeBSD.org,  jkim@FreeBSD.org, hselasky@FreeBSD.org, sjg@FreeBSD.org,  nwhitehorn@FreeBSD.org, mav@FreeBSD.org, mckusick@FreeBSD.org,  bdrewery@FreeBSD.org, maxim@FreeBSD.org, jenkins-admin@FreeBSD.org,  freebsd-arm@FreeBSD.org
Subject:   FreeBSD_HEAD_arm64 - Build #1853 - Failure
Message-ID:  <358635345.1.1449600877149.JavaMail.jenkins@jenkins-9.freebsd.org>

next in thread | raw e-mail | index | archive | help
FreeBSD_HEAD_arm64 - Build #1853 - Failure:

Build information: https://jenkins.FreeBSD.org/job/FreeBSD_HEAD_arm64/1853/
Full change log: https://jenkins.FreeBSD.org/job/FreeBSD_HEAD_arm64/1853/changes
Full build log: https://jenkins.FreeBSD.org/job/FreeBSD_HEAD_arm64/1853/console

Change summaries:

291996 by emaste:
Update after r291955, build/install userland debug by default

Sponsored by:	The FreeBSD Foundation

291995 by bdrewery:
Fix some makeman issues.

- Don't bother looking up REVISION/BRANCH/etc from release/, or the
  CPUTYPE check, as these are not used for makeman and wastes time.  The also
  invokes auto.obj.mk after I reverted auto.obj.mk ignoring -V in r291312.
- Don't modify CC or PATH when WITH_CCACHE_BUILD or WITH_META_MODE is enabled
  as it leads to bsd.compiler.mk errors.

Sponsored by:	EMC / Isilon Storage Division

291994 by vangyzen:
resolver: fix the build of some ports, broken by r289315

r289315 required time_t and struct timespec to be defined before
including <resolv.h>.  This broke the build of net-mgmt/sx, at least.

Include <sys/timespec.h> in resolv.h to fix this with minimal pollution.

Reported by:	Raphael Kubo da Costa <rakuco>
MFC after:	3 days
Sponsored by:	Dell Inc.

291993 by melifaro:
Merge helper fib* functions used for basic lookups.

Vast majority of rtalloc(9) users require only basic info from
route table (e.g. "does the rtentry interface match with the interface
  I have?". "what is the MTU?", "Give me the IPv4 source address to use",
  etc..).
Instead of hand-rolling lookups, checking if rtentry is up, valid,
  dealing with IPv6 mtu, finding "address" ifp (almost never done right),
  provide easy-to-use API hiding all the complexity and returning the
  needed info into small on-stack structure.

This change also helps hiding route subsystem internals (locking, direct
  rtentry accesses).
Additionaly, using this API improves lookup performance since rtentry is not
  locked.
(This is safe, since all the rtentry changes happens under both radix WLOCK
  and rtentry WLOCK).

Sponsored by:	Yandex LLC

291989 by uqs:
Fix make depend

291985 by arybchik:
sfxge: [3/6] rework MCDI response handling

Required for MCDI proxy authorization support.

Submitted by:   Andy Moreton <amoreton at solarflare.com>
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
Differential Revision: https://reviews.freebsd.org/D4420

291984 by ngie:
Add missing stdlib.h header

Apply some minor style(9) fixes

MFC after: 3 days
Sponsored by: EMC / Isilon Storage Division

291983 by ngie:
Fix compilation warnings by adding unistd.h #include and missing return
statements

MFC after: 3 days
Sponsored by: EMC / Isilon Storage Division

291982 by ngie:
Skip the MAC portacl tests if MAC_PORTACL support is missing instead of
marking them failed

MFC after: 1 week
Sponsored by: EMC / Isilon Storage Division

291981 by ngie:
Delete bogus freeing of uninitialized data

MFC after: 3 days
Reported by: cppcheck
Sponsored by: EMC / Isilon Storage Division

291980 by ngie:
Add missing va_ends for corresponding va_starts to clean up variable arguments
initialized in _test_fmt(..)

MFC after: 3 days
Reported by: cppcheck
Sponsored by: EMC / Isilon Storage Division

291979 by ngie:
Unbreak compiling getnetgrent.c with -DDEBUG after r236402 by adding a
missing "}"

MFC after: 3 days
Sponsored by: EMC / Isilon Storage Division

291978 by sjg:
Merge bmake-20151201

291977 by maxim:
o DragonFly 4.4.1 release added.

291973 by bdrewery:
local.meta.sys.mk already defines TARGET_ARCHES_arm

291972 by bdrewery:
DIRDEPS_BUILD: Update dependencies.

Sponsored by:	EMC / Isilon Storage Division

291968 by markj:
Actually add the proc_rwmem(9) man page, missed in r291961.

291967 by markj:
Fix a couple misspellings of "environment."

MFC after:	3 days

291966 by markj:
Add a trailing newline to the expected output for tst.walltimestamp.ksh.

MFC after:	1 week

291965 by markj:
Fix a discrepancy in r291738.

The script that generates these makefiles was changed to modify LIBADD
rather than LDADD/DPADD, but the makefile itself was also changed in a
slightly different way.

291964 by markj:
Update DTrace test suite makefiles after r291963.

291963 by markj:
MFV r289003:
6271 dtrace caused excessive fork time

Author: Bryan Cantrill <bryan@joyent.com>
Reviewed by: Adam Leventhal <ahl@delphix.com>
Reviewed by: Dan McDonald <danmcd@omniti.com>
Reviewed by: Richard Lowe <richlowe@richlowe.net>
Approved by: Gordon Ross <gwr@nexenta.com>

illumos/illumos-gate@7bd3c1d12d0c764e1517c3aca62c634409356764

291962 by markj:
Modify DTRACEHIOC_ADDDOF to copy the DOF section from the target process.

r281257 added support for lazyload mode by allowing dtrace(1) to register
a DOF section on behalf of a traced process. This was implemented by
having libdtrace copy the DOF section into a heap-allocated buffer and
passing its address to the ioctl handler. However, DTrace uses the DOF
section address as a lookup key in certain cases, so the ioctl handler
should be given the target process' DOF section address instead. This
change modifies the ADDDOF handler to copy the DOF section in from the
target process, rather than from dtrace(1).

291961 by markj:
Add helper functions proc_readmem() and proc_writemem().

These helper functions can be used to read in or write a buffer from or to
an arbitrary process' address space. Without them, this can only be done
using proc_rwmem(), which requires the caller to fill out a uio. This is
onerous and results in code duplication; the new functions provide a simpler
interface which is sufficient for most existing callers of proc_rwmem().

This change also adds a manual page for proc_rwmem() and the new functions.

Reviewed by:	jhb, kib
Differential Revision:	https://reviews.freebsd.org/D4245

291960 by ken:
The ccb_xflags enumeration was removed from FreeBSD/head in
r259397 (it contained the CAM_EXTLUN_VALID bit) and I added the
same type name with a different set of values back in r291716.

The old ccb_xflags enumeration still exists in FreeBSD stable/10.
Shift all of the new values by one bit to avoid compatibility
issues when merged to stable/10.

MFC after:	3 days
Sponsored by:	Spectra Logic

291959 by bapt:
Fix ls -l alignement with new locales

Latest update of locales introduced abbreviated month that follows the regionale
rules meaning that they can be of variable length instead of being arbitrary
truncated to top 3 characters.

To fix alignement, ls now computes the visible length of the abbreviated month,
pads the shorter month with spaces in order to make sure everything is properly
aligned

Reviewed by:	ache, ed, jilles
Differential Revision:	https://reviews.freebsd.org/D4239

291958 by emaste:
elfcopy: exclude extension when converting from binary

When converting from binary to ELF, elfcopy creates symbols
_binary_<filename>_start_, _binary_<filename>_end, and
_binary_<filename>_size. For compatibility with GNU objcopy (and to
produce sensible symbol names) the extension must be stripped off.

Reviewed by:	imp
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D4238

291957 by brueffer:
Fix a comment typo in the code example.

PR:		203497
Submitted by:	chadf@triularity.org
MFC after:	1 week

291955 by emaste:
Build and install userland .debug files by default

Debug data files are now built by default with 'make buildworld' and
installed with 'make installworld'. This facilitates debugging but
requires more disk space both during the build and for the installed
world. Debug files may be disabled by setting WITHOUT_DEBUG_FILES=yes
in src.conf(5).

Reviewed by:	bdrewery, eadler, vangyzen
Relnotes:	Yes
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D4018

291954 by brueffer:
Add an MLINK for m_collapse.

PR:		204205
Submitted by:	avos
MFC after:	1 week

291953 by hselasky:
When setting up VLANs on a Raspberry Pi ethernet port, the MTU drops
from 1500 to 1496 bytes. The MTU should remain at 1500, extending the
frame size as per IEEE 802.3. Adding IFCAP_VLAN_MTU to the
if_capabilities field in the smsc driver solves the problem.  The
datasheet for the LAN9512 chip, section 3.2.3 states that the chip
supports the extended frame.

Submitted by:	rpp@ci.com.au
MFC after:	1 week
PR:		205050

291952 by bdrewery:
Fix spelling of internal hack.

Reported by:	ngie

291951 by emaste:
Replace magic value ELF note type with NT_FREEBSD_ABI_TAG

As of r291909 elf_common.h provides a definition.

Suggested by:	kib
Sponsored by:	The FreeBSD Foundation

291950 by brueffer:
Fix a typo in the CPUTYPE list.

PR:		205099
Submitted by:	xxjack12xx@gmail.com
MFC after:	1 week

291949 by kib:
Merge common parts of i386 and amd64 md_var.h and smp.h into
new headers x86/include x86_var.h and x86_smp.h.

Reviewed by:	emaste, jhb
Sponsored by:	The FreeBSD Foundation
Differential revision:	https://reviews.freebsd.org/D4358

291948 by kib:
Use ANSI C definition.

MFC after:	1 week

291947 by jhb:
Set %esp correctly in the extended TSS.

The pcb is saved at the top of the kernel stack on x86 platforms.
The initial kenrel stack pointer is set in the TSS so that the trapframe
from user -> kernel transitions begins directly below the pcb and grows
down.

The XSAVE changes moved the FPU save area out of the pcb and into a
variable-sized area after the pcb.  This required updating the expressions
to calculate the initial stack pointer from 'stacktop - sizeof(pcb)' to
'stacktop - sizeof(pcb) + FPU save area size'.

The i386_set_ioperm() system call allows user applications to access
individual I/O ports via the I/O port permission bitmap in the TSS.
On FreeBSD this requires allocating a custom per-process TSS instead of
using the shared per-CPU TSS.

The expression to initialize the initial kernel stack pointer in the
per-process TSS created for i386_set_ioperm() was not properly updated
after the XSAVE changes.  Processes that used i386_set_ioperm() would
trash the trapframe during subsequent context switches resulting in
panics from memory corruption.

This changes fixes the kernel stack pointer calculation for the per-process
TSS.

Reviewed by:	kib, n_hibma
Reported by:	n_hibma
MFC after:	1 week

291946 by bdrewery:
Garbage collect removed directories.

Sponsored by:	EMC / Isilon Storage Division

291945 by bdrewery:
FAST_DEPEND: Only pass -MF if we care about the object being compiled.

This will save time generating dependency files that we didn't expect
due to cases where SRCS!=OBJS or for building custom targetted objects
in Makefiles that do not end up in the DEPENDOBJS list.

This uses a bmake trick to modify CFLAGS based on ${.TARGET}.  A
.PARSEDIR check is done for the sake of MFC safety.

MFC after:	2 weeks
Sponsored by:	EMC / Isilon Storage Division

291944 by bdrewery:
FAST_DEPEND: Move handling code below yacc/lex/dtrace code that modified SRCS.

This fixes some of those newly added SRCS not having their depend files
included.

MFC after:	2 weeks
Sponsored by:	EMC / Isilon Storage Division

291943 by bdrewery:
FAST_DEPEND: Only try to use dependencies from C/C++ SRCS as mkdep did.

Rather than try to guess at all of the OBJS variables just use SRCS
using the same patterns that mkdep does.  This also fixes a mistake
where dependencies were being generated with FAST_DEPEND when they were
not for mkdep.  This happens when OBJS!=SRCS as is the case in
gnu/lib/csu where SRCS has 1 file and OBJS has several other files that
does not even contain the 1 SRCS file.  Generally in these cases the
OBJS have custom dependencies defined in their Makefile.  If we generate
dependencies for those and then load a .depend file, then .IMPSRC may
contain duplicate sources and lead to errors such as:
  cc: error: cannot specify -o when generating multiple output files

MFC after:	2 weeks
Sponsored by:	EMC / Isilon Storage Division

291942 by bdrewery:
Add missing CLEANFILES.

MFC after:	1 week
Sponsored by:	EMC / Isilon Storage Division

291941 by bdrewery:
Replace unneeded manual dependency on header by adding it to SRCS.

bsd.lib.mk and bsd.prog.mk already depend all objs on headers in SRCS if
there is not yet a depend file.  The headers in SRCS are never built or
installed.  After 'make depend' the header was already added as a proper
dependency on the objects where needed.

MFC after:	2 weeks
Sponsored by:	EMC / Isilon Storage Division

291939 by hselasky:
Update the mlx5 shared driver code to the latest version, which
include the following list of changes:

- Added eswitch ACL table management
  Introduce API for managing ACL table.
  This API include the following features:
  1) vlan filter - for VST/VGT+ support.
  2) spoofcheck.
  3) robust functionality to allow/drop general untagged/tagged traffic.
  4) support for both ingress and egress ACL types.

- Added loopback filter to the vacl table.

- Added multicast list set in the vPort context

- Added promiscuous mode set in the vPort context

- Set the vlan list in vPort context
  1) Check caps if VLAN list is not longer than FW supports
  2) Set MODIFY_NIC_VPORT_CONTEXT command

- Changed MLX5_EEPROM_MAX_BYTES from 48 to 32 so that a single EEPROM
  reading cannot cross the 128-byte boundary. Previously reading the
  MCIA register was done in batches of 48 bytes. The third reading
  would then by-pass the 127th byte, which means that part of the low
  page and part of the high page would be read at the same time, which
  created a bug:
    1st: 0-47 bytes
    2nd: 48-95 bytes
    3rd: 96-143 bytes

MFC after:	1 week
Sponsored by:	Mellanox Technologies
Differential Revision:	https://reviews.freebsd.org/D4411

291938 by hselasky:
Add full support for Receive Side Scaling, RSS, to the mlx5en
driver. This includes binding all interrupt and worker threads
according to the RSS configuration, setting up correct Toeplitz
hashing keys as given by RSS and setting the correct mbuf
hashtype for all received traffic.

MFC after:	1 week
Sponsored by:	Mellanox Technologies
Differential Revision:	https://reviews.freebsd.org/D4410

291937 by kib:
Add support for usermode (vdso-like) gettimeofday(2) and
clock_gettime(2) on ARMv7 and ARMv8 systems which have architectural
generic timer hardware. It is similar how the RDTSC timer is used in
userspace on x86.

Fix a permission problem where generic timer access from EL0 (or
userspace on v7) was not properly initialized on APs.

For ARMv7, mark the stack non-executable. The shared page is added for
all arms (including ARMv8 64bit), and the signal trampoline code is
moved to the page.

Reviewed by:	andrew
Discussed with:	emaste, mmel
Sponsored by:	The FreeBSD Foundation
Differential revision:	https://reviews.freebsd.org/D4209

291936 by kib:
Update ctime when atime or birthtime are updated.

Cleanup setting of ctime/mtime/birthtime: do not set IN_ACCESS or
IN_UPDATE, then clear them with ufs_itimes(), making transient
(possibly inconsistent) change to the times, and then copy
user-supplied times into the inode.  Instead, directly clear IN_ACCESS
or IN_UPDATE when user supplied the time, and copy the value into the
inode.

Minor inconsistency left is that the inode ctime is updated even when
birthtime update attempt is performed on a UFS1 volume.

Submitted by:	bde
MFC after:	2 weeks

291932 by hselasky:
Add support for setting the TX moderation mode via a sysctl entry. TX
completion events can be moderated in the same way like RX completion
events. Expose this functionality by a sysctl variable.

MFC after:	1 week
Sponsored by:	Mellanox Technologies
Differential Revision:	https://reviews.freebsd.org/D4409

291931 by hselasky:
The firmware no longer supports setting a port MTU of zero bytes.
Set the port MTU and then query it and report if any problems instead.

MFC after:	1 week
Submitted by:	Shahar Klein <shahark@mellanox.com>
Sponsored by:	Mellanox Technologies
Differential Revision:	https://reviews.freebsd.org/D4408

291930 by imp:
Start to split apart the different image formats that we need to
make. Add support for generating powerpc64 qemu images. We
can generate them, but there's something wrong booting them.
This also simplifies the user config files a bit, and removes
bits no longer true.

291929 by imp:
Make sure to quote the arg after -n and -z tests.

291928 by arybchik:
sfxge: [2/6] rework MCDI response polling

Required to support MCDI proxy authorization.

Submitted by:   Andy Moreton <amoreton at solarflare.com>
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
Differential Revision: https://reviews.freebsd.org/D4418

291927 by arybchik:
sfxge: [1/6] add common code MCDI proxy auth build option

Submitted by:   Andy Moreton <amoreton at solarflare.com>
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
Differential Revision: https://reviews.freebsd.org/D4417

291926 by arybchik:
sfxge: fix pointer parameter/value signedness mismatch warnings

TLV routines use 'uint8_t *', NVRAM code uses caddr_t. Just cast to
required type to fix the warning.

Required to build with -Werror=pointer-signg.

Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
Differential Revision: https://reviews.freebsd.org/D4391

291925 by arybchik:
sfxge: fix name conflict with crc32_table from sys/crc32.h

The header is not present on FreeBSD, but exists on OmniOS where sfxge
common code is used as well.

Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
Differential Revision: https://reviews.freebsd.org/D4390

291924 by arybchik:
sfxge: switch to TxQ creation specific flags

It is better do not mix TxQ creation and receive event flags since only
checksum flags are applicable to TxQ.
Also it will allow to add a new TxQ creation specific flags.

Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
MFC after: 2    days
Differential Revision: https://reviews.freebsd.org/D4389

291923 by arybchik:
sfxge: [Sorrento] support writing of MUM firmware

When writing the MUM firmware the chunk size must be equal to the erase
size.

Submitted by:   Laurence Evans <levans at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
Differential Revision: https://reviews.freebsd.org/D4388

291922 by arybchik:
sfxge: support PERMIT_SET_MAC_WHEN_FILTERS_INSTALLED flag

Use flag on vadapter alloc when reported as a supported capability.
Use the slow device reset only when the capability is missing.

Submitted by:   Richard Houldsworth <rhouldsworth at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
Differential Revision: https://reviews.freebsd.org/D4387

291921 by imp:
Document the different config files.
Document how to run qemu for the ones I've run.
Use qcow2 for all qemu images.

291920 by imp:
Improve cam tracing a little by including the function code in the
traces for xpt_action. Note up-calls (down-calls?) to the SIM as well.

Differential Review: https://reviews.freebsd.org/D4382

291919 by ngie:
Enable bin/ls testcases disabled previously because of issues with how
kyua 0.11's version of report-junit was rendering non-printable characters

Upgrade to kyua 0.12 to obtain a fixed version of the command

Output verified with python 2.7.10's xml.dom.minidom module

MFC after: 3 days
Sponsored by: EMC / Isilon Storage Division

291918 by imp:
Now that we have dedup of mtree elements in nanobsd, remove the
primitive attempt we made here.

291917 by imp:
Fix up mtree with additional entries written to it by
nanobsd. implement support for NanoBSD touching a file (and possibly
recording that fact) as well as replacing a directory with a symlink.
Also specify the default uname and gname for files and use that as a
/set command at the top of the generated METALOG file.

291916 by imp:
Disable /entropy by default. /var/db/entropy should be enough.
# This eliminates the warning message at boot, but more work may be
# needed.

291915 by imp:
imported patch dedup

291914 by imp:
Allow the .cfg files to specify the ultimate format for the images
created.

291913 by imp:
Generally use shorter, more idiomatic sh expressions in a bunch of
places.

291912 by imp:
Default serial connection to 115200. Hardly anybody uses slower these
days, and those that do can use NANO_BOOT2CFG to change it.

291911 by smh:
Fix panic on shutdown due to iscsi event priority

iscsi's shutdown_pre_sync prio was SHUTDOWN_PRI_FIRST which caused it to
run before other high priority handlers such as filesystems e.g. ZFS.

This meant the iscsi sessions where removed before the ZFS geom consumer
was closed, resulting in a panic from g_access calls on debug kernels
due to negative acr.

Instead use the same as the old iscsi_initiator SHUTDOWN_PRI_DEFAULT-1
which allows it to run before dashutdown etc but after filesystems.

MFC after:	2 weeks
Sponsored by:	Multiplay

291909 by emaste:
Add definitions for ELF note types used in executables

Sponsored by:	The FreeBSD Foundation

291908 by ngie:
Fix leak in mkfs_msdos(..) by initializing img to NULL and free'ing at the end
of the function

Differential Revision: https://reviews.freebsd.org/D4405
MFC after: 1 week
PR: 204943
Reviewed by: emaste, jilles
Reported by: David Binderman <dcb314@hotmail.com>
Sponsored by: EMC / Isilon Storage Division

291907 by cem:
vm_fault_hold: handle vm_page_rename failure

On vm_page_rename failure, fix a missing object unlock and a double free of
a page.

First remove the old page, then rename into other page into first_object,
then free the old page.  This avoids the problem on rename failure.  This is
a little ugly but seems to be the most straightforward solution.

Tested with:
  $ sysctl debug.fail_point.uma_zalloc_arg="1%return"
  $ kyua test -k /usr/tests/sys/Kyuafile

Submitted by:	Ryan Libby <rlibby@gmail.com>
Reviewed by:	kib
Seen by:	alc
Sponsored by:	EMC / Isilon Storage Division
Differential Revision:	https://reviews.freebsd.org/D4326

291906 by cem:
pmap_invalidate_range: For very large ranges, flush the whole TLB

Typical TLBs have 40-512 entries available.  At some point, iterating
every single page in a requested invalidation range and issuing invlpg
on it is more expensive than flushing the TLB and allowing it to reload
on demand.

Broadwell CPUs have 1536 L2 TLB entries, so I've picked the arbitrary
number 4096 entries as a hueristic at which point we flush TLB rather
than invalidating every single potential page.

Reviewed by:	alc
Feedback from:	jhb, kib
MFC notes:	Depends on r291688
Sponsored by:	EMC / Isilon Storage Division
Differential Revision:	https://reviews.freebsd.org/D4280

291904 by tuexen:
Fix the allocation of outgoing streams:
* When processing a cookie, use the number of
  streams announced in the INIT-ACK.
* When sending an INIT-ACK for an existing
  association, use the value from the association,
  not from the end-point.

MFC after:	1 week

291903 by jilles:
sh: Add limited test for ${#@} and ${#*}.

POSIX leaves the result of expanding ${#@} and ${#*} unspecified, but ensure
it is numeric.

291902 by kevlo:
- Fix Tx queues to USB endpoints mapping
- Merge urtwn_r92c_dma_init() and urtwn_r88e_dma_init() into one

Reviewed by:	adrian, avos
Differential Revision:	https://reviews.freebsd.org/D4381

291896 by ngie:
Remove unused atf.test.mk variables

- ATF_BUILD_CC
- ATF_BUILD_CPP
- ATF_BUILD_CXX
- ATF_SHELL
- ATF_PREFIX

MFC after: 1 week
Sponsored by: EMC / Isilon Storage Division

291892 by ngie:
Remove redundant default TESTSDIR that is already defined in bsd.test.mk
after r289158

MFC after: 1 week
X-MFC with: r289158
Sponsored by: EMC / Isilon Storage Division

291891 by ngie:
Use .Fx instead of explicitly spelling out FreeBSD

Fix several warnings reported by igor

MFC after: 1 week
Sponsored by: EMC / Isilon Storage Division

291877 by nwhitehorn:
Adapt to new wireless scheme where base wlan interfaces do not show up in
ifconfig anymore.

291876 by ngie:
Remove stray unescaped `%` in `Booting from ...` informational message

PR: 204944
MFC after: 1 week
X-MFC with: r291164
Reported by: David Binderman <dcb314@hotmail.com>
Sponsored by: EMC / Isilon Storage Division

291872 by mav:
There is no priority request queue on 16Gig chips.

291868 by mav:
Rework WWNs generation to make cards without NVRAM more useful.

291864 by bdrewery:
Fix regression in r291738: This really wants -lssp.

The normal LIBADD is ssp_nonshared.  This also had a DPADD on LIBSSP which
does not actually exist, it is blank.

Sponsored by:	EMC / Isilon Storage Division

291863 by imp:
When building no-priv, chmod etc/defaults/rc.conf before appending to
it and then chmod back.  There's no chmod -push / chmod -pop so hard
code 444 as the right permissions here.

Also, fix more stray detritus that crept in (out?) while re-arranging
the deck chairs.

291862 by arybchik:
sfxge: erase nvram partitions in chunks equal to their erase size

The erase size is reported by the nvram info command.

Submitted by:   Paul Fox <pfox at solarflare.com>
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
Differential Revision: https://reviews.freebsd.org/D4386

291861 by cem:
style.9: Add a small blurb about allowing bool

It was allowed before, but make it very explicit it is allowed now.  And
prefer 'bool' to older types that were used for the same purpose -- int and
boolean_t.

Like with the C99 fixed-width types, use common sense when changing old
code.

No igor regressions.

Suggested by:	bde <20151205031713.T3286@besplex.bde.org>
Reviewed by:	glebius, davide, bapt (earlier versions)
Reviewed by:	imp
Feedback from:	julian
Sponsored by:	EMC / Isilon Storage Division
Differential Revision:	https://reviews.freebsd.org/D4384

291860 by imp:
Stupid last minute changes: Add missing } and fi

Pointed out by: Howard Su

291859 by kevlo:
Remove a duplicate definition.

291858 by avos:
urtwn: fix some regressions after r290630

- Restore R92C_TXDW4_HWSEQ_EN bit - it is used by non-8188EU chips.
- Fix DRVRATE bit usage.

Tested with:
 - RTL8188EU, STA mode.
 - RTL8188CUS, STA mode.

Reviewed by:	kevlo
Approved by:	adrian (mentor)
Differential Revision:	https://reviews.freebsd.org/D4352

291857 by jilles:
sh: Link tests/parameters/positional8.0 to the build.

This was forgotten in r291025.

291856 by np:
Fix RSS build.

Reported by:	arybchik@

291855 by andrew:
Allow the artificial profile frames to be adjusted as needed by the user.
While here update for armv6 to a tested value.

Submitted by:	Howard Su <howard0su@gmail.com>
Reviewed by:	stat
Differential Revision:	https://reviews.freebsd.org/D4315

291853 by melifaro:
Remove LLE read lock from IPv4 fast path.

LLE structure is mostly unchanged during its lifecycle.
To be more specific, there are 2 things relevant for fast path
  lookup code:
1) link-level address change. Since r286722, these updates are performed
  under AFDATA WLOCK.
2) Some sort of feedback indicating that this particular entry is used so
  we re-send arp request to perform reachability verification instead of
  expiring entry. The only signal that is needed from fast path is something
  like binary yes/no.

The latter is solved by the following changes:
1) introduce special r_skip_req field which is read lockless by fast path,
  but updated under (new) req_mutex mutex. If this field is non-zero, then
  fast path will acquire lock and set it back to 0.
2) introduce simple state machine: incomplete->reachable<->verify->deleted.
  Before that we implicitely had incomplete->reachable->deleted state machine,
  with V_arpt_keep between "reachable" and "deleted". Verification was performed
  in runtime 5 seconds before V_arpt_keep expire.
  This is changed to "change state to verify 5 seconds before V_arpt_keep,
  set r_skip_req to non-zero value and check it every second". If the value
  is zero - then send arp verification probe.
These changes do not introduce any signifficant control plane overhead:
  typically lle callout timer would fire 1 time more each V_arpt_keep (1200s)
  for used lles and up to arp_maxtries (5) for dead lles.

As a result, all packets towards "reachable" lle are handled by fast path without
acquiring lle read lock.

Additional "req_mutex" is needed because callout / arpresolve_slow() or eventhandler
  might keep LLE lock for signifficant amount of time, which might not be feasible
  for fast path locking (e.g. having rmlock as ether AFDATA or lltable own lock).

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

291852 by andrew:
Move the check to see if we are tracing a function with the DTrace Function
Boundary Trace to assembly to reduce the overhead of these checks.

Submitted by:	Howard Su <howard0su@gmail.com>
Relnotes:	Yes
Differential Revision:	https://reviews.freebsd.org/D4266

291851 by kib:
It seems that at least some KVM versions advertise support for EIO
suppression but the version of the IOAPIC reported is 0x11 and neither
IOAPIC EOIR nor the Linux trick of temporal reprogramming of the pin
to edge-trigger mode to issue EOI work.

Disable eoi suppression if KVM is detected.  The mode can still be
forced with the tunable.

Reported and tested by:	Roman Mamontov <mr.xanto@gmail.com>
Sponsored by:	The FreeBSD Foundation

291850 by kib:
In the pmap_set_pg() function, which enables the global bit on the
ptes mapping the kernel on CPUs where global TLB entries are
supported, revert to flushing only non-global entries, i.e. to the
pre-r291688 state.  There is no need to flush global TLB entries,
since only global entries created during the previous iterations of
the loop could exist at this moment.

Submitted by:	alc
Differential revision:	https://reviews.freebsd.org/D4368

291849 by arybchik:
sfxge: pick up the new TLV structures

The header is auto-generated from firmware sources.

Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days

291848 by arybchik:
sfxge: cleanup: remove set but not used trailer variable

Required to build with -Werror=unused-but-set-variable.

Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days

291847 by arybchik:
sfxge: cleanup: remove set but not used variable with parse error indication

Required to build with -Werror=unused-but-set-variable.
Keep it under #if 0 as a reminder for parse error processing.

Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days

291846 by arybchik:
sfxge: cleanup: remove set but not used saved_spec variable

Required to build with -Werror=unused-but-set-variable.

Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days

291845 by arybchik:
sfxge: cleanup: remove SFL9122 "Huntington" PCI IDs

The SFL9122 "Huntington" controller was never built.

Submitted by:   Mark Spender <mspender at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days

291843 by arybchik:
sfxge: support for MCDI logging implemented

Submitted by:   Artem V. Andreev <Artem.Andreev at oktetlabs.ru>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
Differential Revision: https://reviews.freebsd.org/D4355

291842 by imp:
New config files for embedded boards.
Build with ../nanobsd.sh -c rpi.cfg, for example.
This can be done as a normal user.

This is a work in progress. It relies on the new nopriv
build stuff committed to nanobsd, but isn't complete yet.
Currently, one must copy files into the DOS partition
in the image. Also, ownership isn't preserved because
this doesn't use the new mtree-dedup.awk yet, but rather
some crazy mtree stuff. The image building bits will
move up into nanobsd when they are ready.

Also includes very preliminary support for building qemu
images for all platforms that we can for qemu. It is
missing aarch64, and we put the image on s2 instead of
s1 and mkimg can't mark s2 as active, so there's some
issues. Oh, and I didn't do it for arm.

Take a look, kick the tires, expect problems.

291839 by ngie:
Initialize errno to 0 in the nul testcase before testing it

For some odd reason stable/10 requires this, otherwise it always fails
the errno == 0 check on line 196.

Sponsored by: EMC / Isilon Storage Division

291838 by ngie:
Fix -Wformat issues and minor whitespace issues in surrounding areas

MFC after: 1 week
Sponsored by: EMC / Isilon Storage Division

291837 by ngie:
split.ih:
- Create automatically generated include header for split.c

main.c:
- Use function definitions from debug.ih and split.ih instead of externs

Sponsored by: EMC / Isilon Storage Division

291836 by ngie:
Use `==` instead of `=` in the function comment above split(..) so mkh -p
exposes split(..).

MFC after: 1 week
Sponsored by: EMC / Isilon Storage Division

291835 by ngie:
Use ANSI C function prototypes/definitions instead of K&R style ones

MFC after: 1 week
Sponsored by: EMC / Isilon Storage Division

291834 by ngie:
Add missing headers and sort #includes per style(9)

MFC after: 1 week
Sponsored by: EMC / Isilon Storage Division

291833 by ngie:
- Use ANSI C function prototypes/definitions instead of K&R style ones
- Add a missing return type for main(..)

MFC after: 1 week
Sponsored by: EMC / Isilon Storage Division

291832 by ngie:
Fix -Wformat warnings by using the correct format qualifiers

MFC after: 1 week
Sponsored by: EMC / Isilon Storage Division

291831 by imp:
Awk helper script that reads in a mtree METALOG file from installworld
(and soon augmented by nanobsd), performs the actions documented in
the script, and then spits out a new mtree file suitable for feeding
to makefs.

Discussed on: arch@

291830 by imp:
Setting NANO_NOPRIV_BUILD will now add -DNO_ROOT and METALOG=xxxx as
appropriate. First step in supporting a build w/o root. More to
follow as actions by customization scripts are not (yet) recorded in
the metalog, and duplicate entries in it aren't removed.

291829 by imp:
SRCCONF makes no sense in make.conf. Don't set it there. Rely on it
being in the environment. Also filter out the new SRC_ENV_CONF as
well. If you really need these set, set them in your config file,
not in the build environment used to launch nanobsd.

Pointed out by: bdrewery@

291828 by imp:
Minor cleanup in how we run make:
o Move SRCCONF and __MAKE_CONF into the environment to cope with
  file paths with spaces in them better.
o Move the rest of the variable setting command line args into
  __MAKE_CONF files.
o Trace the commands that we're using to build so they appear at the
  top of the log.
o Be more consistent about quoting paths for cd and similar commands
  to better cope with paths with spaces in them, though some more
  work is likely needed.
o Add some comments about all this.
o Minor formatting tweaks in a couple places

Sponsored by:	Netflix, Inc

291827 by imp:
Remove commented out junk.

291826 by cem:
ioat(4): Add MODULE_VERSION so MODULE_DEPEND works

Suggested by:	jhb
Review in progress:	cc
Sponsored by:	EMC / Isilon Storage Division

291825 by imp:
Since this is an almost identical copy of ALIX_DSK, just include it
and add the bits we need at the end.

291821 by mav:
Make 16Gig chips to use new queue pointer registers.

While 24xx-style ATIO and reply queue registers seems like still working,
request queue doesn't.  So instead of that use registers from PCI BAR(4).

291793 by hselasky:
Fix i386 build WITH_OFED=YES. Remove some redundant KASSERTs.

Suggested by:	kib, ian
Sponsored by:	Mellanox Technologies
MFC after:	1 week

291771 by dim:
Add clang patch corresponding to r291701.

291770 by jilles:
rc.subr: Check for running daemons before a custom start_cmd is executed.

Currently rc scripts implementing their own start_cmd do not enjoy the
benefits of rc.subr's own check for rc_pid.

This leads to around a third of ports with such a start_cmd not to check for
the process at all and two thirds of ports to re-implement this check
(sometimes wrongly).

This patch moves the check for rc_pid to before ${rc_arg}_cmd is executed.

Submitted by:	Dirk Engling
Reviewed by:	feld
MFC after:	1 week
Relnotes:	yes
Differential Revision:	https://reviews.freebsd.org/D4156

291768 by andrew:
Add ahci_generic to the ahci module on arm64.

Pointed out by:	kib

291766 by brueffer:
ARC-1203 is supported since the latest driver update.

291753 by ngie:
Fix scope of bridge_header and bridge_pcix_cap in mthca_reset(..)

They're only used in the __linux__ case

Differential Revision: https://reviews.freebsd.org/D4332
MFC after: 1 week
Reported by: cppcheck
Reviewed by: hselasky
Sponsored by: EMC / Isilon Storage Division

291752 by tuexen:
Fix a bug where a stream reset request wasn't retranmitted when the
peer indicated "In progress".

MFC after:	1 week

291751 by bdrewery:
Fix 'install*' and many other missing targets with DIRDEPS_BUILD.

My changes in r291635 broke 'make install*' for DIRDEPS_BUILD but also
revealed that some other targets were not guaranteed to be created if
there was a SUBDIR defined.  One example is 'installfiles' was never
defined if SUBDIR was not empty.

Sponsored by:	EMC / Isilon Storage Division

291750 by bdrewery:
The .if redirection on .WAIT is no longer needed with bmake.

Sponsored by:	EMC / Isilon Storage Division

291749 by bdrewery:
Fix 'afterinstall' order not being respected after my changes in r291635.

The problem was that 'afterinstall' was not coming after SUBDIRs were
installed which was the expectation at least in sys/modules for kldxref.

Reported by:	np
Pointyhat to:	bdrewery
Sponsored by:	EMC / Isilon Storage Division

291748 by bdrewery:
Rearrange some common logic.

291747 by arybchik:
sfxge: [EF10] support RxQ scattering control

If, for example, a VF is configured to use a 1500 byte MTU, but the port
it is attached to is set to 9000 bytes, overlength frames can be received
by the VF. As Huntington scatters by default, these overlength packets
would be scattered across several descriptors, with all except the last
having the CONT bit set.

To avoid this, disable scatter when creating RXQs if the firmware
supports doing so, which all recent versions do. Then we only get
a single descriptor from an overlength frame. This will have the CONT
bit set to indicate it was truncated, so we can discard it.

Submitted by:   Mark Spender <mspender at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
Differential Revision: https://reviews.freebsd.org/D4354

291746 by arybchik:
sfxge: add additional WRITESIZE value for NVRAM_INFO command

Submitted by:   Paul Fox <pfox at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
Differential Revision: https://reviews.freebsd.org/D4353

291745 by bdrewery:
Remove disconnected directory RETEST.

291744 by bdrewery:
Calculate MPATH for sys/modules to save 92% time in a basic 'obj' tree-walk.

Sponsored by:	EMC / Isilon Storage Division

291743 by mckusick:
We need to zero out the clustering variables in a freed vnode structure.
For completeness add a VNASSERT that there are no threads waiting on a
range lock (this was previously checked on every vnode free).

Reported by; Rick Macklem
Fix from:    Mateusz Guzik
PR:          204949

291742 by ken:
Fix a style issue in g_disk_limit().

Noticed by:	bdrewery
MFC after:	1 week

291741 by ken:
Fix g_disk_vlist_limit() to work properly with deletes.

Add a new bp argument to g_disk_maxsegs(), and add a new function,
g_disk_maxsize() tha will properly determine the maximum I/O size for a
delete or non-delete bio.

Submitted by:	will
MFC after:	1 week
Sponsored by:	Spectra Logic

291740 by bdrewery:
Move obscure lib/ installation of /usr/lib/include symlink to include/.

This avoids the need for an afterinstall: hook and a check for LIBRARIES_ONLY.
It also now respects INCLUDEDIR.

This came in r249484.

Sponsored by:	EMC / Isilon Storage Division

291739 by bdrewery:
Add assertion for when LIBADD should be used rather than LDADD/DPADD.

Sponsored by:	EMC / Isilon Storage Division

291738 by bdrewery:
Fix LDADD/DPADD that should be LIBADD.

Sponsored by:	EMC / Isilon Storage Division

291737 by bdrewery:
Rework unknown LIBADD assertion to be more clear and to not suggest adding
DPADD/LDADD_<foo> variables that are a special case.

Sponsored by:	EMC / Isilon Storage Division

291736 by bdrewery:
Support all of the CDDL/ZFS libraries for LIBADD.

Sponsored by:	EMC / Isilon Storage Division

291735 by bdrewery:
For INTERNALLIB always add in the corresponding _DP_ and use LIBADD in
the real build file.

This lessens the need to define DPADD_<lib> and LDADD_<lib> to just very
special cases.

Sponsored by:	EMC / Isilon Storage Division

291734 by bdrewery:
Replace ln -s calls with INSTALL_SYMLINK

Sponsored by:	EMC / Isilon Storage Division

291733 by bdrewery:
Don't create a Makefile.depend in share/mk.

This would cause it to be included everywhere in the build since it is
the MAKESYSPATH.  This leads to including dirdeps.mk more times than
desired.

Sponsored by:	EMC / Isilon Storage Division

291732 by bdrewery:
DIRDEPS_BUILD: Install new Makefile.depend files atomically.

Sponsored by:	EMC / Isilon Storage Division

291731 by bdrewery:
DIRDEPS_BUILD: For the bootstrapped LIBADD from DPADD, resolve paths to RELDIR.

This allows the LIBDEPS/DPADD for the clang build to not have
../../../lib/clang/* in DIRDEPS.

Sponsored by:	EMC / Isilon Storage Division

291730 by mav:
Update isp_put_icb_2400() for new structure fields.

291729 by bdrewery:
Simplify the LIBRARIES_ONLY hacks so that install: is not needed here.

This uses the same pattern that I applied to the other cases of this in
the csu directories.

Sponsored by:	EMC / Isilon Storage Division

291728 by benno:
Tweak some unused field defines to have the correct number of zeroes.

Reviewed by:		jhb
Sponsored by:		EMC / Isilon Storage Division
Differential Revision:	https://reviews.freebsd.org/D4365

291727 by mav:
Enable interrupt handshake for 16Gig chips.

We don't support MSI-X so far, so it is always required.

291726 by bdrewery:
rescue/rescue does not yet build in meta mode.

291725 by bdrewery:
Revert r288966 as it is redundant and not right.

bsd.prog.mk and bsd.lib.mk already make OBJS depend on headers when there is
not .OBJDIR/.depend file, which is still true for the initial meta mode builds.
If there was something to benefit the meta mode build here then it should be
extended to the non-meta mode build as well.

Some of the problems here were just DPSRCS being hooked up wrongly, fixed in
r291330.

The logic itself is flawed as 'buildfiles' is in a different part of the
dependency tree than the objects and headers are, so the objects will still be
built independent from 'buildfiles'.  'buildfiles' is not ordered in the build
before objects.

Sponsored by:	EMC / Isilon Storage Division

291724 by ken:
Fix typos in the camdd(8) usage() function output caused by an error in
my diff filter script.

Sponsored by:	Spectra Logic
MFC after:	1 week

291723 by nwhitehorn:
Follow-on to r291666: use -ffreestanding instead of -fno-builtin.

Requested by:	kib

291720 by bdrewery:
Convert to LIBADD

Sponsored by:	EMC / Isilon Storage Division

291719 by jkim:
Merge OpenSSL 1.0.2e.

291718 by bdrewery:
Use proper LIBADD.

Sponsored by:	EMC / Isilon Storage Division

291717 by bdrewery:
DIRDEPS_BUILD: Connect usr.sbin/camdd

Sponsored by:	EMC / Isilon Storage Division

291716 by ken:
Add asynchronous command support to the pass(4) driver, and the new
camdd(8) utility.

CCBs may be queued to the driver via the new CAMIOQUEUE ioctl, and
completed CCBs may be retrieved via the CAMIOGET ioctl.  User
processes can use poll(2) or kevent(2) to get notification when
I/O has completed.

While the existing CAMIOCOMMAND blocking ioctl interface only
supports user virtual data pointers in a CCB (generally only
one per CCB), the new CAMIOQUEUE ioctl supports user virtual and
physical address pointers, as well as user virtual and physical
scatter/gather lists.  This allows user applications to have more
flexibility in their data handling operations.

Kernel memory for data transferred via the queued interface is
allocated from the zone allocator in MAXPHYS sized chunks, and user
data is copied in and out.  This is likely faster than the
vmapbuf()/vunmapbuf() method used by the CAMIOCOMMAND ioctl in
configurations with many processors (there are more TLB shootdowns
caused by the mapping/unmapping operation) but may not be as fast
as running with unmapped I/O.

The new memory handling model for user requests also allows
applications to send CCBs with request sizes that are larger than
MAXPHYS.  The pass(4) driver now limits queued requests to the I/O
size listed by the SIM driver in the maxio field in the Path
Inquiry (XPT_PATH_INQ) CCB.

There are some things things would be good to add:

1. Come up with a way to do unmapped I/O on multiple buffers.
   Currently the unmapped I/O interface operates on a struct bio,
   which includes only one address and length.  It would be nice
   to be able to send an unmapped scatter/gather list down to
   busdma.  This would allow eliminating the copy we currently do
   for data.

2. Add an ioctl to list currently outstanding CCBs in the various
   queues.

3. Add an ioctl to cancel a request, or use the XPT_ABORT CCB to do
   that.

4. Test physical address support.  Virtual pointers and scatter
   gather lists have been tested, but I have not yet tested
   physical addresses or scatter/gather lists.

5. Investigate multiple queue support.  At the moment there is one
   queue of commands per pass(4) device.  If multiple processes
   open the device, they will submit I/O into the same queue and
   get events for the same completions.  This is probably the right
   model for most applications, but it is something that could be
   changed later on.

Also, add a new utility, camdd(8) that uses the asynchronous pass(4)
driver interface.

This utility is intended to be a basic data transfer/copy utility,
a simple benchmark utility, and an example of how to use the
asynchronous pass(4) interface.

It can copy data to and from pass(4) devices using any target queue
depth, starting offset and blocksize for the input and ouptut devices.
It currently only supports SCSI devices, but could be easily extended
to support ATA devices.

It can also copy data to and from regular files, block devices, tape
devices, pipes, stdin, and stdout.  It does not support queueing
multiple commands to any of those targets, since it uses the standard
read(2)/write(2)/writev(2)/readv(2) system calls.

The I/O is done by two threads, one for the reader and one for the
writer.  The reader thread sends completed read requests to the
writer thread in strictly sequential order, even if they complete
out of order.  That could be modified later on for random I/O patterns
or slightly out of order I/O.

camdd(8) uses kqueue(2)/kevent(2) to get I/O completion events from
the pass(4) driver and also to send request notifications internally.

For pass(4) devcies, camdd(8) uses a single buffer (CAM_DATA_VADDR)
per CAM CCB on the reading side, and a scatter/gather list
(CAM_DATA_SG) on the writing side.  In addition to testing both
interfaces, this makes any potential reblocking of I/O easier.  No
data is copied between the reader and the writer, but rather the
reader's buffers are split into multiple I/O requests or combined
into a single I/O request depending on the input and output blocksize.

For the file I/O path, camdd(8) also uses a single buffer (read(2),
write(2), pread(2) or pwrite(2)) on reads, and a scatter/gather list
(readv(2), writev(2), preadv(2), pwritev(2)) on writes.

Things that would be nice to do for camdd(8) eventually:

1.  Add support for I/O pattern generation.  Patterns like all
    zeros, all ones, LBA-based patterns, random patterns, etc. Right
    Now you can always use /dev/zero, /dev/random, etc.

2.  Add support for a "sink" mode, so we do only reads with no
    writes.  Right now, you can use /dev/null.

3.  Add support for automatic queue depth probing, so that we can
    figure out the right queue depth on the input and output side
    for maximum throughput.  At the moment it defaults to 6.

4.  Add support for SATA device passthrough I/O.

5.  Add support for random LBAs and/or lengths on the input and
    output sides.

6.  Track average per-I/O latency and busy time.  The busy time
    and latency could also feed in to the automatic queue depth
    determination.

sys/cam/scsi/scsi_pass.h:
	Define two new ioctls, CAMIOQUEUE and CAMIOGET, that queue
	and fetch asynchronous CAM CCBs respectively.

	Although these ioctls do not have a declared argument, they
	both take a union ccb pointer.  If we declare a size here,
	the ioctl code in sys/kern/sys_generic.c will malloc and free
	a buffer for either the CCB or the CCB pointer (depending on
	how it is declared).  Since we have to keep a copy of the
	CCB (which is fairly large) anyway, having the ioctl malloc
	and free a CCB for each call is wasteful.

sys/cam/scsi/scsi_pass.c:
	Add asynchronous CCB support.

	Add two new ioctls, CAMIOQUEUE and CAMIOGET.

	CAMIOQUEUE adds a CCB to the incoming queue.  The CCB is
	executed immediately (and moved to the active queue) if it
	is an immediate CCB, but otherwise it will be executed
	in passstart() when a CCB is available from the transport layer.

	When CCBs are completed (because they are immediate or
	passdone() if they are queued), they are put on the done
	queue.

	If we get the final close on the device before all pending
	I/O is complete, all active I/O is moved to the abandoned
	queue and we increment the peripheral reference count so
	that the peripheral driver instance doesn't go away before
	all pending I/O is done.

	The new passcreatezone() function is called on the first
	call to the CAMIOQUEUE ioctl on a given device to allocate
	the UMA zones for I/O requests and S/G list buffers.  This
	may be good to move off to a taskqueue at some point.
	The new passmemsetup() function allocates memory and
	scatter/gather lists to hold the user's data, and copies
	in any data that needs to be written.  For virtual pointers
	(CAM_DATA_VADDR), the kernel buffer is malloced from the
	new pass(4) driver malloc bucket.  For virtual
	scatter/gather lists (CAM_DATA_SG), buffers are allocated
	from a new per-pass(9) UMA zone in MAXPHYS-sized chunks.
	Physical pointers are passed in unchanged.  We have support
	for up to 16 scatter/gather segments (for the user and
	kernel S/G lists) in the default struct pass_io_req, so
	requests with longer S/G lists require an extra kernel malloc.

	The new passcopysglist() function copies a user scatter/gather
	list to a kernel scatter/gather list.  The number of elements
	in each list may be different, but (obviously) the amount of data
	stored has to be identical.

	The new passmemdone() function copies data out for the
	CAM_DATA_VADDR and CAM_DATA_SG cases.

	The new passiocleanup() function restores data pointers in
	user CCBs and frees memory.

	Add new functions to support kqueue(2)/kevent(2):

	passreadfilt() tells kevent whether or not the done
	queue is empty.

	passkqfilter() adds a knote to our list.

	passreadfiltdetach() removes a knote from our list.

	Add a new function, passpoll(), for poll(2)/select(2)
	to use.

	Add devstat(9) support for the queued CCB path.

sys/cam/ata/ata_da.c:
	Add support for the BIO_VLIST bio type.

sys/cam/cam_ccb.h:
	Add a new enumeration for the xflags field in the CCB header.
	(This doesn't change the CCB header, just adds an enumeration to
	use.)

sys/cam/cam_xpt.c:
	Add a new function, xpt_setup_ccb_flags(), that allows specifying
	CCB flags.

sys/cam/cam_xpt.h:
	Add a prototype for xpt_setup_ccb_flags().

sys/cam/scsi/scsi_da.c:
	Add support for BIO_VLIST.

sys/dev/md/md.c:
	Add BIO_VLIST support to md(4).

sys/geom/geom_disk.c:
	Add BIO_VLIST support to the GEOM disk class.  Re-factor the I/O size
	limiting code in g_disk_start() a bit.

sys/kern/subr_bus_dma.c:
	Change _bus_dmamap_load_vlist() to take a starting offset and
	length.

	Add a new function, _bus_dmamap_load_pages(), that will load a list
	of physical pages starting at an offset.

	Update _bus_dmamap_load_bio() to allow loading BIO_VLIST bios.
	Allow unmapped I/O to start at an offset.

sys/kern/subr_uio.c:
	Add two new functions, physcopyin_vlist() and physcopyout_vlist().

sys/pc98/include/bus.h:
	Guard kernel-only parts of the pc98 machine/bus.h header with
	#ifdef _KERNEL.

	This allows userland programs to include <machine/bus.h> to get the
	definition of bus_addr_t and bus_size_t.

sys/sys/bio.h:
	Add a new bio flag, BIO_VLIST.

sys/sys/uio.h:
	Add prototypes for physcopyin_vlist() and physcopyout_vlist().

share/man/man4/pass.4:
	Document the CAMIOQUEUE and CAMIOGET ioctls.

usr.sbin/Makefile:
	Add camdd.

usr.sbin/camdd/Makefile:
	Add a makefile for camdd(8).

usr.sbin/camdd/camdd.8:
	Man page for camdd(8).

usr.sbin/camdd/camdd.c:
	The new camdd(8) utility.

Sponsored by:	Spectra Logic
MFC after:	1 week

291706 by cem:
if_ntb: Don't roundup MW size to full BAR size unnecessarily

Note that the MW allocation still must be BAR *aligned*.  So, this only
loosens the constraints on MW allocation slightly.  BAR-aligned does not
play well with large (GB+) BAR sizes.

Going forward, if anyone cares about if_ntb on very large BARs, I
suggest they add functionality to allocate a smaller window than the BAR
size, and set the BAR range to cover a window much larger than the
allocated window.  This will require negotiating a window offset and
limit for protocol traffic.  None of this is implemented in this
revision.

Sponsored by:	EMC / Isilon Storage Division

291705 by cem:
if_ntb: Log error *before* zeroing relevant variables

Sponsored by:	EMC / Isilon Storage Division

291704 by cem:
Pull vm_object_scan_all_shadowed out of vm_object_backing_scan

These two functions were largely unrelated, they just used the same same
loop logic to walk through a backing object's memq.  Pull out the
all_shadowed test as its own function and eliminate
OBSC_TEST_ALL_SHADOWED.  Rename vm_object_backing_scan to
vm_object_collapse_scan.

No functional change.

Sponsored by:	EMC / Isilon Storage Division
Differential Revision:	https://reviews.freebsd.org/D4335

291703 by hselasky:
Regenerate usb.conf .

MFC after:	1 week

291702 by nwhitehorn:
Bump MAXCPU. We already run on hardware with 32 threads and the same hardware
is available commercially with up to 96 threads per socket.

MFC after:	3 weeks



The end of the build log:

[...truncated 155023 lines...]
--- depend_subdir_accf_data ---
--- .depend ---
rm -f .depend
--- depend_subdir_accf_dns ---
--- machine ---
--- depend_subdir_accf_data ---
CC='cc -B/usr/local/aarch64-freebsd/bin/' mkdep -f .depend -a   -nostdinc -D_KERNEL -DKLD_MODULE -DHAVE_KERNEL_OPTION_HEADERS -I. -I/usr/src/sys -I/usr/obj/arm64.aarch64/usr/src/sys/GENERIC -D__printf__=__freebsd_kprintf__ -std=iso9899:1999   /usr/src/sys/modules/accf_data/../../netinet/accf_data.c
--- depend_subdir_accf_dns ---
machine -> /usr/src/sys/arm64/include
--- depend_subdir_accf_http ---
--- machine ---
--- depend_subdir_accf_dns ---
--- .depend ---
rm -f .depend
CC='cc -B/usr/local/aarch64-freebsd/bin/' mkdep -f .depend -a   -nostdinc -D_KERNEL -DKLD_MODULE -DHAVE_KERNEL_OPTION_HEADERS -I. -I/usr/src/sys -I/usr/obj/arm64.aarch64/usr/src/sys/GENERIC -D__printf__=__freebsd_kprintf__ -std=iso9899:1999   /usr/src/sys/modules/accf_dns/../../netinet/accf_dns.c
--- depend_subdir_accf_http ---
machine -> /usr/src/sys/arm64/include
--- .depend ---
rm -f .depend
CC='cc -B/usr/local/aarch64-freebsd/bin/' mkdep -f .depend -a   -nostdinc -D_KERNEL -DKLD_MODULE -DHAVE_KERNEL_OPTION_HEADERS -I. -I/usr/src/sys -I/usr/obj/arm64.aarch64/usr/src/sys/GENERIC -D__printf__=__freebsd_kprintf__ -std=iso9899:1999   /usr/src/sys/modules/accf_http/../../netinet/accf_http.c
--- depend_subdir_acl_nfs4 ---
--- machine ---
machine -> /usr/src/sys/arm64/include
--- vnode_if_newproto.h ---
awk -f /usr/src/sys/tools/vnode_if.awk /usr/src/sys/kern/vnode_if.src -p
--- vnode_if_typedef.h ---
awk -f /usr/src/sys/tools/vnode_if.awk /usr/src/sys/kern/vnode_if.src -q
--- pccarddevs.h ---
awk -f /usr/src/sys/tools/pccarddevs2h.awk /usr/src/sys/dev/pccard/pccarddevs
--- modules-depend ---
--- vnode_if.h ---
--- depend_subdir_acl_posix1e ---
--- depend_subdir_acl_nfs4 ---
awk -f /usr/src/sys/tools/vnode_if.awk /usr/src/sys/kern/vnode_if.src -h
--- depend_subdir_acl_posix1e ---
===> acl_posix1e (depend)
--- usbdevs.h ---
awk -f /usr/src/sys/tools/usbdevs2h.awk /usr/src/sys/dev/usb/usbdevs -h
--- modules-depend ---
--- machine ---
machine -> /usr/src/sys/arm64/include
--- vnode_if_newproto.h ---
awk -f /usr/src/sys/tools/vnode_if.awk /usr/src/sys/kern/vnode_if.src -p
--- depend_subdir_acl_nfs4 ---
--- .depend ---
rm -f .depend
CC='cc -B/usr/local/aarch64-freebsd/bin/' mkdep -f .depend -a   -nostdinc -D_KERNEL -DKLD_MODULE -DHAVE_KERNEL_OPTION_HEADERS -I. -I/usr/src/sys -I/usr/obj/arm64.aarch64/usr/src/sys/GENERIC -D__printf__=__freebsd_kprintf__ -std=iso9899:1999   /usr/src/sys/modules/acl_nfs4/../../kern/subr_acl_nfs4.c
--- depend_subdir_acl_posix1e ---
--- vnode_if_typedef.h ---
--- depend_subdir_ae ---
--- depend_subdir_acl_posix1e ---
awk -f /usr/src/sys/tools/vnode_if.awk /usr/src/sys/kern/vnode_if.src -q
--- depend_subdir_ae ---
===> ae (depend)
--- depend_subdir_acl_posix1e ---
--- vnode_if.h ---
awk -f /usr/src/sys/tools/vnode_if.awk /usr/src/sys/kern/vnode_if.src -h
--- depend_subdir_ae ---
--- machine ---
machine -> /usr/src/sys/arm64/include
--- device_if.h ---
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/device_if.m -h
--- bus_if.h ---
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/bus_if.m -h
--- depend_subdir_acl_posix1e ---
--- .depend ---
rm -f .depend
CC='cc -B/usr/local/aarch64-freebsd/bin/' mkdep -f .depend -a   -nostdinc -D_KERNEL -DKLD_MODULE -DHAVE_KERNEL_OPTION_HEADERS -I. -I/usr/src/sys -I/usr/obj/arm64.aarch64/usr/src/sys/GENERIC -D__printf__=__freebsd_kprintf__ -std=iso9899:1999   /usr/src/sys/modules/acl_posix1e/../../kern/subr_acl_posix1e.c
--- depend_subdir_ae ---
--- pci_if.h ---
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/dev/pci/pci_if.m -h
--- usbdevs_data.h ---
awk -f /usr/src/sys/tools/usbdevs2h.awk /usr/src/sys/dev/usb/usbdevs -d
--- modules-depend ---
--- miibus_if.h ---
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/dev/mii/miibus_if.m -h
--- .depend ---
rm -f .depend
CC='cc -B/usr/local/aarch64-freebsd/bin/' mkdep -f .depend -a   -nostdinc -D_KERNEL -DKLD_MODULE -DHAVE_KERNEL_OPTION_HEADERS -I. -I/usr/src/sys -I/usr/obj/arm64.aarch64/usr/src/sys/GENERIC -D__printf__=__freebsd_kprintf__ -std=iso9899:1999   /usr/src/sys/modules/ae/../../dev/ae/if_ae.c
--- depend_subdir_age ---
===> age (depend)
--- machine ---
machine -> /usr/src/sys/arm64/include
--- device_if.h ---
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/device_if.m -h
--- bus_if.h ---
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/bus_if.m -h
--- pci_if.h ---
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/dev/pci/pci_if.m -h
--- miibus_if.h ---
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/dev/mii/miibus_if.m -h
--- .depend ---
rm -f .depend
CC='cc -B/usr/local/aarch64-freebsd/bin/' mkdep -f .depend -a   -nostdinc -D_KERNEL -DKLD_MODULE -DHAVE_KERNEL_OPTION_HEADERS -I. -I/usr/src/sys -I/usr/obj/arm64.aarch64/usr/src/sys/GENERIC -D__printf__=__freebsd_kprintf__ -std=iso9899:1999   /usr/src/sys/modules/age/../../dev/age/if_age.c
--- depend_subdir_aha ---
===> aha (depend)
--- machine ---
machine -> /usr/src/sys/arm64/include
--- opt_cam.h ---
ln -sf /usr/obj/arm64.aarch64/usr/src/sys/GENERIC/opt_cam.h opt_cam.h
--- device_if.h ---
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/device_if.m -h
--- bus_if.h ---
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/bus_if.m -h
--- isa_if.h ---
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/isa/isa_if.m -h
--- .depend ---
rm -f .depend
CC='cc -B/usr/local/aarch64-freebsd/bin/' mkdep -f .depend -a   -nostdinc -D_KERNEL -DKLD_MODULE -DHAVE_KERNEL_OPTION_HEADERS -I. -I/usr/src/sys -I/usr/obj/arm64.aarch64/usr/src/sys/GENERIC -D__printf__=__freebsd_kprintf__ -std=iso9899:1999   /usr/src/sys/modules/aha/../../dev/aha/aha.c /usr/src/sys/modules/aha/../../dev/aha/aha_isa.c
--- depend_subdir_ahci ---
===> ahci (depend)
--- machine ---
machine -> /usr/src/sys/arm64/include
--- opt_cam.h ---
ln -sf /usr/obj/arm64.aarch64/usr/src/sys/GENERIC/opt_cam.h opt_cam.h
--- device_if.h ---
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/device_if.m -h
--- bus_if.h ---
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/bus_if.m -h
--- pci_if.h ---
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/dev/pci/pci_if.m -h
--- .depend ---
rm -f .depend
CC='cc -B/usr/local/aarch64-freebsd/bin/' mkdep -f .depend -a   -nostdinc -D_KERNEL -DKLD_MODULE -DHAVE_KERNEL_OPTION_HEADERS -I. -I/usr/src/sys -I/usr/obj/arm64.aarch64/usr/src/sys/GENERIC -D__printf__=__freebsd_kprintf__ -std=iso9899:1999   /usr/src/sys/modules/ahci/../../dev/ahci/ahci.c /usr/src/sys/modules/ahci/../../dev/ahci/ahci_pci.c /usr/src/sys/modules/ahci/../../dev/ahci/ahciem.c /usr/src/sys/modules/ahci/../../dev/ahci/ahci_generic.c
--- depend_subdir_aic7xxx ---
===> aic7xxx (depend)
--- depend_subdir_ahc ---
===> aic7xxx/ahc (depend)
--- machine ---
machine -> /usr/src/sys/arm64/include
--- depend_subdir_ahc_isa ---
===> aic7xxx/ahc/ahc_isa (depend)
--- machine ---
machine -> /usr/src/sys/arm64/include
--- opt_scsi.h ---
ln -sf /usr/obj/arm64.aarch64/usr/src/sys/GENERIC/opt_scsi.h opt_scsi.h
--- opt_cam.h ---
ln -sf /usr/obj/arm64.aarch64/usr/src/sys/GENERIC/opt_cam.h opt_cam.h
--- opt_aic7xxx.h ---
ln -sf /usr/obj/arm64.aarch64/usr/src/sys/GENERIC/opt_aic7xxx.h opt_aic7xxx.h
--- device_if.h ---
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/device_if.m -h
--- bus_if.h ---
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/bus_if.m -h
--- pci_if.h ---
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/dev/pci/pci_if.m -h
--- isa_if.h ---
--- depend_subdir_ahc_pci ---
--- depend_subdir_ahc_isa ---
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/isa/isa_if.m -h
--- depend_subdir_ahc_pci ---
===> aic7xxx/ahc/ahc_pci (depend)
--- depend_subdir_ahc_isa ---
--- .depend ---
rm -f .depend
CC='cc -B/usr/local/aarch64-freebsd/bin/' mkdep -f .depend -a   -nostdinc -D_KERNEL -DKLD_MODULE -I/usr/src/sys/modules/aic7xxx/ahc/ahc_isa/../../../../dev/aic7xxx -I.. -DHAVE_KERNEL_OPTION_HEADERS -I. -I/usr/src/sys -I/usr/obj/arm64.aarch64/usr/src/sys/GENERIC -D__printf__=__freebsd_kprintf__ -std=iso9899:1999   /usr/src/sys/modules/aic7xxx/ahc/ahc_isa/../../../../dev/aic7xxx/ahc_isa.c
--- depend_subdir_ahc_pci ---
--- machine ---
machine -> /usr/src/sys/arm64/include
--- opt_scsi.h ---
ln -sf /usr/obj/arm64.aarch64/usr/src/sys/GENERIC/opt_scsi.h opt_scsi.h
--- opt_cam.h ---
ln -sf /usr/obj/arm64.aarch64/usr/src/sys/GENERIC/opt_cam.h opt_cam.h
--- opt_aic7xxx.h ---
ln -sf /usr/obj/arm64.aarch64/usr/src/sys/GENERIC/opt_aic7xxx.h opt_aic7xxx.h
--- device_if.h ---
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/device_if.m -h
--- bus_if.h ---
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/bus_if.m -h
--- depend_subdir_ahci ---
In file included from /usr/src/sys/modules/ahci/../../dev/ahci/ahci_generic.c:47:
/usr/src/sys/dev/ofw/ofw_bus.h:36:10: fatal error: 'ofw_bus_if.h' file not found
#include "ofw_bus_if.h"
         ^
1 error generated.
mkdep: compile failed
*** [.depend] Error code 1

make[4]: stopped in /usr/src/sys/modules/ahci
1 error

make[4]: stopped in /usr/src/sys/modules/ahci
*** [depend_subdir_ahci] Error code 2

make[3]: stopped in /usr/src/sys/modules
--- depend_subdir_aic7xxx ---
A failure has been detected in another branch of the parallel make

make[6]: stopped in /usr/src/sys/modules/aic7xxx/ahc/ahc_pci
*** [depend_subdir_ahc_pci] Error code 2

make[5]: stopped in /usr/src/sys/modules/aic7xxx/ahc
--- depend_subdir_ahc_isa ---
A failure has been detected in another branch of the parallel make

make[6]: stopped in /usr/src/sys/modules/aic7xxx/ahc/ahc_isa
*** [depend_subdir_ahc_isa] Error code 2

make[5]: stopped in /usr/src/sys/modules/aic7xxx/ahc
2 errors

make[5]: stopped in /usr/src/sys/modules/aic7xxx/ahc
*** [depend_subdir_ahc] Error code 2

make[4]: stopped in /usr/src/sys/modules/aic7xxx
1 error

make[4]: stopped in /usr/src/sys/modules/aic7xxx
*** [depend_subdir_aic7xxx] Error code 2

make[3]: stopped in /usr/src/sys/modules
2 errors

make[3]: stopped in /usr/src/sys/modules
*** [modules-depend] Error code 2

make[2]: stopped in /usr/obj/arm64.aarch64/usr/src/sys/GENERIC
1 error

make[2]: stopped in /usr/obj/arm64.aarch64/usr/src/sys/GENERIC
*** [buildkernel] Error code 2

make[1]: stopped in /usr/src
1 error

make[1]: stopped in /usr/src
*** [buildkernel] Error code 2

make: stopped in /usr/src
1 error

make: stopped in /usr/src
Build step 'Execute shell' marked build as failure
[PostBuildScript] - Execution post build scripts.
[FreeBSD_HEAD_arm64] $ /bin/sh -xe /tmp/hudson788315144804630871.sh
+ export 'PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin'
+ export 'jname=FreeBSD_HEAD_arm64'
+ echo 'clean up jail FreeBSD_HEAD_arm64'
clean up jail FreeBSD_HEAD_arm64
+ sudo jail -r FreeBSD_HEAD_arm64
+ sudo ifconfig igb0 inet6 2610:1c1:1:607c::104:1 -alias
+ sudo umount FreeBSD_HEAD_arm64/usr/src
+ sudo umount FreeBSD_HEAD_arm64/dev
+ sudo rm -fr FreeBSD_HEAD_arm64
+ true
+ sudo chflags -R noschg FreeBSD_HEAD_arm64
+ sudo rm -fr FreeBSD_HEAD_arm64
Email was triggered for: Failure - Any
Sending email for trigger: Failure - Any



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?358635345.1.1449600877149.JavaMail.jenkins>