197752 Commits

Author SHA1 Message Date
trasz
a740f64591 MFC r274621:
The "intr" option is NFS-specific; fix examples in auto_master(5).

Sponsored by:	The FreeBSD Foundation
2014-12-21 11:00:48 +00:00
trasz
5654688c96 MFC r274549:
Make it possible to do "iscsictl -Rt xxx -p yyy", to remove a session
that matches both -t and -p.

Sponsored by:	The FreeBSD Foundation
2014-12-21 10:56:06 +00:00
ngie
dc3ad5131f MFC r273929:
r273929 (by jmmv):

  MFV: Import atf-0.21.
2014-12-21 08:30:18 +00:00
dchagin
1a3934911c Regen for r275986 (ppoll). 2014-12-21 08:00:38 +00:00
dchagin
dfe2ad4d46 MFC r274462: Add the ppoll() system call. 2014-12-21 07:58:28 +00:00
smh
f73f068967 MFC r274819:
Prevent overflow issues in timeout processing

MFC r274852:
Fix build with asr driver

Sponsored by:	Multiplay
2014-12-21 03:06:11 +00:00
smh
4ae371d305 MFC r269615:
Various fixes to hptrr(4)

Sponsored by:	Multiplay
2014-12-21 03:00:44 +00:00
smh
4ffc79821f MFC r269613:
Various fixes to hptnr(4)

Sponsored by:	Multiplay
2014-12-21 02:57:03 +00:00
smh
c7e8e234ac MFC r267290:
Make the hpt27xx(4) driver MPSAFE

Sponsored by:	Multiplay
2014-12-21 02:52:40 +00:00
smh
e3ea8796d6 MFC r266772:
Various cleanups and fixes including switching from timeout to callout

Sponsored by:	Multiplay
2014-12-21 02:47:38 +00:00
smh
34faa04ea6 MFC r272000:
Switch from timeout(9) to callout(9)

Sponsored by:	Multiplay
2014-12-21 02:39:10 +00:00
smh
4749aacddd MFC r272735:
Support upto 256VD.

MFC r272737:
Support 32-bit linux binaries on FreeBSD 64bit.

MFC r272738:
Fix the minor svn add issue.

MFC r272739:
Extended MSI-x vectors support for Invader and Fury(12Gb/s HBA).

MFC r272740:
Add d_poll support.

MFC r272741:
Fix leak of mfi cmd in the passthru and correctly limit oustanding.

MFC r272742:
Import vendor Phase 6.5 driver

MFC r272744:
Style (9) fixes.

MFC r273040:
Fix for build issue on i386.xen and amd64.xen.

Sponsored by:	Multiplay
2014-12-21 02:35:22 +00:00
smh
90167d8975 MFC: r274487
Lock iir(4) and mark it MPSAFE.

Sponsored by:	Multiplay
2014-12-21 01:39:21 +00:00
kib
32facbd8ab MFC r275744:
Only sleep interruptible while waiting for suspension end when
filesystem specified VFCF_SBDRY flag, i.e. for NFS.
2014-12-20 15:49:12 +00:00
kib
febae1567d MFC r275743:
Put the buffer cleanup code after inactivation.
2014-12-20 15:46:15 +00:00
brueffer
f419d174a9 MFC: r274960 (slightly modified)
Limit descriptors and enter capability mode.  Since the header was renamed in HEAD, this
commit includes sys/capability.h.

Differential:	D1009
Reviewed by:	jonathan, pjd
Relnotes:	yes
2014-12-19 23:18:22 +00:00
ae
98ddab22ac MFC r275729:
Increase the buffer size to keep the list of programm names when
  parsing programm specification. It is safe to not check out of bounds
  access, because !isprint(p[i]) check will stop reading, when '\0'
  character will be read from the input string.

Sponsored by:	Yandex LLC
2014-12-19 13:22:02 +00:00
kib
492a1d38b5 MFC r275833:
The iret instruction may generate #np and #ss fault, besides #gp.
When returning to usermode, the handler for that exceptions is also
executed with wrong gs base.  Handle all three possible faults in the
same way, checking for iret fault, and performing full iret.
2014-12-19 09:36:59 +00:00
kib
bf07138622 MFC r275727:
For architectures where time_t is wide enough, in particular, 64bit
platforms, avoid overflow after year 2038 in clock_ct_to_ts().

PR:	195868
2014-12-19 09:34:14 +00:00
mav
eac5956a91 MFC r275503:
Avoid unneeded malloc/memcpy/free if there is no metadata on disk.

