]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/log
FreeBSD/FreeBSD.git
6 years agoUse an accessor function to access ifr_data.
brooks [Fri, 30 Mar 2018 18:50:13 +0000 (18:50 +0000)]
Use an accessor function to access ifr_data.

This fixes 32-bit compat (no ioctl command defintions are required
as struct ifreq is the same size).  This is believed to be sufficent to
fully support ifconfig on 32-bit systems.

Reviewed by: kib
Obtained from: CheriBSD
MFC after: 1 week
Relnotes: yes
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D14900

6 years agoRemove a comment that suggests checking that a non-pointer is non-NULL.
brooks [Fri, 30 Mar 2018 18:26:29 +0000 (18:26 +0000)]
Remove a comment that suggests checking that a non-pointer is non-NULL.

Reviewed by: melifaro, markj, hrs, ume
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D14904

6 years agoocs_fc(4): Fix GCC build (-Wredundant-decls)
cem [Fri, 30 Mar 2018 16:44:54 +0000 (16:44 +0000)]
ocs_fc(4): Fix GCC build (-Wredundant-decls)

These objects are defined earlier in the same file; an extern declaration
after definition is redundant.

Broken in r331766 (introduction of ocs_fc(4)).

Sponsored by: Dell EMC Isilon

6 years agoefinet: Do not return only if ReceiveFilter fails
manu [Fri, 30 Mar 2018 16:37:08 +0000 (16:37 +0000)]
efinet: Do not return only if ReceiveFilter fails

If the network interface or the uefi implementation do not support the
ReceiveFilter interface do not return only and just print a message.
U-Boot doesn't support is and likely never will. Also even if this fails
it doesn't mean that network in EFI isn't supported.

6 years agoBring in the Broadcom/Emulex Fibre Channel driver, ocs_fc(4).
ken [Fri, 30 Mar 2018 15:28:25 +0000 (15:28 +0000)]
Bring in the Broadcom/Emulex Fibre Channel driver, ocs_fc(4).

The ocs_fc(4) driver supports the following hardware:

Emulex 16/8G FC GEN 5 HBAS
LPe15004 FC Host Bus Adapters
LPe160XX FC Host Bus Adapters

Emulex 32/16G FC GEN 6 HBAS
LPe3100X FC Host Bus Adapters
LPe3200X FC Host Bus Adapters

The driver supports target and initiator mode, and also supports FC-Tape.

Note that the driver only currently works on little endian platforms.  It
is only included in the module build for amd64 and i386, and in GENERIC
on amd64 only.

Submitted by: Ram Kishore Vegesna <ram.vegesna@broadcom.com>
Reviewed by: mav
MFC after: 5 days
Relnotes: yes
Sponsored by: Broadcom
Differential Revision: https://reviews.freebsd.org/D11423

6 years agoFix missing n after \ of Eric Turgeon entry
ericbsd [Fri, 30 Mar 2018 14:41:16 +0000 (14:41 +0000)]
Fix missing n after \ of Eric Turgeon entry

Approved by: bapt (mentor)

6 years agoAdding Eric Turgeon (ericbsd) to calendar.freebsd
ericbsd [Fri, 30 Mar 2018 13:37:33 +0000 (13:37 +0000)]
Adding Eric Turgeon (ericbsd) to calendar.freebsd

Approved by: bapt (mentor)

6 years agoAdd Eric Turgeon (ericbsd) in committers-ports.dot with mentor/mentee.
ericbsd [Fri, 30 Mar 2018 11:30:48 +0000 (11:30 +0000)]
Add Eric Turgeon (ericbsd) in committers-ports.dot with mentor/mentee.

Approved by: bapt (mentor)

6 years agoalign i386 cpu_reset() with amd64 version
avg [Fri, 30 Mar 2018 11:25:30 +0000 (11:25 +0000)]
align i386 cpu_reset() with amd64 version

Maybe this code could be moved to x86.

MFC after: 1 week

6 years agoMake vm_map_max/min/pmap KBI stable.
kib [Fri, 30 Mar 2018 10:55:31 +0000 (10:55 +0000)]
Make vm_map_max/min/pmap KBI stable.

There are out of tree consumers of vm_map_min() and vm_map_max(), and
I believe there are consumers of vm_map_pmap(), although the later is
arguably less in the need of KBI-stable interface. For the consumers
benefit, make modules using this KPI not depended on the struct vm_map
layout.

Reviewed by: alc, markj
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D14902

6 years agomakefs: sync fragment and block size with newfs
emaste [Fri, 30 Mar 2018 03:38:08 +0000 (03:38 +0000)]
makefs: sync fragment and block size with newfs

r222319 in newfs raised the default blocksize for UFS/FFS filesystems
from 16K to 32K and the default fragment size from 2K to 4K, with a
rationale that most disks were now running with 4K sectors.

MFC after: 2 weeks
Relnotes: Yes
Sponsored by: The FreeBSD Foundation

6 years agoCorrect comment typo in Hyper-V
emaste [Fri, 30 Mar 2018 02:25:12 +0000 (02:25 +0000)]
Correct comment typo in Hyper-V

PR: 226665
Submitted by: Ryo ONODERA
MFC after: 3 days

6 years agobhnd(4): Use the new BHND_CAP_BP64 capability flag to exclude DMA
landonf [Thu, 29 Mar 2018 19:48:50 +0000 (19:48 +0000)]
bhnd(4): Use the new BHND_CAP_BP64 capability flag to exclude DMA
translations unsupported by the backplane.

6 years agoFix RSS build (broken in r331309).
np [Thu, 29 Mar 2018 19:48:17 +0000 (19:48 +0000)]
Fix RSS build (broken in r331309).

Sponsored by: Chelsio Communications

6 years agobhnd(4): include a subset of the ChipCommon capability flags in bhnd_chipid;
landonf [Thu, 29 Mar 2018 19:44:15 +0000 (19:44 +0000)]
bhnd(4): include a subset of the ChipCommon capability flags in bhnd_chipid;
this provides early access to device capability flags required by bhnd(4)
bus and bhndb(4) bridge drivers.

