Commit Graph

202003 Commits

Author SHA1 Message Date
smh
502601a540 Refactor ZFS ARC reclaim logic to be more VM cooperative
Prior to this change we triggered ARC reclaim when kmem usage passed 3/4
of the total available, as indicated by vmem_size(kmem_arena, VMEM_ALLOC).

This could lead large amounts of unused RAM e.g. on a 192GB machine with
ARC the only major RAM consumer, 40GB of RAM would remain unused.

The old method has also been seen to result in extreme RAM usage under
certain loads, causing poor performance and stalls.

We now trigger ARC reclaim when the number of free pages drops below the
value defined by the new sysctl vfs.zfs.arc_free_target, which defaults
to the value of vm.v_free_target.

Credit to Karl Denninger for the original patch on which this update was
based.

PR:		191510 and 187594
Tested by:	dteske
MFC after:	1 week
Relnotes:	yes
Sponsored by:	Multiplay
2014-08-28 19:50:08 +00:00
smh
8c55516430 Fix build breakage caused by ixl driver
Fix missing includes and invalid vars in ixl / ixlv driver added by r270346
which caused build failures for GENERIC kernel after it was made default
by r270755.

X-MFC-With: r270346 / r270755
Sponsored by:	Multiplay
2014-08-28 18:59:39 +00:00
tijl
f71e540b0a In r253839 the default behaviour of ld(1) was changed such that all
libraries that need to be linked into an executable or library have to be
listed on the command line explicitly.  This commit fixes a bug in ld(1)
where it would scan dependencies of the libraries on the command line and
link them if needed if they were also found in ld.so.cache.

The important bit of the patch is the initialisation of needed.by such that
libraries found by scanning dependencies are marked as such and not used in
the link.

The patch is a backport of binutils git commit
d5c8b1f8561426b41aa5330ed60f578178fe6be2

The author gave permission to use it under GPLv2 terms.

PR:		192062
Exp-run by:	antoine
MFC after:	1 week
2014-08-28 18:33:42 +00:00
jfv
3a41cafaa4 Add XL710 device entries to NOTES, and directories to the module
Makefile so they will be built.

MFC after: 1 day
2014-08-28 17:40:19 +00:00
rodrigc
57eafb64c6 Use "file -s", so that we can run vmrun.sh against special devices such
as /dev/md memory file systems

Reviewed by: neel
2014-08-28 16:26:13 +00:00
dumbbell
948d3bc127 drm/radeon: Fix a memory leak when radeonkms is unloaded
MFC after:	1 week
2014-08-28 12:40:31 +00:00
ed
bb8b11b330 Unlock the right lock.
The adist_remote_lock is not held in this place, whereas the
adist_recv_list_lock lock is and is picked up during the next iteration.

I found this by annotating our libpthread with Clang's -Wthread-safety
attributes. I will send out a patch for this in the nearby future,
because it's awesome.

MFC after:	2 weeks
2014-08-28 11:50:52 +00:00
mjg
ec92f2e61c Return real parent pid in kinfo (used by e.g. ps)
Add a separate field which exports tracer pid and add a new keyword
("tracer") for ps to display it.

This is a follow up to r270444.

Reviewed by:	kib
MFC after:	1 week
Relnotes:	yes
2014-08-28 08:41:11 +00:00
adrian
a3bb3db4bf Inform the rate control code if a single frame AMPDU transmission succeeds
but has some retries.

Without this, single frame transmission in AMPDU will always look like
it succeeded fine, and thus AMRR will think it's totally fine to just
keep upping the rate upwards.

Now, this is still not quite right!  For multi-frame aggregates the
completion happens in two parts - the TX done and the BA received.
The driver is currently double accounting those a little - there's no
way to say to the rate control code "I completed X frames, Y worked fine,
there were Z retries." And it's a bit odd with iwn, as the firmware
retransmits frames for us so we don't get to see how many retransmits
happened; only that it took longer than normal.  I may have to extend
the rate control API to properly track that.

So this may keep the rate lower than it should be, but that's better
than keeping it higher than it should be.

Tested:

* 5100, STA mode
2014-08-28 07:44:59 +00:00
hselasky
c96a036708 Add description of "sysctl_remove_name()" function. 2014-08-28 04:35:38 +00:00
adrian
1f80c8d725 Fix antenna configuration, microcode version checks and rate selection
in preparation for the 5300 3x3 NIC.

During this particular adventure, I did indeed discover that a whole
swath of things made little to no sense.

Those included, and are fixed here:

* A lot of the antenna configuration bits assume the NIC has two receive
  chains.  That's blatantly untrue for NICs that don't.
