101013 Commits

Author SHA1 Message Date
mav
2cb46b9c51 MFC r271588: Update CAM CCB accounting for the new status quo.
devq_openings counter lost its meaning after allocation queues has gone.
held counter is still meaningful, but problematic to update due to separate
locking of CCB allocation and queuing.

To fix that replace devq_openings counter with allocated counter.  held is
now calculated on request as difference between number of allocated, queued
and active CCBs.
2014-10-14 12:13:01 +00:00
delphij
02d8987f8d Fix a missed merge introduced in r272883. 2014-10-13 18:46:30 +00:00
kib
9a0f569181 MFC r272907:
Make MAP_NOSYNC handling in the vm_fault() read-locked object path
compatible with write-locked path.
2014-10-13 15:58:03 +00:00
dumbbell
b366d41790 vt(4): Don't recalculate buffer size if we don't know screen size
(MFC of r272537)

When the screen size is unknown, it's set to 0x0. We can't use that as
the buffer size, otherwise, functions such as vtbuf_fill() will fail.

This fixes a panic on RaspberryPi, where there's no vt(4) backend
configured early in boot.

PR:		193981
Tested by:	danilo@
2014-10-13 14:40:00 +00:00
dumbbell
6981999a42 vt(4): Save/restore keyboard mode & LED states when switching window
(MFC of r272416)

Add new functions to manipulate these mode & state, instead of calling
kbdd_ioctl() everyhere.

This fixes at least two bugs:

    1. The state of the Scroll Lock LED and the state of scroll mode
       could be out-of-sync. For instance, if one enables scroll mode on
       window #1 and switches to window #2, the LED would remain on, but
       the window wouldn't be in scroll mode.

       Similarily, when switching between a console and an X.Org
       session, the LED states could be inconsistent with the real
       state.

    2. When exiting from an X.Org session, the user could be unable to
       type anything. The workaround was to switch to another console
       window and come back.

Differential Revision:	https://reviews.freebsd.org/D821
Reviewed by:	ray@
Approved by:	ray@
Tested by:	kwm@
2014-10-13 13:50:51 +00:00
tuexen
ed67dea7a4 MFC r272841:
Ensure that the flags field of sctp_tmit_chunks is initialized.
Thanks to Peter Bostroem from Google for reporting the issue.
2014-10-12 17:45:22 +00:00
tuexen
b0912548c1 MFC r272751:
Ensure that the list of streams sent in a stream reset parameter fits
in an mbuf-cluster.
Thanks to Peter Bostroem for drawing my attention to this part of the code.
2014-10-12 17:42:32 +00:00
tuexen
85569fa02c MFC r272750:
Ensure that the number of stream reported in srs_number_streams is
consistent with the amount of data provided in the SCTP_RESET_STREAMS
socket option.
Thanks to Peter Bostroem from Google for drawing my attention to
this part of the code.
2014-10-12 17:39:37 +00:00
tuexen
4f377875d1 MFC r272571:
Remove unused MC_ALIGN macro as suggested by Robert.
2014-10-12 17:36:41 +00:00
cy
b41a810b86 MFC r272555
ipfilter bug #537 NAT rules with sticky have incorrect hostmap IP address.
This fixes when an IP address mapping is put in the hostmap table for
sticky NAT rules, it ends up having the wrong byte order.

Obtained from:	ipfilter CVS repo (r1.102), NetBSD CVS repo (r1.12)
2014-10-12 17:21:15 +00:00
cy
a223c6d9ec MFC r272554
ipfilter bug #534 destination list hashing not endian neutral

Obtained from:	ipfilter CVS repo (r1.26), NetBSD CVS repo (r1.8)
2014-10-12 17:19:11 +00:00
cy
159eb60806 MFC r272553
ipfilter bug #538 ipf_p_dns_del should return void

Obtained from:	ipfilter cvs repo (r1.8)
2014-10-12 17:17:19 +00:00
cy
647905f29a MFC r272552
ipfilter bug #554 Determining why a ipf rule matches is hard -- replace
ipfilter rule compare with new ipf_rule_compare() function.