Submitted by:	Dmitry Luhtionov <dmitryluhtionov@gmail.com>
2014-12-19 01:13:41 +00:00
jhb
3f663b8b40 MFC 273871:
Skip the smap sysctl instead of panicing if no kernel metadata can be
found.
2014-12-18 23:00:17 +00:00
avg
a691672ca9 MFC r275401: zfs_putpages: actually update mtime and ctime 2014-12-18 13:46:11 +00:00
kib
55c41429c0 MFC r271315 (by joel):
Minor mdoc nit.

MFC r275806:
Markup fixes for kqueue(2), no content changes.
2014-12-18 11:36:14 +00:00
kib
9f63b4b4d8 MFC r268843 (by bapt):
Extend kqueue's EVFILT_TIMER by adding precision unit flags support.
2014-12-18 11:30:51 +00:00
kib
3abf5d53d8 MFC r259609 (by se):
Fix overflow for timeout values of more than 68 years, which is the maximum
covered by sbintime (LONG_MAX seconds).

MFC r259633 (by se):
Fix compilation on 32 bit architectures and use INT64_MAX instead of
LONG_MAX for the upper bound check.
2014-12-18 11:10:15 +00:00
mav
66c7f00f29 MFC r275482: Document r275481 changes. 2014-12-18 08:49:50 +00:00
mav
a0e66849d7 MFC r275568:
Count consecutive read requests as blocking in CTL for files and ZVOLs.

Technically read requests can be executed in any order or simultaneously
since they are not changing any data.  But ZFS prefetcher goes crasy when
it receives consecutive requests from different threads.  Since prefetcher
works on level of separate blocks, instead of two consecutive 128K requests
it may receive 32 8K requests in mixed order.

This patch is more workaround then a real fix, and it does not fix all of
prefetcher problems, but it improves sequential read speed by 3-4x times
in some configurations.  On the other side it may hurt performance if
some backing store has no prefetch, that is why it is disabled by default
for raw devices.
2014-12-18 08:46:53 +00:00
mav
fe777840de MFC r275512:
In addition to r275481 allow threshold notifications work without UNMAP.

While without UNMAP support there is not much initiator can do about it,
the administrator still better be notified about the storage overflow.

Sponsored by:   iXsystems, Inc.
2014-12-18 08:45:28 +00:00
mav
57c600c3f5 MFC r275481:
Add to CTL support for threshold notifications for file-backed LUNs.

Previously it was supported only for ZVOL-backed LUNs, but now should work
for file-backed LUNs too.  Used value in this case is a space occupied by
the backing file, while available value is an available space on file
system.  Pool thresholds are still not implemented in this case.

Sponsored by:   iXsystems, Inc.
2014-12-18 08:43:36 +00:00
mav
4ff47ae9ab MFC r275474: Add GET LBA STATUS command support to CTL.
It is implemented for LUNs backed by ZVOLs in "dev" mode and files.
GEOM has no such API, so for LUNs backed by raw devices all LBAs will
be reported as mapped/unknown.

Sponsored by:   iXsystems, Inc.
2014-12-18 08:38:07 +00:00
mav
251a95deec MFC r275461:
Increase CTL ports limit from 128 to 256 and LUNs limit from 256 to 1024.

After recent optimizations this change is no longer blocked by CTL memory
consumption.  Those limits are still not free, but much cheaper now.

Relnotes:	yes
Sponsored by:	iXsystems, Inc.
2014-12-18 08:37:09 +00:00
mav
e99b295765 MFC r275459: Unify function names after r275458. 2014-12-18 08:32:56 +00:00
mav
510c6d695e MFC r275458:
Do not pre-allocate UNIT ATTENTIONs storage for every possible initiator.

Abusing ability of major UAs cover minor ones we may not account UAs for
inactive ports.  Allocate UAs storage for port and start accounting only
after some initiator from that port fetched its first POWER ON OCCURRED.

This reduces per-LUN CTL memory usage from >1MB to less then 100K.
2014-12-18 08:32:06 +00:00
mav
e998495ddf MFC r275455: Remove some unused code. 2014-12-18 08:31:13 +00:00
mav
ef698a8b3d MFC r275447:
Do not pre-allocate reservation keys memory for every possible initiator.

In configurations with many ports, like iSCSI, each LUN is typically
accessed only by limited subset of ports.  Allocating that memory on
demand allows to reduce CTL memory usage from 5.3MB/LUN to 1.3MB/LUN.
2014-12-18 08:30:28 +00:00
mav
a4403fd4b3 MFC r275405: Convert persis_offset from global variable to softc field. 2014-12-18 08:28:44 +00:00
mav
be8a551758 MFC r275404: Reduce code duplication by creating ctl_set_res_ua() helper. 2014-12-18 08:27:46 +00:00
mav
f47cf8ca42 MFC r275403: Removed unused variable and unify some names. 2014-12-18 08:27:00 +00:00
mav
08d09659c7 MFC r275365: Move ctlfe_onoffline() out of lock to let it sleep when needed.
Do some more other polishing while there.
2014-12-18 08:26:11 +00:00
mav
19cc556c2a MFC r275058: Coalesce last data move and command status for read commands.
Make CTL core and block backend set success status before initiating last
data move for read commands.  Make CAM target and iSCSI frontends detect
such condition and send command status together with data.  New I/O flag
allows to skip duplicate status sending on later fe_done() call.