* There was some disconnect between the antenna configuration when
  forming a PLCP rate DWORD (which includes the transmit antenna
  configuration), separate to the link quality antenna configuration.

  So now there's helper functions to return which antenna configurations
  to use and those are used wherever an antenna config is required.

* The 5300 does up to three stream TX/RX (so MCS0->23), however
  the link quality table has only 16 slots.  This means all of the
  rate entries are .. well, dual-stream rates.  If this is the case,
  the "last MIMO" parameter can't be 16 or it panics the firmware.
  Set it to 15.

* .. and since yes it has 16 slots, it only would try retransmitting
  from MCS8->MCS23, which can be quite .. terrible.  Hard-code the last
  two retry slots to be the lowest configured rate.

* I noticed some transmit configuration command stuff is different
  based on firmware API version, so I lifted that code from Linux.

* Add / augment some more logging to make it easier to capture this
  stuff.

Now, 3x3 is still terrible because the link quality configuration is
plainly not good enough.  I'll have to think about that.
However, the original goal of this - 3x3 operation on the Intel
5300 NIC - actually worked.

There are also rate control bugs in the way this driver handles
notifying the net80211 rate control code when AMPDU is enabled.
It always steps the rate up to the maximum rate possible - and
this eventually ends in much sadness.  I'll fix that later.

As a side note - 2GHz HT40 now works on all the NICs I have tested.

As a second side note - this exposed some bad 3x3 behaviour in
the ath(4) rate control code where it starts off at a 3-stream rate
and doesn't downgrade quickly enough.  This makes the initial
dhcp exchange take a long time.  I'll fix the ath(4) rate code
to start at a low fixed 1x1 MCS rate and step up if everything
works out.

Tested:

* Intel 2200
* Intel 2230
* Intel 5300
* Intel 5100
* Intel 6205
* Intel 100

TODO:

* Test the other NICs more thoroughly!

Thank you to Michael Kosarev <russiane39@gmail.com> for donating the
Intel 5300 NIC and pestering me about it since last year to try and
make it all work.
2014-08-28 03:18:27 +00:00
adrian
0dc0835120 Add iwn-100 firmware.
The firmware is from the Linux firmware git repository; the intel
licence is the same as other firmware blobs.

Tested: iwn1: <Intel Centrino Wireless-N 100> mem 0xf4800000-0xf4801fff irq 19 at device 0.0 on pci5
2014-08-28 00:05:02 +00:00
pluknet
baab00bf29 Fix comments on updating tzdata releases. 2014-08-27 19:34:49 +00:00
pluknet
0ce36f152f MFV of r270725, tzdata2014f
- Russia time zone changes.
- New zones: Asia/Chita and Asia/Srednekolymsk.
- Lots of changes wrt. time zone abbreviations and historical data.
- New zone tab data format.
2014-08-27 19:26:35 +00:00
jmg
68cdc022fe add scripts for generating a diff from p4...
awkdiff is the script from scottl that he got from ken a long time
ago...  It no longer lives in his home dir, so give it a new home...
This does simple massaging of p4 output to create a useful diff...

The script p4diffbranch will create a diff that includes new and
deleted files unlike the normal diff2 -b command...  So will be useful
for extracting patches from p4...  It does take a changeset that will
be used to diff against...
2014-08-27 18:56:12 +00:00
pluknet
3e933ce4b0 Vendor import of tzdata2014f.
- Russia time zone changes.
- New zones: Asia/Chita and Asia/Srednekolymsk.
- Lots of changes wrt. time zone abbreviations and historical data.
- New zone tab data format.

Obtained from:	ftp://ftp.iana.org/tz/releases/
2014-08-27 18:49:41 +00:00
jhb
5b6f86660b Correct the destroy example. The -n argument is not needed (and is not
valid).

Reported by:	mwlucas
Reviewed by:	phk
MFC after:	1 week
2014-08-27 17:44:59 +00:00
dumbbell
49e3e80d4c vt(4): If the terminal shrinks, make sure the mouse is inside the new area
MFC after:	1 week
2014-08-27 17:16:52 +00:00
dumbbell
0305dad6ea vt(4): Fix mouse cursor handling in vt_fb/creator_vt/ofwfb
There were two issues:
    1. The area given to vt_is_cursor_in_area() was adding the drawable
       area offset, something already handled by this function.
    2. The cursor was shifted on the screen by the offset of this area
       and thus was misplaced or not erased. Furthermore, when reaching
       the bottom or right borders, the cursor was either totally
       removed or not erased correctly.