Obtained from:	ipfilter CVS rep (r1.129)
2014-10-12 17:15:20 +00:00
cy
fea983df78 MFC r272551
ipfiler bug #550 filter rule list corrupted with inserted rules

Obtained from:	ipfilter CVS repo (r1.128); NetBSD CVS repo (r1.15)
2014-10-12 17:13:14 +00:00
cy
d487341bd7 MFC r272052
ipfilter bug #558 add in some missing frag table function comments.

Obtained from:	ipfilter CVS repo (r1.36)
2014-10-12 17:10:44 +00:00
cy
c5a5359e13 MFC r271980
Check for NULL before de-refencing; in particular sel is assigned to NULL,
in the default case, and then couple of lines down we do sel->

Obtained from:	NetBSD CVS repo (r1.5)
2014-10-12 17:08:44 +00:00
mav
a45382b275 Use proper variable when looping through periphs with CAM_PERIPH_FREE.
PR:		194256
Submitted by:	Scott M. Ferris <smferris@gmail.com>
Sponsored by:	EMC/Isilon Storage Division
2014-10-12 06:14:50 +00:00
adrian
7f559d779a MFC r271784 - Fix the handling of EOP in status descriptors for if_igb(4)
and don't double-free mbufs.

Like ixgbe(4) chipsets, EOP is only set on the final descriptor
in a chain of descriptors.  So, to free the whole list of descriptors,
we should free the current slot _and_ the assembled list of descriptors
that make up the fragment list.

The existing code was setting discard once it saw EOP + an error status;
it then freed all the subsequent descriptors until the next EOP. That's
totally the wrong order.
2014-10-11 22:13:24 +00:00
adrian
5995ee9a98 MFC r271645 - Set DROP_EN on each RX queue if transmit flow-control is disabled.
This allows the NIC to drop frames on the receive queue and not
cause the MAC to block on receiving to _any_ queue.

Tested:

igb0@pci0:5:0:0:        class=0x020000 card=0x152115d9 chip=0x15218086 rev=0x01 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'I350 Gigabit Network Connection'
    class      = network
    subclass   = ethernet

Discussed with: Eric Joyner <eric.joyner@intel.com>
MFC after:    1 week
Sponsored by: Norse Corp, Inc.
2014-10-11 22:12:24 +00:00
adrian
d090f32bd0 MFC r271649 - Disable flow-director support until it's been debugged
and verified.

The flowdirector feature shares on-chip memory with other things
such as the RX buffers.  In theory it should be configured in a way
that doesn't interfere with the rest of operation.  In practice,
the RX buffer calculation didn't take the flow-director allocation
into account and there'd be overlap.  This lead to various garbage
frames being received containing what looks like internal NIC state.

What _I_ saw was traffic ending up in the wrong RX queues.
If I was doing a UDP traffic test with only one NIC ring receiving
traffic, everything is fine.  If I fired up a second UDP stream
which came in on another ring, there'd be a few percent of traffic
from both rings ending up in the wrong ring.  Ie, the RSS hash would
indicate it was supposed to come in ring X, but it'd come in ring Y.

However, when the allocation was fixed up, the developers at Verisign
still saw traffic stalls.

The flowdirector feature ends up fiddling with the NIC to do various
attempts at load balancing connections by populating flow table rules
based on sampled traffic.  It's likely that all of that has to be
carefully reviewed and made less "magic".

So for now the flow director feature is disabled (which fixes both
what I was seeing and what they were seeing) until it's all much
more debugged and verified.

Tested:

* (me) 82599EB 2x10G NIC, RSS UDP testing.
* (verisign) not sure on the NIC (but likely 82599), 100k-200k/sec TCP
  transaction tests.

Submitted by: Marc De La Gueronniere <mdelagueronniere@verisign.com>
Sponsored by: Verisign, Inc.
2014-10-11 22:10:39 +00:00
adrian
d927fae9b7 MFC r271648 - The error bits are not valid with EOP=0; so intermediary
fragments should not be discarded.

Submitted by: Marc De La Gueronniere <mdelagueronniere@verisign.com>
Sponsored by: Verisign, Inc.
2014-10-11 22:09:46 +00:00
adrian
8128ee7851 Merge r271647 - Fix a double-free of mbufs in rx_ixgbe_discard().
fmp->buf at the free point is already part of the chain being freed,
  so double-freeing is counter-productive.