6 years agoAdd libdl to clibs package
kevans [Thu, 29 Mar 2018 19:43:29 +0000 (19:43 +0000)]
Add libdl to clibs package

libdl is a filter on libc, and pretty lightweight. Add it to the 'clibs'
package with libc, effectively tying them together in a pkgbase world.

Reviewed by: gjb
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D13997

6 years agoIt is March not May.
brooks [Thu, 29 Mar 2018 17:44:55 +0000 (17:44 +0000)]
It is March not May.

Reported by: jkim

6 years ago1. Add additional debug prints.
davidcs [Thu, 29 Mar 2018 17:36:34 +0000 (17:36 +0000)]
1. Add additional debug prints.
2. Break transmit when IFF_DRV_RUNNING is OFF.
3. set desc_count=0 for default case in switch in ql_rcv_isr()
MFC after:5 days

6 years agoHave TD_LOCKS_DEC() assert that td_locks is positive.
markj [Thu, 29 Mar 2018 17:19:59 +0000 (17:19 +0000)]
Have TD_LOCKS_DEC() assert that td_locks is positive.

This makes it easier to catch lock accounting bugs, since the problem
is otherwise only detected upon a return to user mode (or never, for
kernel threads).

Reviewed by: cem
MFC after: 1 week
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D14896

6 years agoGC never enabled support for SIOCGADDRROM and SIOCGCHIPID.
brooks [Thu, 29 Mar 2018 15:58:49 +0000 (15:58 +0000)]
GC never enabled support for SIOCGADDRROM and SIOCGCHIPID.

When de(4) was imported in 1997 the world was not ready for these ioctls.
In over 20 years that hasn't changed so it seems safe to assume their
time will never come.

Reviewed by: imp, jhb
Approved by: CheriBSD
MFC after: 1 week
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D14889

6 years agoFix the background laundering mechanism after r329882.
markj [Thu, 29 Mar 2018 14:27:40 +0000 (14:27 +0000)]
Fix the background laundering mechanism after r329882.

Rather than using the number of inactive queue scans as a metric for
how many clean pages are being freed by the page daemon, have the
page daemon keep a running counter of the number of pages it has freed,
and have the laundry thread use that when computing the background
laundering threshold.

Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D14884

6 years agoPull in r328738 from upstream lld trunk (by Rafael Espindola):
dim [Thu, 29 Mar 2018 13:55:23 +0000 (13:55 +0000)]
Pull in r328738 from upstream lld trunk (by Rafael Espindola):

  Strip @VER suffices from the LTO output.

  This fixes pr36623.

  The problem is that we have to parse versions out of names before LTO
  so that LTO can use that information.

  When we get the LTO produced .o files, we replace the previous symbols
  with the LTO produced ones, but they still have @ in their names.

  We could just trim the name directly, but calling parseSymbolVersion
  to do it is simpler.

This is a follow-up to r331366, since we discovered that lld could
append version strings to symbols twice, when using Link Time
Optimization.

MFC after: 3 months
X-MFC-With: r327952

6 years agocryptocheck: Add Chacha20 cipher to tool
cem [Thu, 29 Mar 2018 04:14:37 +0000 (04:14 +0000)]
cryptocheck: Add Chacha20 cipher to tool

6 years agocryptotest: Add chacha20 cipher
cem [Thu, 29 Mar 2018 04:07:53 +0000 (04:07 +0000)]
cryptotest: Add chacha20 cipher

6 years agoopencrypto: Integrate Chacha20 algorithm into OCF
cem [Thu, 29 Mar 2018 04:02:50 +0000 (04:02 +0000)]
opencrypto: Integrate Chacha20 algorithm into OCF

Mostly this is a thin shim around existing code to integrate with enc_xform
and cryptosoft (+ cryptodev).

Expand the cryptodev buffer used to match that of Chacha20's native block
size as a performance enhancement for chacha20_xform_crypt_multi.

6 years agoImplement several enhancements to NUMA policies.
jeff [Thu, 29 Mar 2018 02:54:50 +0000 (02:54 +0000)]
Implement several enhancements to NUMA policies.

Add a new "interleave" allocation policy which stripes pages across
domains with a stride or width keeping contiguity within a multi-page
region.

Move the kernel to the dedicated numbered cpuset #2 making it possible
to assign kernel threads and memory policy separately from user.  This
also eliminates the need for the complicated interrupt binding code.

Add a sysctl API for viewing and manipulating domainsets.  Refactor some
of the cpuset_t manipulation code using the generic bitset type so that
it can be used for both.  This probably belongs in a dedicated subr file.

Attempt to improve the include situation.

Reviewed by: kib
Discussed with: jhb (cpuset parts)
Tested by: pho (before review feedback)
Sponsored by: Netflix, Dell/EMC Isilon
Differential Revision: https://reviews.freebsd.org/D14839

6 years agotimeout.1: Try to improve clarity
cem [Thu, 29 Mar 2018 02:13:58 +0000 (02:13 +0000)]
timeout.1: Try to improve clarity

Minor rewordings, markup fixes or enhancements, and some typo fixes.  Add a few
sentences clarifying the special zero duration.

PR: 227012
Submitted by: Mateusz Piotrowski (0mp@) (earlier version)

6 years agostand: Add workaround for HP BIOS issues
kevans [Thu, 29 Mar 2018 00:55:11 +0000 (00:55 +0000)]
stand: Add workaround for HP BIOS issues

hrs@ and kuriyama@ have found that on some HP BIOS, a system will fail to
boot immediately after installation with the claim that it can't work out
which disk they are booting from.

They tracked it down to a buffer overrun, and found that it could be
alleviated by doing a dummy read before-hand.

Submitted by: kuriyama
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D14341

6 years agoReformat the enum of syscall argument types.
jhb [Thu, 29 Mar 2018 00:12:50 +0000 (00:12 +0000)]
Reformat the enum of syscall argument types.

List enum values on separate lines to minimize diffs as new types are
added.  Split the enum values up into groups and use some simple sorting
within groups (scalar enums are sorted by size, then base, all other
groups are generally sorted alphabetically).

No functional change.