For Fibre Channel this change saves one of three interrupts per read command,
increasing performance from 126K to 160K IOPS.  For iSCSI this change saves
one of three PDUs per read command, increasing performance from 1M to 1.2M
IOPS.

Sponsored by:   iXsystems, Inc.
2014-12-18 08:25:00 +00:00
mav
67f35b59b5 MFC r275032: Decouple datamove/done logic from CTL status set. 2014-12-18 08:23:59 +00:00
mav
347eb16c88 MFC r275009: Use ctl_set_success() instead of direct inlining. 2014-12-18 08:23:04 +00:00
mav
91695c330f MFC r274962: Replace home-grown CTL IO allocator with UMA.
Old allocator created significant lock congestion protecting its lists
of preallocated I/Os, while UMA provides much better SMP scalability.
The downside of UMA is lack of reliable preallocation, that could guarantee
successful allocation in non-sleepable environments.  But careful code
review shown, that only CAM target frontend really has that requirement.
Fix that making that frontend preallocate and statically bind CTL I/O for
every ATIO/INOT it preallocates any way.  That allows to avoid allocations
in hot I/O path.  Other frontends either may sleep in allocation context
or can properly handle allocation errors.

On 40-core server with 6 ZVOL-backed LUNs and 7 iSCSI client connections
this change increases peak performance from ~700K to >1M IOPS!  Yay! :)

Sponsored by:	iXsystems, Inc.
2014-12-18 08:22:16 +00:00
mav
bed1ef29db MFC r275475:
Decode some binary fields of Intel metadata.

Submitted by:	Dmitry Luhtionov <dmitryluhtionov@gmail.com>
2014-12-18 07:37:21 +00:00
dim
4e01cb7539 MFC r275759:
Pull in r221170 from upstream clang trunk (by Roman Divacky):

  Implement vaarg lowering for ppc32. Lowering of scalars and
  aggregates is supported. Complex numbers are not.

This adds va_args support for PowerPC (32 bit) to clang.

Reviewed by:	jhibbits
Differential Revision: https://reviews.freebsd.org/D1308
2014-12-17 21:36:45 +00:00
delphij
18a8a69694 MFC r275852: MFV r275844:
Fix unbound remote denial of service vulnerability.

Security:	FreeBSD-SA-14:30.unbound
Security:	CVE-2014-8602
Approved by:	so
2014-12-17 06:58:00 +00:00
jhb
9adaeb5452 MFC 273053:
Decode the arguments passed to _umtx_op().  In particular, decode the
opcode.
2014-12-16 21:57:55 +00:00
pfg
7cc43d5ff8 MFC r275553, r275612;
patch(1): Bring fixes from OpenBSD

Check fstat return value.  Use off_t for file size and offsets.
Avoid iterating over end of string.

Introduce strtolinenum to properly check line numbers while parsing:
no signs, no spaces, just digits, 0 <= x <= LONG_MAX

Properly validate line ranges supplied in diff file to prevent overflows.
Also fixes an out of boundary memory access because the resulting values
are used as array indices.

PR:		195436
Obtained from:	OpenBSD
2014-12-16 21:13:55 +00:00
pfg
8631101d5a MFC r275531, r275581, r275582;
patch(1): Small changes to sync with OpenBSD

Update OpenBSD CVS revision tag for our r255232.
Prefer setvbuf() to setlinebuf().
Small space changes, mostly to keep in sync with OpenBSD

Obtained from:	OpenBSD
2014-12-16 21:05:28 +00:00
jhb
adf7828a9b MFC 271635,271722:
- Only the manpage updates from 271635 are merged to give additional
  heads up for the stricter checks in 11, but the kernel in 10 remains
  permissive.
  - Fail with EINVAL if an invalid protection mask is passed to mmap().
  - Fail with EINVAL if an unknown flag is passed to mmap().
  - Fail with EINVAL if both MAP_PRIVATE and MAP_SHARED are passed to
    mmap().
  - Require one of either MAP_PRIVATE or MAP_SHARED for non-anonymous
    mappings.
- Remove mention of MAP_INHERIT.  It hasn't been implemented for thirteen
  years.
- Remove mention of unimplemented MAP_SWAP.  There are no future plans to
  implement it.
2014-12-16 20:05:10 +00:00