Submitted by:	Marc De La Gueronniere <mdelagueronniere@verisign.com>
Sponsored by:	Verisign, Inc.
2014-10-11 22:08:53 +00:00
kib
82d8b580fd MFC r272538:
Slightly reword comment.  Move code, which is described by the
comment, after it.
2014-10-11 18:01:09 +00:00
kib
149982a012 MFC r272536:
Add kernel option KSTACK_USAGE_PROF.
2014-10-11 17:49:51 +00:00
gjb
d9503cbf77 Switch stable/10 back to -PRERELEASE now that releng/10.1 is
branched.

Sponsored by:	The FreeBSD Foundation
2014-10-11 16:16:05 +00:00
ae
cd29b4a4d0 MFC r272487:
Add UUID of FreeBSD slice to GPT scheme.
2014-10-11 06:04:44 +00:00
jhb
5595ee4003 MFC 270828,271487,271495:
Add sysctls to export the BIOS SMAP and EFI memory maps along with
handlers in the sysctl(8) binary to format them.
2014-10-10 20:47:23 +00:00
bz
42c3399b29 MFC r272713:
Since introducing the extra mapping in r250103 (head) for architectural performance
 events we have actually counted 'Branch Instruction Retired' when people
 asked for 'Unhalted core cycles' using the 'unhalted-core-cycles' event mask
 mnemonic.

 Reviewed by:		jimharris
 Discussed with:	gnn, rwatson
Sponsored by:		DARPA/AFRL
2014-10-10 12:02:34 +00:00
smh
4347b3c38b MFC r272474:
Fix various issues with zvols

Sponsored by:	Multiplay
2014-10-10 01:01:04 +00:00
smh
303356caa9 MFC r271589:
Added missing ZFS sysctls

This also includes small additional direct changes as it still uses the old
way of handling tunables.

Sponsored by:	Multiplay
2014-10-10 00:51:23 +00:00
smh
b231fd93a0 MFC r271754:
Remove unused ZFS ARC functions

Sponsored by:	Multiplay
2014-10-10 00:28:19 +00:00
smh
7e6d3acc4d MFC r271802:
Add dtrace probe support for zfs SET_ERROR(..)

MFC r271873:
Fix static kernel build with options ZFS

MFC r271819:
Remove sys/types.h include as per style (9)

Sponsored by:	Multiplay
2014-10-10 00:26:00 +00:00
smh
227e064147 MFC r270759:
Refactor ZFS ARC reclaim logic to be more VM cooperative

MFC r270861:
Ensure that ZFS ARC free memory checks include cached pages

MFC r272483:
Refactor ZFS ARC reclaim checks and limits

Sponsored by:	Multiplay
2014-10-10 00:12:16 +00:00
hrs
fcd622891b MFC r271628:
Use generic SYSCTL_* macro instead of deprecated SYSCTL_VNET_*.
2014-10-09 23:46:17 +00:00
hrs
39888f6b56 MFC r271545, 271610:
Make net.inet.ip.sourceroute, net.inet.ip.accept_sourceroute, and
  net.inet.ip.process_options vnet-aware.
2014-10-09 23:45:26 +00:00
hrs
fee8b9f992 MFC r269054:
Fix EtherIP.  TOS field must be initialized when the inner protocol is
  PF_LINK, and multicast/broadcast flag should always be dropped because
  the outer protocol uses unicast even when the inner address is not for
  unicast.  It had been broken since r236951 when gif_output() started to
  use IFQ_HANDOFF().
2014-10-09 23:29:44 +00:00
hrs
ca07cfe57d MFC r266248:
Cancel DAD for an ifa when the ifp has ND6_IFF_IFDISABLED as early as
  possible and do not clear IN6_IFF_TENTATIVE.  If IFDISABLED was accidentally
  set after a DAD started, TENTATIVE could be cleared because no NA was
  received due to IFDISABLED, and as a result it could prevent DAD when
  manually clearing IFDISABLED after that.