6 years agoRename ClouduABIFDSFlags to CloudABIFDSFlags.
jhb [Thu, 29 Mar 2018 00:04:07 +0000 (00:04 +0000)]
Rename ClouduABIFDSFlags to CloudABIFDSFlags.

6 years agoRemove infrastructure for token-ring networks.
brooks [Wed, 28 Mar 2018 23:33:26 +0000 (23:33 +0000)]
Remove infrastructure for token-ring networks.

Reviewed by: cem, imp, jhb, jmallett
Relnotes: yes
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D14875

6 years agoMFV r331712:
mav [Wed, 28 Mar 2018 23:17:29 +0000 (23:17 +0000)]
MFV r331712:
9280 Assertion failure while running removal_with_ganging test with 4K devices

illumos/illumos-gate@243952c7eeef020886e3e2e3df99a513df40584a

Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: John Kennedy <john.kennedy@delphix.com>
Approved by: Garrett D'Amore <garrett@damore.org>
Author: Matt Ahrens <Matt.Ahrens@delphix.com>

6 years agoMFV 331710:
mav [Wed, 28 Mar 2018 23:05:48 +0000 (23:05 +0000)]
MFV 331710:
9188 increase size of dbuf cache to reduce indirect block decompression

illumos/illumos-gate@268bbb2a2fa79c36d4695d13a595ba50a7754b76

With compressed ARC (6950) we use up to 25% of our CPU to decompress indirect
blocks, under a workload of random cached reads. To reduce this decompression
cost, we would like to increase the size of the dbuf cache so that more
indirect blocks can be stored uncompressed.

If we are caching entire large files of recordsize=8K, the indirect blocks
use 1/64th as much memory as the data blocks (assuming they have the same
compression ratio). We suggest making the dbuf cache be 1/32nd of all memory,
so that in this scenario we should be able to keep all the indirect blocks
decompressed in the dbuf cache. (We want it to be more than the 1/64th that
the indirect blocks would use because we need to cache other stuff in the
dbuf cache as well.)

In real world workloads, this won't help as dramatically as the example
above, but we think it's still worth it because the risk of decreasing
performance is low. The potential negative performance impact is that we
will be slightly reducing the size of the ARC (by ~3%).

Reviewed by: Dan Kimmel <dan.kimmel@delphix.com>
Reviewed by: Prashanth Sreenivasa <pks@delphix.com>
Reviewed by: Paul Dagnelie <pcd@delphix.com>
Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>
Reviewed by: Allan Jude <allanjude@freebsd.org>
Reviewed by: Igor Kozhukhov <igor@dilos.org>
Approved by: Garrett D'Amore <garrett@damore.org>
Author: George Wilson <george.wilson@delphix.com>

6 years agoMFV r331708:
mav [Wed, 28 Mar 2018 22:50:05 +0000 (22:50 +0000)]
MFV r331708:
9321 arc_loan_compressed_buf() can increment arc_loaned_bytes by the wrong value

illumos/illumos-gate@9be12bd737714550277bd02b0c693db560976990

arc_loan_compressed_buf() increments arc_loaned_bytes by psize unconditionally
In the case of zfs_compressed_arc_enabled=0, when the buf is returned via
arc_return_buf(), if ARC_BUF_COMPRESSED(buf) is false, then arc_loaned_bytes
is decremented by lsize, not psize.

Switch to using arc_buf_size(buf), instead of psize, which will return
psize or lsize, depending on the result of ARC_BUF_COMPRESSED(buf).

Reviewed by: Matt Ahrens <matt@delphix.com>
Reviewed by: George Wilson <george.wilson@delphix.com>
Approved by: Garrett D'Amore <garrett@damore.org>
Author: Allan Jude <allanjude@freebsd.org>

6 years agoMFV r331706:
mav [Wed, 28 Mar 2018 22:29:11 +0000 (22:29 +0000)]
MFV r331706:
9235 rename zpool_rewind_policy_t to zpool_load_policy_t

illumos/illumos-gate@5dafeea3ebd2dd77affc802bcb90f63faf01589f

We want to be able to pass various settings during import/open of a pool,
which are not only related to rewind. Instead of adding a new policy and
duplicate a bunch of code, we should just rename rewind_policy to a more
generic term like load_policy.

For instance, we'd like to set spa->spa_import_flags from the nvlist,
rather from a flags parameter passed to spa_import as in some cases we want
those flags not only for the import case, but also for the open case. One
such flag could be ZFS_IMPORT_MISSING_LOG (as used in zdb) which would
allow zfs to open a pool when logs are missing.

Reviewed by: Matt Ahrens <matt@delphix.com>
Reviewed by: George Wilson <george.wilson@delphix.com>
Approved by: Robert Mustacchi <rm@joyent.com>
Author: Pavel Zakharov <pavel.zakharov@delphix.com>

6 years agoMFV 331704:
mav [Wed, 28 Mar 2018 22:10:06 +0000 (22:10 +0000)]
MFV 331704:
9191 dump vdev tree to zfs_dbgmsg when spa load fails due to missing log devices

illumos/illumos-gate@ccef24b493bcbd146fcd6d8946666cae081470b6

Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Matt Ahrens <matt@delphix.com>
Approved by: Robert Mustacchi <rm@joyent.com>
Author: Pavel Zakharov <pavel.zakharov@delphix.com>

6 years agoMFV 331702:
mav [Wed, 28 Mar 2018 22:07:31 +0000 (22:07 +0000)]
MFV 331702:
9187 racing condition between vdev label and spa_last_synced_txg in vdev_validate

illumos/illumos-gate@d1de72cfa29ab77ff80e2bb0e668a6afa5bccaf0

ztest failed with uncorrectable IO error despite having the fix for #7163.
Both sides of the mirror have CANT_OPEN_BAD_LABEL, which also distinguishes
it from that issue.

Definitely seems like a racing condition between the vdev_validate and spa_sync:
1. Thread A (spa_sync): vdev label is updated to latest txg
2. Thread B (vdev_validate): vdev label's txg is compared to spa_last_synced_txg and is ahead.
3. Thread A (spa_sync): spa_last_synced_txg is updated to latest txg.