MFC after:	1 week
2014-08-27 15:10:28 +00:00
hselasky
387f5b6c1a - Update the OFED Linux Emulation layer as a preparation for a
hardware driver update from Mellanox Technologies.
- Remove empty files from the OFED Linux Emulation layer.
- Fix compile warnings related to printf() and the "%lld" and "%llx"
format specifiers.
- Add some missing 2-clause BSD copyrights.
- Add "Mellanox Technologies, Ltd." to list of copyright holders.
- Add some new compatibility files.
- Fix order of uninit in the mlx4ib module to avoid crash at unload
using the new module_exit_order() function.

MFC after:	1 week
Sponsored by:	Mellanox Technologies
2014-08-27 13:21:53 +00:00
dumbbell
37439a9f6a vt(4): Recompute the drawable area when the resolution changes
This was only done when the font changed.

MFC after:	1 week
2014-08-27 11:27:48 +00:00
dumbbell
571a22a0d8 vt(4): Pause the vt_flush() timer when the screen is up-to-date
The timer is restarted whenever a window buffer is marked as dirty or
the mouse cursor moves.

There's still room for improvement. For instance, we should not mark a
window buffer as dirty when this window isn't displayed.

Review:		https://reviews.freebsd.org/D683
Reviewed by:	ray@
Approved by:	ray@
MFC after:	1 week
2014-08-27 11:08:09 +00:00
dumbbell
c340b1c78e drm: Don't "taskqueue" vt-switch if under DDB/panic situation
If DDB is active, we can't use a taskqueue thread to switch away from
the X window, because this thread can't run.

Reviewed by:	ray@
Approved by:	ray@
MFC after:	1 week
2014-08-27 10:07:08 +00:00
dumbbell
afc6b94804 vt(4): Add cngrab() and cnungrab() callbacks
They are used when a panic occurs or when entering a DDB session for
instance.

cngrab() forces a vt-switch to the console window, no matter if the
original window is another terminal or an X session. However, cnungrab()
doesn't vt-switch back to the original window currently.

MFC after:	1 week
2014-08-27 10:04:10 +00:00
dumbbell
ab9f3a65b1 vt(4): Implement basic support for KDSETMODE ioctl
With the current implementation, this allows an X11 server to tell
the console it switches a particular window in "graphics mode". This
information is used by the mouse handling code to ignore sysmouse events
in the window taken by the X server: only him should receive those
events.