2014-10-09 23:25:57 +00:00
hrs
30afda21ea MFC r266857:
- Add rwlock to struct dadq.  A panic could occur when a large number of
    addresses performed DAD at the same time.
2014-10-09 22:56:38 +00:00
mav
70056e5be9 MFC r272650: Set CAM_SIM_QUEUED flag before calling ctl_queue() to avoid race.
PR:		194128
Submitted by:	Scott M. Ferris <smferris@gmail.com>
Sponsored by:	EMC/Isilon Storage Division
2014-10-09 05:28:11 +00:00
ae
142c064467 MFC r271307:
Add the ability to set `prefer_source' flag to an IPv6 address.
  It affects the IPv6 source address selection algorithm (RFC 6724)
  and allows override the last rule ("longest matching prefix") for
  choosing among equivalent addresses. The address with `prefer_source'
  will be preferred source address.
2014-10-09 02:49:33 +00:00
tuexen
5c61a9046a MFC r272706:
Fix a bug introduced in
https://svnweb.freebsd.org/base?view=revision&revision=272347
2014-10-08 15:45:15 +00:00
neel
a70300211f MFC r272270:
tty_rel_free() can be called more than once for the same tty so make sure
that the tty is dequeued from 'tty_list' only the first time.
2014-10-08 04:35:09 +00:00
bryanv
69c5e8194e MFC 272550:
Remove stray uma_mtx lock/unlock in zone_drain_wait()

  Callers of zone_drain_wait(M_WAITOK) do not need to hold (and were not)
  the uma_mtx, but we would attempt to unlock and relock the mutex if we
  had to sleep because the zone was already draining. The M_NOWAIT callers
  may hold the uma_mtx, but we do not sleep in that case.
2014-10-08 04:07:07 +00:00
avg
56f2d33977 MFC r271609: add gptzfsboot.8, zfsboot.8 and zfsloader.8 manual pages 2014-10-07 13:35:34 +00:00
ae
f7ad542948 MFC r272176:
Keep list of lagg ports sorted by if_index.
2014-10-07 07:52:47 +00:00
araujo
6b6a0e5b05 Make external NFS clients know when files have their attributes changed and
avoid cache the file's state indefinitely. The va_filerev is what is sent
to the client as the "change" attribute, the client is periodically fetching
the attributes and without this option the attribute remains as some garbage
value.

Phabric:	D905
Reported by:	Kevin Buhr <buhr@asaurus.net>
Reviewed by:	rmacklem, delphij
Approved by:	delphij
Obtained from:	r272467
Sponsored by:	QNAP Systems Inc.
2014-10-07 06:00:09 +00:00
asomers
f906790c87 MFC r265232
Fix a panic caused by doing "ifconfig -am" while a lagg is being destroyed.
The thread that is destroying the lagg has already set sc->sc_psc=NULL when
the "ifconfig -am" thread gets to lacp_req().  It tries to dereference
sc->sc_psc and panics.  The solution is for lacp_req() to check the value of
sc->sc_psc.  If NULL, harmlessly return an lacp_opreq structure full of
zeros.  Full details in GNATS.

PR:	189003
2014-10-06 23:17:01 +00:00
delphij
b754ead530 MFC r271532: MFV r271515:
Add a new tunable/sysctl, vfs.zfs.free_max_blocks, which can be used to
limit how many blocks can be free'ed before a new transaction group is
created.  The default is no limit (infinite), but we should probably have
a lower default, e.g. 100,000.

With this limit, we can guard against the case where ZFS could run out of
memory when destroying large numbers of blocks in a single transaction
group, as the entire DDT needs to be brought into memory.

Illumos issue:
    5138 add tunable for maximum number of blocks freed in one txg
2014-10-06 17:27:49 +00:00
tuexen
dcccd3d8ca MFC r272469:
UDP/IPv6 and UDPLite/IPv6 require a checksum. So check for it.
2014-10-06 17:14:31 +00:00
tuexen
ec9e40767d MFC r272408:
Check for UDP/IPv6 packets that the length in the UDP header is at least
the minimum. Make the check similar to the one for UDPLite/IPv6.
2014-10-06 17:12:03 +00:00