Solution: do not check txg in vdev_validate unless config lock is held.

Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Matt Ahrens <matthew.ahrens@delphix.com>
Approved by: Robert Mustacchi <rm@joyent.com>
Author: Pavel Zakharov <pavel.zakharov@delphix.com>

6 years agoMFV r331695, 331700: 9166 zfs storage pool checkpoint
mav [Wed, 28 Mar 2018 22:01:27 +0000 (22:01 +0000)]
MFV r331695, 331700: 9166 zfs storage pool checkpoint

illumos/illumos-gate@8671400134a11c848244896ca51a7db4d0f69da4

The idea of Storage Pool Checkpoint (aka zpool checkpoint) deals with
exactly that.  It can be thought of as a “pool-wide snapshot” (or a
variation of extreme rewind that doesn’t corrupt your data).  It remembers
the entire state of the pool at the point that it was taken and the user
can revert back to it later or discard it.  Its generic use case is an
administrator that is about to perform a set of destructive actions to ZFS
as part of a critical procedure.  She takes a checkpoint of the pool before
performing the actions, then rewinds back to it if one of them fails or puts
the pool into an unexpected state.  Otherwise, she discards it.  With the
assumption that no one else is making modifications to ZFS, she basically
wraps all these actions into a “high-level transaction”.

Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: John Kennedy <john.kennedy@delphix.com>
Reviewed by: Dan Kimmel <dan.kimmel@delphix.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
Author: Serapheim Dimitropoulos <serapheim.dimitro@delphix.com>

6 years agoAdd files missed from r331695.
mav [Wed, 28 Mar 2018 21:00:34 +0000 (21:00 +0000)]
Add files missed from r331695.

6 years agoPartial MFV r329753:
mav [Wed, 28 Mar 2018 20:41:15 +0000 (20:41 +0000)]
Partial MFV r329753:
8809 libzpool should leverage work done in libfakekernel

illumos/illumos-gate@f06dce2c1f0f3af78581e7574f65bfba843ddb6e

Reviewed by: Sebastien Roy <sebastien.roy@delphix.com>
Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Gordon Ross <gordon.w.ross@gmail.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
Author: Andrew Stormont <astormont@racktopsystems.com>

We do not have libfakekernel, but need to reduce code divergence.

6 years agoRestore r331606 with a bugfix to setup cpuset_domain[] earlier on all
jeff [Wed, 28 Mar 2018 18:47:35 +0000 (18:47 +0000)]
Restore r331606 with a bugfix to setup cpuset_domain[] earlier on all
platforms.  Original commit message as follows:

Only use CPUs in the domain the device is attached to for default
assignment.  Device drivers are able to override the default assignment
if they bind directly.  There are severe performance penalties for
handling interrupts on remote CPUs and this should only be done in
very controlled circumstances.

Reviewed by:    jhb, kib
Tested by:      pho
Sponsored by:   Netflix, Dell/EMC Isilon
Differential Revision:  https://reviews.freebsd.org/D14838

6 years agoAdd an example for building SD card images for the RPI-B and
gjb [Wed, 28 Mar 2018 18:43:06 +0000 (18:43 +0000)]
Add an example for building SD card images for the RPI-B and
RPI3.

MFC after: 3 days
Suggested by: Arshan Khanifar
Reviewed by: Arshan Khanifar <arshan@freebsdfoundation.org>
Sponsored by: The FreeBSD Foundation

6 years agoUpdate the Release Engineering article URL to the modern version.
gjb [Wed, 28 Mar 2018 18:28:27 +0000 (18:28 +0000)]
Update the Release Engineering article URL to the modern version.

MFC after: 3 days
Sponsored by: The FreeBSD Foundation

6 years ago9166 zfs storage pool checkpoint
mav [Wed, 28 Mar 2018 18:12:06 +0000 (18:12 +0000)]
9166 zfs storage pool checkpoint

illumos/illumos-gate@8671400134a11c848244896ca51a7db4d0f69da4

The idea of Storage Pool Checkpoint (aka zpool checkpoint) deals with
exactly that.  It can be thought of as a “pool-wide snapshot” (or a
variation of extreme rewind that doesn’t corrupt your data).  It remembers
the entire state of the pool at the point that it was taken and the user
can revert back to it later or discard it.  Its generic use case is an
administrator that is about to perform a set of destructive actions to ZFS
as part of a critical procedure.  She takes a checkpoint of the pool before
performing the actions, then rewinds back to it if one of them fails or puts
the pool into an unexpected state.  Otherwise, she discards it.  With the
assumption that no one else is making modifications to ZFS, she basically
wraps all these actions into a “high-level transaction”.

Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: John Kennedy <john.kennedy@delphix.com>
Reviewed by: Dan Kimmel <dan.kimmel@delphix.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
Author: Serapheim Dimitropoulos <serapheim.dimitro@delphix.com>

6 years agoSwap two instances of regular macros with function macros in the LinuxKPI,
hselasky [Wed, 28 Mar 2018 17:54:34 +0000 (17:54 +0000)]
Swap two instances of regular macros with function macros in the LinuxKPI,
to narrow down the substitution scope.

MFC after: 1 week
Sponsored by: Mellanox Technologies

6 years agoFix for regression issue in USB keyboard driver after r304735.
hselasky [Wed, 28 Mar 2018 17:39:23 +0000 (17:39 +0000)]
Fix for regression issue in USB keyboard driver after r304735.

A series of zero delay callouts can happen causing high CPU usage of the
timer subsystem when trying to repeat keys, because the time of the
absolute timeout is not moving forward. The condition clears when all
keys are released.

Reported by: Johannes Lundberg <johalun0@gmail.com>
Discussed with: bde@
PR: 226968
MFC after: 1 week
Sponsored by: Mellanox Technologies

6 years agoExpand remaining instances of 'make kernel' to buildkernel + installkernel.
jhb [Wed, 28 Mar 2018 16:51:05 +0000 (16:51 +0000)]
Expand remaining instances of 'make kernel' to buildkernel + installkernel.