Reported by:	flo@, glebius@, kan@
Tested by:	flo@
Reviewed by:	kan@
MFC after:	1 week
2014-08-27 09:34:41 +00:00
hrs
2246480926 - Use $local_startup to load rc.conf.d/* scripts.
- Document support of rc.conf.d/<dir>/* introduced in r270392.

Discussed with:	bapt
2014-08-27 09:19:22 +00:00
kib
1e11271b7e Regen. 2014-08-27 01:02:19 +00:00
kib
75f74b437b Fix handling of the third argument for fcntl(2). The native syscall
uses long for arg, which needs translation.

Discussed with and tested by:	mjg
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
2014-08-27 01:02:02 +00:00
grehan
4900dd0aa5 Implement the 0x2B SUB instruction, and the OR variant of 0x81.
Found with local APIC accesses from bitrig/amd64 bsd.rd, 07/15-snap.

Reviewed by:	neel
MFC after:	3 days
2014-08-27 00:53:56 +00:00
kib
db6452e4f6 Remove stray newline. 2014-08-27 00:48:09 +00:00
bapt
3c595c7dbf Document the new ${LOCALBASE}/etc/rc.conf.d in rc.conf(5)
MFC after:	1 week
2014-08-26 22:54:54 +00:00
gavin
00a1947ef5 Fix xref, pam(8) -> pam(3)
PR:		193045
Submitted by:	rsimmons0 gmail com
MFC after:	3 days
2014-08-26 22:39:24 +00:00
bapt
56ed7afe46 Allow to configure services from ${LOCALBASE}/etc/rc.conf.d
Reviewed by:	bdrewery
MFC after:	1 week
Relnotes:	yes
2014-08-26 22:33:34 +00:00
bapt
bcf2ddb809 Allow mailwrapper to use mailer.conf from localbase (respecting LOCALBASE env var if set)
Phabric:	https://reviews.freebsd.org/D412
Reviewed by:	bdrewery
MFC after:	2 weeks
Relnotes:	yes
2014-08-26 22:20:02 +00:00
jhb
50a0947645 Clarify that the -c argument clears the list of tracepoints specified by
-t (it does not clear all tracepoints).

Submitted by:	jmg, Eric van Gyzen <eric@vangyzen.net>
MFC after:	1 week
2014-08-26 21:21:57 +00:00
tuexen
368ac164f9 Announce SCTP support in the kern.features sysctl variables.
MFC after: 3 days
2014-08-26 21:15:34 +00:00
gjb
82a59e9c6d Add svnlite.1 to CLEANFILES.
MFC after:	3 days
X-MFC-To:	stable/10 only
Sponsored by:	The FreeBSD Foundation
2014-08-26 20:40:12 +00:00
gjb
1eef0abee4 Add host.1 to CLEANFILES.
MFC after:	3 days
X-MFC-To:	stable/10 only
Sponsored by:	The FreeBSD Foundation
2014-08-26 19:36:47 +00:00
gjb
b01f06476c Add gnugrep.1 to CLEANFILES.
MFC after:	3 days
Sponsored by:	The FreeBSD Foundation
2014-08-26 19:36:34 +00:00
dumbbell
94c90531be vt(4): When creating a window buffer, fill it entirely
... not just the visible part.

This fixes a bug where, when switching from eg. vt_vga to vt_fb (ie. the
resolution goes up), the originally hidden, uninitialized area of the
buffer is displayed on the screen. This leads to a missing text cursor
when it's over an unitialized area.

This was also visible when selecting text: the uninitialized area was
not highlighted.

Internally, this area was zeroed: characters were all 0x00000000,
meaning the foreground and background color was black. Now, everything
is filled with a space with a gray foreground color, like the visible
area.

While here, remove the check for the mute flag and always use
TERMINAL_NORM_ATTR as the character attribute (ie. gray foreground,
black background).

MFC after:	1 week
2014-08-26 17:48:05 +00:00
alc
e934ec28fb Back in the days when the kernel was single threaded, testing
"vm_paging_target() > 0" was a reasonable way of determining if the
inactive queue scan met its target.  However, now that other threads
can be allocating pages while the inactive queue scan is running, it's
an unreliable method.  The effect of it being unreliable is that we
can start swapping out processes when we didn't intend to.

This issue has existed since the kernel was multithreaded, but the
changes to the inactive queue target in 10.0-RELEASE have made its
effects visible.

This change introduces a more direct method for determining if the
inactive queue scan met its target that is not affected by the actions
of other threads.

Reported by:	Steve Polyack
Tested by:	pho, Steve Polyack (an earlier version)
MFC after:	1 week
Sponsored by:	EMC / Isilon Storage Division
2014-08-26 16:40:20 +00:00
glebius
1ac724b05e - Remove socket file operations declaration from sys/file.h.
- Make them static in sys_socket.c.
- Provide generic invfo_truncate() instead of soo_truncate().

Sponsored by:	Netflix
Sponsored by:	Nginx, Inc.
2014-08-26 14:44:08 +00:00
ae
f2499d908c Remove leading '/' from hardlink name when removing them from the
regular file name. This fixes the problem, when bsdtar can not create
hardlinks to extracted files.

Silence from:	kientzle@
MFC after:	1 week
Sponsored by:	Yandex LLC
2014-08-26 13:11:38 +00:00
se
68084eb457 Back-out the references to vt(4) from this man-page. It appears that the
splash support in vt is implemented within the vt driver and does not
depend on splash(4).

Submitted by:	marius@alchemy.franken.de
2014-08-26 11:13:07 +00:00
pluknet
d6112f2a13 Missed comma. 2014-08-26 11:04:51 +00:00
se
aee8320036 More man pages that need to know about vt in addition to syscons.
MFC after:	3 dayS
2014-08-26 10:55:08 +00:00
se
d3bf0d268e Update man-pages to correctly refer to changed pathes and naming conventions
for systems with vt(4) consoles.

MFC after:	3 days
2014-08-26 09:40:14 +00:00
se
6b334f1506 Remove band.aid that made kbdcontrol lookup keymap files in the syscons
path even under vt, which is no longer useful, since the syscons keymap
files have been converted and committed for use by vt.
2014-08-26 09:37:43 +00:00
ngie
d851cce521 Introduce missing definition for LIBTERMCAPW
Some Makefiles expect this value to exist

Approved by: rpaulo (mentor)
MFC after: 5 days
Phabric: D675 (as part of a larger diff)
PR: 192762
2014-08-26 09:12:41 +00:00
ngie
59d7f5e155 Convert LIBCURSES to LIBNCURSES to fix "make checkdpadd"
Also, add a missing LIBPANEL dependency for lldb

Approved by: rpaulo (mentor)
Suggested by: brooks
MFC after: 5 days
Phabric: D675 (as part of a larger diff)
PR: 192762
2014-08-26 09:10:28 +00:00