The 'kernel' target is a bit more obscure compared to buildkernel and
installkernel.  One instance was already expanded previously in r325097.

6 years agoAvoid looping if SYSDIR already known.
bdrewery [Wed, 28 Mar 2018 16:28:24 +0000 (16:28 +0000)]
Avoid looping if SYSDIR already known.

Sponsored by: Dell EMC

6 years agoAvoid upwards directory walk in kernel build for finding known SYSDIR.
bdrewery [Wed, 28 Mar 2018 16:28:20 +0000 (16:28 +0000)]
Avoid upwards directory walk in kernel build for finding known SYSDIR.

Sponsored by: Dell EMC

6 years agoFix kernel builds without options DDB after r331650.
jhb [Wed, 28 Mar 2018 16:24:56 +0000 (16:24 +0000)]
Fix kernel builds without options DDB after r331650.

Reported by: cy

6 years agoRework ipfw rules parsing and printing code.
ae [Wed, 28 Mar 2018 12:44:28 +0000 (12:44 +0000)]
Rework ipfw rules parsing and printing code.

Introduce show_state structure to keep information about printed opcodes.
Split show_static_rule() function into several smaller functions. Make
parsing and printing opcodes into several passes. Each printed opcode
is marked in show_state structure and will be skipped in next passes.
Now show_static_rule() function is simple, it just prints each part
of rule separately: action, modifiers, proto, src and dst addresses,
options. The main goal of this change is avoiding occurrence of wrong
result of `ifpw show` command, that can not be parsed by ipfw(8).
Also now it is possible to make some simple static optimizations
by reordering of opcodes in the rule.

PR: 222705
Discussed with: melifaro
MFC after: 2 weeks
Sponsored by: Yandex LLC

6 years agoZFS vn_rele_async: catch up with the use of refcount(9) for the vnode use count
avg [Wed, 28 Mar 2018 08:55:31 +0000 (08:55 +0000)]
ZFS vn_rele_async: catch up with the use of refcount(9) for the vnode use count

It's not sufficient nor required to use the vnode interlock when
checking if we are going to drop the last use count as the code in
vputx() uses refcount (atomic) operations for both checking and
decrementing the use code.  Apply the same method to vn_rele_async().
While here, remove vn_rele_inactive(), a wrapper around vrele() that
didn't add any value.

Also, the change required making vfs_refcount_release_if_not_last()
public.  I've made vfs_refcount_acquire_if_not_zero() public as well.
They are in sys/refcount.h now.  While making the move I've dropped the
vfs_ prefix.

Reviewed by: mjg
MFC after: 2 weeks
Sponsored by: Panzura
Differential Revision: https://reviews.freebsd.org/D14869

6 years ago[iwm] Add support for iwm 3168 cards
eadler [Wed, 28 Mar 2018 07:59:16 +0000 (07:59 +0000)]
[iwm] Add support for iwm 3168 cards

```
iwm0@pci0:5:0:0:        class=0x028000 card=0x21108086 chip=0x24fb8086
rev=0x10 hdr=0x00
vendor     = 'Intel Corporation'
device     = 'Dual Band Wireless-AC 3168NGW [Stone Peak]'
class      = network
[94829] iwm0: <Intel(R) Dual Band Wireless AC 3168> mem
0xef700000-0xef701fff at device 0.0 on pci5
[94829] iwm0: hw rev 0x220, fw ver 22.361476.0, address
28:c6:3f:15:43:c5
```

MFC After: 2 weeks
Reviewed by: ivadasz (over IRC)
PR: 224886
Differential Revision: https://reviews.freebsd.org/D14865

6 years agoAdd Bruce Evans
rgrimes [Wed, 28 Mar 2018 07:49:36 +0000 (07:49 +0000)]
Add Bruce Evans
Update my mentors to bde and phk

Approved by: core, bde (mentor), phk (mentor)
MFC after: 3 days

6 years agoseq: provide a comment explaining what seq is for and note 2 caveats
mjg [Wed, 28 Mar 2018 04:38:45 +0000 (04:38 +0000)]
seq: provide a comment explaining what seq is for and note 2 caveats

6 years agoseq: disable preemption around seq_write_*
mjg [Wed, 28 Mar 2018 03:15:42 +0000 (03:15 +0000)]
seq: disable preemption around seq_write_*

This is a long standing performance bug which happened to not cause trouble
in practice due to rather limited use of these primitives.

The read side expects the writer to finish soon(tm) hence it loops with one
pause in-between. But it is possible the writer gets preempted in which case
the waiting can take a long time, especially so if it got preempted by the
reader. In principle this may never clean itself up.

In the current kernel seq is only used to obtain stable fp + capabilities
state. In order for looping at least once to occur there has to be a
concurrent writer modifying the fd slot for the very fd we are trying to
read. That is, for any looping to occur in the first place the program has
to be multithreaded and be doing something fishy to begin with. As such,
the indefinite looping is rather hard to run into unless you really try
(and I did not).

6 years agoFix another optional standard. Build openpic_ofw again.
jhibbits [Wed, 28 Mar 2018 03:11:50 +0000 (03:11 +0000)]
Fix another optional standard.  Build openpic_ofw again.

6 years agofd: tighten seq protected areas to not contain malloc/free
mjg [Wed, 28 Mar 2018 03:07:02 +0000 (03:07 +0000)]
fd: tighten seq protected areas to not contain malloc/free

6 years agoctfconvert: Fix minor memory leaks in STABS parser
cem [Tue, 27 Mar 2018 22:49:06 +0000 (22:49 +0000)]
ctfconvert: Fix minor memory leaks in STABS parser

In an error case, free leaked objects.  Does anything use STABS anymore?
Probably not.

Reported by: Coverity
Sponsored by: Dell EMC Isilon

6 years agoDon't access userspace directly from the kernel in nxge(4).
brooks [Tue, 27 Mar 2018 21:14:39 +0000 (21:14 +0000)]
Don't access userspace directly from the kernel in nxge(4).

Update to what the previous code seemed to be doing via the correct
interfaces.  Further issues exist in xge_ioctl_registers(), but this is
debugging code in a driver that has few users and they don't appear to
be crashes or leaks.

Reviewed by: jhb (prior version)
MFC after: 1 week
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D14848

6 years agoCopy flags over ifr_union directly rather than via casts through ifr_data.
brooks [Tue, 27 Mar 2018 21:06:18 +0000 (21:06 +0000)]
Copy flags over ifr_union directly rather than via casts through ifr_data.

No functional change in practice.  If the sbni driver supported
64-bit big-endian system, this would be an ABI changes, but it is
i386-only.  The old version leaked a word of stack on 64-bit systems.

This eliminates the only assignment to ifr_data.

Reviewed by: kib
MFC after: 1 week
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D14874

6 years agoRevert r331651 to recommit with proper commit metadata.
brooks [Tue, 27 Mar 2018 21:04:54 +0000 (21:04 +0000)]
Revert r331651 to recommit with proper commit metadata.

6 years agoCopy flags over ifr_union directly rather than via casts through ifr_data.
brooks [Tue, 27 Mar 2018 21:03:29 +0000 (21:03 +0000)]
Copy flags over ifr_union directly rather than via casts through ifr_data.

No functional change in practice.  If the sbni driver supported
64-bit big-endian system, this would be an ABI changes, but it is
i386-only.  The old version leaked a word of stack on 64-bit systems.

This eliminates the only assignment to ifr_data.

6 years agoRemove very old and unused signal information codes.
jhb [Tue, 27 Mar 2018 20:57:51 +0000 (20:57 +0000)]
Remove very old and unused signal information codes.

These have been supplanted by the MI signal information codes in
<sys/signal.h> since 7.0.  The FPE_*_TRAP ones were deprecated even
earlier in 1999.

PR: 226579 (exp-run)
Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D14637

6 years agoUse the offload transmit queue to set flags on TLS connections.
jhb [Tue, 27 Mar 2018 20:54:57 +0000 (20:54 +0000)]
Use the offload transmit queue to set flags on TLS connections.

Requests to modify the state of TLS connections need to be sent on the
same queue as TLS record transmit requests to ensure ordering.

However, in order to use the offload transmit queue in t4_set_tcb_field(),
the function needs to be updated to do proper flow control / credit
management when queueing a request to an offload queue.  This required
passing a pointer to the toepcb itself to this function, so while here
remove the 'tid' and 'iqid' parameters and obtain those values from the
toepcb in t4_set_tcb_field() itself.

Submitted by: Harsh Jain @ Chelsio (original version)
Reviewed by: np
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D14871

6 years agoImprove copy-and-pasted versions of SIOCGIFADDR.
brooks [Tue, 27 Mar 2018 20:51:49 +0000 (20:51 +0000)]
Improve copy-and-pasted versions of SIOCGIFADDR.

The original implementation used a reference to ifr_data and a cast to
do the equivalent of accessing ifr_addr. This was copied multiple
times since 1996.

Approved by: kib
MFC after: 1 week
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D14873

6 years agoFix a whitespace bug missed in refactoring prior to r331641.
brooks [Tue, 27 Mar 2018 18:55:39 +0000 (18:55 +0000)]
Fix a whitespace bug missed in refactoring prior to r331641.

MFC with: r331641

6 years agoAdd support for right and middle click with integrated button to WSP
hselasky [Tue, 27 Mar 2018 18:44:05 +0000 (18:44 +0000)]
Add support for right and middle click with integrated button to WSP
USB trackpad driver.

Submitted by: James Wright <james.wright@jigsawdezign.com>
PR: 226961
MFC after: 1 week
Sponsored by: Mellanox Technologies

6 years agoFix access to ifru_buffer on freebsd32.
brooks [Tue, 27 Mar 2018 18:26:50 +0000 (18:26 +0000)]
Fix access to ifru_buffer on freebsd32.

Make all kernel accesses to ifru_buffer go via access functions
which take the process ABI into account and use an appropriate union
to access members in the correct place in struct ifreq.

Reviewed by: kib
Obtained from: CheriBSD
MFC after: 1 week
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D14846

6 years agoFix several leaks of kernel stack data through paddings.
kib [Tue, 27 Mar 2018 18:05:51 +0000 (18:05 +0000)]
Fix several leaks of kernel stack data through paddings.

It is random collection of fixes for issues not yet corrected,
reported at https://tsyrklevi.ch/clang_analyzer/freebsd_013017/. Many
issues from that list were already corrected. Most of them are for
compat32, old compat32 or affect both primary host ABI and compat32.

The freebsd32_kldstat(), for instance, was already fixed by using
malloc(M_ZERO).  Patch includes correction to report the supplied
version back, which is just pedantic.

Reviewed by: brooks, emaste (previous version)
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D14868

6 years agoopencrypto: Add mechanism to pass multiple crypto blocks to some ciphers
cem [Tue, 27 Mar 2018 17:58:00 +0000 (17:58 +0000)]
opencrypto: Add mechanism to pass multiple crypto blocks to some ciphers

xforms that support processing of multiple blocks at a time (to support more
efficient modes, for example) can define the encrypt_ and decrypt_multi
interfaces.  If these interfaces are not present, the generic cryptosoft
code falls back on the block-at-a-time encrypt/decrypt interfaces.

Stream ciphers may support arbitrarily sized inputs (equivalent to an input
block size of 1 byte) but may be more efficient if a larger block is passed.

Sponsored by: Dell EMC Isilon

6 years agoFix instructions in the zfsboot manual page.
eugen [Tue, 27 Mar 2018 17:37:08 +0000 (17:37 +0000)]
Fix instructions in the zfsboot manual page.

zfsloader(8) fails to probe a slice containing ZFS pool if its second sector
contains traces of BSD label (DISKMAGIC == 0x82564557).
Fix manual page to show working example erasing such traces.

PR: 226714
Approved by: avg (mentor)
MFC after: 3 days

6 years agocryptotest: Add blake2 hashes to tool
cem [Tue, 27 Mar 2018 17:34:28 +0000 (17:34 +0000)]
cryptotest: Add blake2 hashes to tool

Sponsored by: Dell EMC Isilon

6 years agoMerge OpenSSL 1.0.2o.
jkim [Tue, 27 Mar 2018 17:17:58 +0000 (17:17 +0000)]
Merge OpenSSL 1.0.2o.

6 years agoBump .Dd after r331113.
trasz [Tue, 27 Mar 2018 16:38:32 +0000 (16:38 +0000)]
Bump .Dd after r331113.

Reported by: oshogbo@
MFC after: 2 weeks

6 years agoMove 32-bit compat for md(4) ioctls into the md code.
brooks [Tue, 27 Mar 2018 16:07:54 +0000 (16:07 +0000)]
Move 32-bit compat for md(4) ioctls into the md code.

This is more correct in that ioctl commands have no meaning until they
hit the handler associated with the file descriptor.

Add support for MDIOCRESIZE_32 which was missed when it was added.

Reviewed by: cem, kib, markj (various versions)
Obtained from: CheriBSD
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D14714

6 years agoAllow to specify PCP on packets not belonging to any VLAN.
kib [Tue, 27 Mar 2018 15:29:32 +0000 (15:29 +0000)]
Allow to specify PCP on packets not belonging to any VLAN.

According to 802.1Q-2014, VLAN tagged packets with VLAN id 0 should be
considered as untagged, and only PCP and DEI values from the VLAN tag
are meaningful.  See for instance
https://www.cisco.com/c/en/us/td/docs/switches/connectedgrid/cg-switch-sw-master/software/configuration/guide/vlan0/b_vlan_0.html.

Make it possible to specify PCP value for outgoing packets on an
ethernet interface.  When PCP is supplied, the tag is appended, VLAN
id set to 0, and PCP is filled by the supplied value.  The code to do
VLAN tag encapsulation is refactored from the if_vlan.c and moved into
if_ethersubr.c.

Drivers might have issues with filtering VID 0 packets on
receive.  This bug should be fixed for each driver.

Reviewed by: ae (previous version), hselasky, melifaro
Sponsored by: Mellanox Technologies
MFC after: 2 weeks
Differential revision: https://reviews.freebsd.org/D14702

6 years agoMove uio enums to sys/_uio.h.
brooks [Tue, 27 Mar 2018 15:20:03 +0000 (15:20 +0000)]
Move uio enums to sys/_uio.h.

Include _uio.h instead of uio.h in several headers to reduce header
polution.

Fix a few places that relied on header polution to get the uio.h header.

I have not moved struct uio as many more things that use it rely on
header polution to get other definitions from uio.h.

Reviewed by: cem, kib, markj
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D14811

6 years agoMFV: libb2: use native calls for secure memory clearance
cem [Tue, 27 Mar 2018 14:55:01 +0000 (14:55 +0000)]
MFV: libb2: use native calls for secure memory clearance

Drop our local patch and restore full vanilla upstream code in
contrib/libb2.

No functional change intended.  explicit_bzero() should continue to be used.

Obtained from: libb2 b4b241a34824b51956a7866606329a065d397525
Sponsored by: Dell EMC Isilon

6 years agoAdd trailing slash for consistency.
trasz [Tue, 27 Mar 2018 14:54:02 +0000 (14:54 +0000)]
Add trailing slash for consistency.

For some reason, the other link - https://lists.FreeBSD.org/ - needs
the trailing slash, otherwise man(8) renders it in a weird way.  No
idea why's that.  At least try to be consistent.  Revert it when the
other link gets fixed.

MFC after: 2 weeks

6 years agoUse https:// instead of http://.
trasz [Tue, 27 Mar 2018 14:51:19 +0000 (14:51 +0000)]
Use https:// instead of http://.

MFC after: 2 weeks

6 years agoFix capitalization.
trasz [Tue, 27 Mar 2018 14:50:12 +0000 (14:50 +0000)]
Fix capitalization.

MFC after: 2 weeks

6 years agovfs_donmount: in certain cases try r/o mount if r/w mount fails
avg [Tue, 27 Mar 2018 14:31:42 +0000 (14:31 +0000)]
vfs_donmount: in certain cases try r/o mount if r/w mount fails

If the operation is not an update, if neither r/w nor r/o mode is
explicitly requested, if the error code hints at the possibility of the
media being read-only, and if the fallback is allowed, then we can try
to automatically downgrade to the readonly mode.

This is especially useful for auto-mounting of removable media that
sometimes can happen to be write-protected.

The fallback to r/o is not enabled by default.  It can be requested on a
per-mount basis with a new mount option, 'autoro'.  Or it can be
globally allowed by setting vfs.default_autoro.

Reviewed by: cem, kib
MFC after: 3 weeks
Relnotes: yes
Differential Revision: https://reviews.freebsd.org/D13361

6 years agoZFS test suite: fix uses of illumos /dev/[r]dsk/ and /dev/zvol/[r]dsk/
avg [Tue, 27 Mar 2018 11:49:15 +0000 (11:49 +0000)]
ZFS test suite: fix uses of illumos /dev/[r]dsk/ and /dev/zvol/[r]dsk/

6 years agoBackout r331606 until I can identify why it does not boot on some
jeff [Tue, 27 Mar 2018 10:20:50 +0000 (10:20 +0000)]
Backout r331606 until I can identify why it does not boot on some
machines.

6 years agoRectify VMCI SPDX license
mp [Tue, 27 Mar 2018 06:33:00 +0000 (06:33 +0000)]
Rectify VMCI SPDX license

Approved by: Vishnu Dasa <vdasa@vmware.com>

6 years agoOnly use CPUs in the domain the device is attached to for default
jeff [Tue, 27 Mar 2018 03:37:04 +0000 (03:37 +0000)]
Only use CPUs in the domain the device is attached to for default
assignment.  Device drivers are able to override the default assignment
if they bind directly.  There are severe performance penalties for
handling interrupts on remote CPUs and this should only be done in
very controlled circumstances.

Reviewed by: jhb, kib
Tested by: pho (earlier version)
Sponsored by: Netflix, Dell/EMC Isilon
Differential Revision: https://reviews.freebsd.org/D14838

6 years agoMove vm_ndomains to vm.h where it can be used with a single header include
jeff [Tue, 27 Mar 2018 03:27:02 +0000 (03:27 +0000)]
Move vm_ndomains to vm.h where it can be used with a single header include
rather than requiring a half-dozen.  Many non-vm files may want to know
the number of valid domains.

Sponsored by: Netflix, Dell/EMC Isilon

6 years agoUpdate to Zstandard 1.3.4
cem [Mon, 26 Mar 2018 23:54:59 +0000 (23:54 +0000)]
Update to Zstandard 1.3.4

Includes our local patch to conditionalize use of __builtin_clz(ll) on
Clang's __has_builtin() (which is just defined to false when building with
GCC).

The issue is tracked upstream at https://github.com/facebook/zstd/pull/884 .
Otherwise, these are vanilla Zstandard 1.3.4 files.

Reported by: allanjude, Yann Collet
Sponsored by: Dell EMC Isilon

6 years agoctfconvert/ctfmerge: Fix a memory leak enumerating DWARF files
cem [Mon, 26 Mar 2018 23:20:37 +0000 (23:20 +0000)]
ctfconvert/ctfmerge: Fix a memory leak enumerating DWARF files

Reported by: Coverity
Sponsored by: Dell EMC Isilon

6 years agoOCF: CRYPTDEB(): Enhance to allow formatted logging
cem [Mon, 26 Mar 2018 22:31:29 +0000 (22:31 +0000)]
OCF: CRYPTDEB(): Enhance to allow formatted logging

Sponsored by: Dell EMC Isilon

6 years agoUpdate the license to note my work on cryptocheck was sponsored.
jhb [Mon, 26 Mar 2018 22:30:17 +0000 (22:30 +0000)]
Update the license to note my work on cryptocheck was sponsored.

Sponsored by: Chelsio Communications

6 years agowpa_supplicant.conf.5: Document minimal eduroam configuration
cem [Mon, 26 Mar 2018 22:10:20 +0000 (22:10 +0000)]
wpa_supplicant.conf.5: Document minimal eduroam configuration

PR: 226939
Submitted by: Mateusz Piotrowski (0mp@)
Sponsored by: Dell EMC Isilon

6 years agolibctf: Don't construct pointers to out of bounds array offsets
cem [Mon, 26 Mar 2018 22:02:36 +0000 (22:02 +0000)]
libctf: Don't construct pointers to out of bounds array offsets

Just attempting to do the pointer arithmetic is undefined behavior.

No functional change intended.

Reported by: Coverity
Sponsored by: Dell EMC Isilon

6 years agolibctf: Appease Coverity overrun warnings
cem [Mon, 26 Mar 2018 21:57:44 +0000 (21:57 +0000)]
libctf: Appease Coverity overrun warnings

Rather than zeroing and reading into the a smaller union member the full
union size, just zero and read directly into the union.

No functional change intended.

Reported by: Coverity
Sponsored by: Dell EMC Isilon

6 years agocryptodev: Match intent for enc_xform ciphers with blocksize != ivsize
cem [Mon, 26 Mar 2018 20:30:07 +0000 (20:30 +0000)]
cryptodev: Match intent for enc_xform ciphers with blocksize != ivsize

No functional change for Skipjack, AES-ICM, Blowfish, CAST-128, Camellia,
DES3, Rijndael128, DES.  All of these have identical IV and blocksizes
declared in the associated enc_xform.

Functional changes for:
  * AES-GCM: block len of 1, IV len of 12
  * AES-XTS: block len of 16, IV len of 8
  * NULL: block len of 4, IV len of 0

For these, it seems like the IV specified in the enc_xform is correct (and
the blocksize used before was wrong).

Additionally, the not-yet-OCFed cipher Chacha20 has a logical block length
of 1 byte, and a 16 byte IV + nonce.

Rationalize references to IV lengths to refer to the declared ivsize, rather
than declared blocksize.

Sponsored by: Dell EMC Isilon

6 years agoCC Cubic: fix underflow for cubic_cwnd()
sbruno [Mon, 26 Mar 2018 19:53:36 +0000 (19:53 +0000)]
CC Cubic: fix underflow for cubic_cwnd()

Singed calculations in cubic_cwnd() can result in negative cwnd
value which is then cast to an unsigned value. Values less than
1 mss are generally bad for other parts of the code, also fixed.

Submitted by: Jason Eggleston <jason@eggnet.com>
Sponsored by: Limelight Networks
Differential Revision: https://reviews.freebsd.org/D14141

6 years agovmci(4): Fix GCC build and rationalize vmci_kernel_defs.h
cem [Mon, 26 Mar 2018 19:53:02 +0000 (19:53 +0000)]
vmci(4): Fix GCC build and rationalize vmci_kernel_defs.h

To fix the GCC build, remove multiple redundant declarations of
vmci_send_datagram() (the copy in vmci.h as well as the extern definition in
vmci_queue_pair.c were wholly redundant).

Also to fix the GCC build, include a non-empty format string in the vmci(4)
definition of ASSERT().  It seems harmless either way, but adding the
stringified invariant is easier than masking the warning.

The other vmci_kernel_defs.h changes are cosmetic and simply match macros to
existing definitions.

Reported by: GCC 6.4.0
Sponsored by: Dell EMC Isilon

6 years agolua-lint: Hint that try_include is now an accepted global
kevans [Mon, 26 Mar 2018 19:08:19 +0000 (19:08 +0000)]
lua-lint: Hint that try_include is now an accepted global

try_include was added in r331563.

6 years agolualoader: Actually re-raise error in try_include
kevans [Mon, 26 Mar 2018 19:06:25 +0000 (19:06 +0000)]
lualoader: Actually re-raise error in try_include

It was previously only printed, but we do actually want to raise it as a
full blown error so that things don't look OK when they've actually gone
wrong.

The second parameter to error, level, is set to 2 here so that the error
message reflects the position of the try_include caller, rather than the
try_include itself. Example:

LUA ERROR: /boot/lua/loader.lua:46: /boot/lua/local.lua:1: attempt to call a
nil value (global 'cxcint').