Sascha Wildner [Fri, 12 Aug 2011 21:08:08 +0000 (23:08 +0200)]
Merge branch 'vendor/AWK'
Sascha Wildner [Fri, 12 Aug 2011 21:07:23 +0000 (23:07 +0200)]
Import awk-
20110810.
* /pat/, \n /pat/ {...} is now legal, though bad style to use.
* added checks to new -v code that permits -vnospace
* removed fixed limit on number of open files
* fixed day 1 bug that resurrected deleted elements of ARGV when
used as filenames (in lib.c).
* minor type fiddles to make gcc -Wall -pedantic happier (but not
totally so)
* split(s, a, //) now behaves the same as split(s, a, "")
* another fix to avoid core dump with delete(ARGV)
Sascha Wildner [Fri, 12 Aug 2011 02:43:38 +0000 (04:43 +0200)]
kernel/x86_64: Remove bogus and unused file.
Matthew Dillon [Thu, 11 Aug 2011 21:38:09 +0000 (14:38 -0700)]
kernel - Fix deadlock w/recent vm_map work
* Fix a deadlock where a vm_page is being held PG_BUSY throgh a vm_map
relocking operation. This can deadlock against the attempt to busy
a vm_page while holding a vm_map lock.
* The solution is a bit of a hack. Currently allow the relock attempt to
timeout and force a retry of the VM fault, which unlocks and relocks
everything. This is not the best solution but the problem occurs
fairly rarely so for now it should be an acceptable workaround.
Reported-by: ftigeot, Studbolt
Sascha Wildner [Thu, 11 Aug 2011 18:31:01 +0000 (20:31 +0200)]
mfi(4): Merge LSI's latest driver changes (updates us to version 3.981).
This adds support for a number of cards (according to LSI's README):
* LSI MegaRAID SAS 9240-4i
* LSI MegaRAID SAS 9240-8i
* LSI MegaRAID SAS 9260-4i
* LSI MegaRAID SAS 9260-8i
* LSI MegaRAID SAS 9260DE-8i
* LSI MegaRAID SAS 9260-16i
* LSI MegaRAID SAS 9261-8i
* LSI MegaRAID SAS 9280-4i4e
* LSI MegaRAID SAS 9280-8e
* LSI MegaRAID SAS 9280DE-8e
* LSI MegaRAID SAS 9280-16i4e
* LSI MegaRAID SAS 9280-24i4e
It was tested by Tomi Juvonen <tomi.juvonen@kenou.biz> on an
IBM ServeRAID M1015 controller using LSI's 9240-8i IR firmware.
Sascha Wildner [Thu, 11 Aug 2011 18:28:48 +0000 (20:28 +0200)]
condvar.9: Mention that cv_broadcastpri()'s pri parameter is discarded.
Sascha Wildner [Thu, 11 Aug 2011 18:28:25 +0000 (20:28 +0200)]
<sys/condvar.h>: The cv_broadcastpri() macro needs to take a pri argument.
François Tigeot [Thu, 11 Aug 2011 16:13:11 +0000 (18:13 +0200)]
Mark the arcmsr driver MPSAFE
François Tigeot [Sat, 6 Aug 2011 15:29:06 +0000 (17:29 +0200)]
Implement a new vfs function, vfs_account()
It will be used to implement user and group disk space accounting
with possible filesystem-specific integration
Sascha Wildner [Wed, 10 Aug 2011 19:16:49 +0000 (21:16 +0200)]
acpi(4): Remove bogus line from the Makefile.
Sepherosa Ziehau [Wed, 10 Aug 2011 14:33:34 +0000 (22:33 +0800)]
msk(4): Add support for 88E8059
Obtained-from: FreeBSD 207445
Sepherosa Ziehau [Wed, 10 Aug 2011 11:57:59 +0000 (19:57 +0800)]
msk(4): Disable non-ASF packet flushing on Yukon Extreme.
This prevents Yukon Extreme from generating pause frame storm.
Obtained-from: FreeBSD 207442
Sepherosa Ziehau [Wed, 10 Aug 2011 11:49:06 +0000 (19:49 +0800)]
msk(4): RX_GMF_{LP,UP}_THR are 16bits registers
Obtained-from: FreeBSD 207409
Sepherosa Ziehau [Wed, 10 Aug 2011 11:44:30 +0000 (19:44 +0800)]
msk(4): PCI_OUR_REG_* and PCI_CFG_REG_* should be accessed indirectly
Obtained-from: FreeBSD 205161 w/ mod
Sepherosa Ziehau [Wed, 10 Aug 2011 11:30:51 +0000 (19:30 +0800)]
msk(4): Enable flow-control only if link is full-duplex
Obtained-from: FreeBSD 204540
Sepherosa Ziehau [Wed, 10 Aug 2011 09:48:31 +0000 (17:48 +0800)]
msk(4): Don't hardcod register offset to set PCIe max read request size.
This should fix 88E8072 support
Obtained-from: FreeBSD 204365
Sepherosa Ziehau [Wed, 10 Aug 2011 09:47:05 +0000 (17:47 +0800)]
pci: Add function to get PCIe max read request size
Sepherosa Ziehau [Wed, 10 Aug 2011 09:11:20 +0000 (17:11 +0800)]
msk(4): Add support for 88E8057
Obtained-from: FreeBSD 199012 202827
Sepherosa Ziehau [Wed, 10 Aug 2011 09:02:14 +0000 (17:02 +0800)]
msk(4): Force link state detection, if link is not up.
It seems generation of link state change of e1000phy(4) is not reliable
on some Marvell PHYs, so we force a link state change if the link is
still not up.
Obtained-from: FreeBSD 199413
Antonio Huete Jimenez [Wed, 10 Aug 2011 09:03:48 +0000 (11:03 +0200)]
vkernel(7) - Describe diskless operation.
- Add a section describing needed tunables for diskless operation.
- Add an example on how to boot it.
- Add VKERNEL64 config file to FILES section.
Sascha Wildner [Wed, 10 Aug 2011 08:31:17 +0000 (10:31 +0200)]
kernel: Staticize naccess().
Sascha Wildner [Mon, 1 Aug 2011 18:09:52 +0000 (20:09 +0200)]
mfi(4) & mfiutil(8): Sync with FreeBSD
Antonio Huete Jimenez [Tue, 9 Aug 2011 19:34:35 +0000 (21:34 +0200)]
vkernel(7) - Permit multiple -e options to pass environment variables
to the virtual kernel environment.
* kern_envp is a zero-separated string which ends with two zero chars.
Now every -e option is added to kern_envp so that when the kenv_init
parses the static envirorment it can process it properly.
Sascha Wildner [Tue, 9 Aug 2011 08:38:17 +0000 (10:38 +0200)]
kernel/x86_64: Convert asm accessing segment descriptors to use 16bit ops.
This also fixes -O0 compilation of the x86_64 kernel.
Reported-by: alexh
Taken-from: FreeBSD
Sascha Wildner [Tue, 9 Aug 2011 08:38:14 +0000 (10:38 +0200)]
kernel/i386: Use 16 bit types for functions that access segment descriptors.
This is a followup commit to
e96f55de.
Taken-from: FreeBSD
Antonio Huete Jimenez [Sun, 7 Aug 2011 20:22:44 +0000 (22:22 +0200)]
mk - Add two missing files to the README file
Sascha Wildner [Sun, 7 Aug 2011 02:41:30 +0000 (04:41 +0200)]
Move static & inline to the beginnings of declarations.
Sepherosa Ziehau [Fri, 5 Aug 2011 05:53:17 +0000 (13:53 +0800)]
getsockopt: Add SO_SNDSPACE
This SOL_SOCKET get-only option is used to get the approximate free space
of send buffer.
Sepherosa Ziehau [Fri, 5 Aug 2011 02:04:58 +0000 (10:04 +0800)]
e1000phy: Add support for more Marvell PHYs
Obtained-from: FreeBSD @211046 +223688
Sepherosa Ziehau [Fri, 5 Aug 2011 02:04:41 +0000 (10:04 +0800)]
miidevs.h: regen
Sepherosa Ziehau [Fri, 5 Aug 2011 02:04:09 +0000 (10:04 +0800)]
mii: Add more PHY ids for Marvell PHY chips
François Tigeot [Thu, 4 Aug 2011 14:53:47 +0000 (16:53 +0200)]
Remove forth and other unused bits from the loader.
More precisely openfirmware, ia64, powerpc, and sparc64 specific code.
Matthew Dillon [Thu, 4 Aug 2011 04:57:48 +0000 (21:57 -0700)]
hammer - Add memory use limit option for dedup runs
* Add '-m memlimit' (default 1G) to limit memory use during a dedup run.
If the limit is reached hammer will reduce the range of CRCs in the scan
and will perform multiple passes as needed to dedup the entire filesystem.
* VerboseOpt (-v) will be verbose about crc-range truncation and multiple
passes.
Matthew Dillon [Thu, 4 Aug 2011 02:41:22 +0000 (19:41 -0700)]
hammer - Add simple I/O optimization, collect stats on new deduplications
* Add a simple I/O optimization. When dealing with CRC collisions scan
the SHA sub-tree looking for the data_offset/data_len match, allowing
us to avoid unnecessary I/O reads.
This effects data which has already been de-duplicated, so it will improve
dedup rescan times on the portion that has already been dedupped.
* Collect statistics on NEW deduplications during the pass and print them
out in the final stats as well as in the ^T stats.
Matthew Dillon [Thu, 4 Aug 2011 01:42:38 +0000 (18:42 -0700)]
hammer - Collect record statistics, implement ^T and ^C
* Add a check for ^C
* Add a check for ^T and print statistics.
* When doing the dedup for real run a pre-pass on the b-tree to count the
number of data records present so the ^T feature can print out progress.
This also has the side effect of doing locality-of-reference disk
accesses to allow the b-tree data blocks to be cached by the kernel
(or swapcache) before doing the real pass which will insert random data
block reads when verifying duplicates. Due to the efficiencies both passes
should run faster than the original combined pass, or at least not take
too much longer.
Sascha Wildner [Tue, 2 Aug 2011 15:15:29 +0000 (17:15 +0200)]
aesni(4): Remove unused variable.
Sepherosa Ziehau [Tue, 2 Aug 2011 14:09:23 +0000 (22:09 +0800)]
msk(4): Recognize 88E8402
Obtained-from; FreeBSD 198475
Sepherosa Ziehau [Tue, 2 Aug 2011 14:06:38 +0000 (22:06 +0800)]
msk(4): Remove "FIFO overrun" debug logging, which is not critical
Obtained-from: FreeBSD 198997
Sepherosa Ziehau [Tue, 2 Aug 2011 14:04:22 +0000 (22:04 +0800)]
msk(4): Yukon XL can't flush FIFO
Obtained-from: FreeBSD 197591
Sepherosa Ziehau [Tue, 2 Aug 2011 04:11:12 +0000 (12:11 +0800)]
aesni(4): Properly align the context memory using out kmalloc(9) feature
DragonFly's kmalloc(9) will return 2^n aligned memory if the allocation
size is 2^n; use this feature instead of using a local hack.
While I'm here, release the spinlock and call kmalloc(9) w/ M_WAITOK;
the check/free race is absolutely acceptable here, but the failure
of kmalloc(9) w/ M_NOWAIT is probably not accetable on the init path.
Sepherosa Ziehau [Mon, 1 Aug 2011 11:45:56 +0000 (19:45 +0800)]
msk(4): Add Yukon Extreme support
Obtained-from: FreeBSD 193293 193294 193298 193299
Alex Hornung [Sun, 31 Jul 2011 15:03:28 +0000 (16:03 +0100)]
add MLINK for _updwtmpx
Alex Hornung [Sun, 31 Jul 2011 06:00:42 +0000 (07:00 +0100)]
updwtmpx - update prototype to be void, but ...
* also expose the int-returning prototype as _updwtmpx, only for internal
DragonFly use. It seems as if most programs out there assume that
updwtmpx returns void.
* This should fix heirloom in pkgsrc
Alex Hornung [Sun, 31 Jul 2011 05:52:45 +0000 (06:52 +0100)]
pthread - adjust visibility to 'default'
* This fixes pkgsrc build issues that think the symbols are hidden.
* It's not the most elegant solution, and it would be nicer if this
could somehow be merged into BEGIN_DECLS/END_DECLS, but I couldn't
find a way to do that.
* See http://gcc.gnu.org/wiki/Visibility for more details
Sepherosa Ziehau [Sun, 31 Jul 2011 09:40:44 +0000 (17:40 +0800)]
msk(4): 88E80{35,36,37,38} are 100baseT only
Obtained-from: FreeBSD 192742
Sepherosa Ziehau [Sun, 31 Jul 2011 09:31:36 +0000 (17:31 +0800)]
msk(4): Add Yukon FE+ support
Obtained-from: FreeBSD 192734 192735 192736
Sepherosa Ziehau [Sun, 31 Jul 2011 07:22:32 +0000 (15:22 +0800)]
msk(4): Explicitly reset GMAC Controls and clear GM_GP_CTRL
Obtained-from: FreeBSD 192731
Sepherosa Ziehau [Sun, 31 Jul 2011 07:17:47 +0000 (15:17 +0800)]
msk(4): Disable HW WOL for Yukon EC Ultra
Obtained-from: FreeBSD 192728
Sepherosa Ziehau [Sun, 31 Jul 2011 06:53:23 +0000 (14:53 +0800)]
msk(4): If link is down, don't disable RX/TX MACs if they are not enabled
Obtained-from: FreeBSD 192727
Sepherosa Ziehau [Sun, 31 Jul 2011 06:50:06 +0000 (14:50 +0800)]
msk(4): Fix link status detection
Obtained-from: FreeBSD 192727
Sepherosa Ziehau [Sun, 31 Jul 2011 06:33:17 +0000 (14:33 +0800)]
msk(4): Add flag to mark the controller is 100baseTX only
Obtained-from: FreeBSD 192723
Sepherosa Ziehau [Sun, 31 Jul 2011 06:22:06 +0000 (14:22 +0800)]
msk(4): Unify PROMISC and ALLMULTI settings
Obtained-from: FreeBSD 190314
Alex Hornung [Sat, 30 Jul 2011 08:04:14 +0000 (09:04 +0100)]
csu x86_64 - properly align stack
* Properly align the stack for the _init and _fini function calls
as expected by the x86_64 ABI and gcc.
* This solves a bus error (unaligned MOVDQA) with pixman and some
other stuff using SSE.
Antonio Huete Jimenez [Fri, 29 Jul 2011 20:09:38 +0000 (22:09 +0200)]
defaults/rc.conf - Add jail_devfs_enable as a known option.
Sascha Wildner [Fri, 29 Jul 2011 14:08:04 +0000 (16:08 +0200)]
manpages: Fix some typos.
Matthew Dillon [Fri, 29 Jul 2011 08:32:22 +0000 (01:32 -0700)]
vkernel - cpu_disable_intr adjustments
* cpu_disable_intr() also disables IPI interrupts now.
Matthew Dillon [Fri, 29 Jul 2011 08:25:46 +0000 (01:25 -0700)]
kernel - Fix rare IPIQ freezes
* Ensure that an IPI interrupt is sent went waiting for an IPIQ
to drain. The IPIQ can be pushed up by passive IPIs and not
necessarily have a signal pending on the target cpu, so we
have to put the check in our drain loop rather than outside
the loop.
* Add a cpu_pause() to reduce power use for the IPIQ drain case.
* Normalize the use of gd_intr_nesting_level and clean up the
code syntax for the ipiq_optimized case.
* Remove the previous temporary IPI interrupt signaling fix, it
was incomplete.
* Fix a missing crit_exit() in the ENOENT case for
lwkt_send_ipiq3_nowait().
* Track cpu's which are in the middle of ipiq processing and
assert that a cpu is not in an IPIQ processing loop when
switching between threads.
* Normalize the use of ip->ip_npoll in the IPIQ code. This
field is used to avoid unnecessary IPI interrupts.
Matthew Dillon [Fri, 29 Jul 2011 08:21:59 +0000 (01:21 -0700)]
vkernel - do not set SA_NODEFER for SIGIO and SIGUSR1
* Do not set SA_NODEFER for SIGIO and SIGUSR1 in vkernels. This fixes a
stack overflow which can occur under heavy I/O or IPI loads.
Matthew Dillon [Fri, 29 Jul 2011 08:19:29 +0000 (01:19 -0700)]
kernel - Fix signal delivery races
* The send side was using p->p_token but the processing code from trap
was still using the mp_lock. Fix the trap processing code to use
p->p_token.
* This fixes several nasty races that can cause signals to be lost and
vkernels to freeze, and possibly other programs which depend on signals
between threads.
Matthew Dillon [Fri, 29 Jul 2011 08:14:41 +0000 (01:14 -0700)]
kernel - Minor enhancement to ddb's 'ps'
* Add a pointer value in hex for wchan field to DDB's ps output.
Matthew Dillon [Fri, 29 Jul 2011 08:12:08 +0000 (01:12 -0700)]
kernel - Fix a small race in the umtx code
* Add an additional check after registering the vm_page action before
actually going to sleep, closing a potential vm_token race.
Matthew Dillon [Thu, 28 Jul 2011 23:20:33 +0000 (16:20 -0700)]
kernel - remove debugging print_backtrace() when a vkernel is killed
* In certain cases a debugging print_backtrace() occurs when a vkernel is
killed while one or more of its cpu threads is active. This can crash
64-bit systems.
* Remove the call for now.
Matthew Dillon [Thu, 28 Jul 2011 23:19:29 +0000 (16:19 -0700)]
vkernel - Add SIGINFO support (experimental)
* Display the lwp id and the pc and sp of the thread.
Matthew Dillon [Thu, 28 Jul 2011 23:16:29 +0000 (16:16 -0700)]
vkernel - Fix lockup with [v]kernel due to missing ipiq signal
* If the target ipiq has nothing but passively queued entries the target
cpu will normally just process the ipi's on the next clock interrupt.
However, if the originating cpu is forced to live-loop waiting for the
target to the drain the target may not be aware that it needs to drain
ASAP.
* The fix is for the originating cpu to ensure that an ipi interrupt is
sent to the target cpu before live looping.
* This appears to primarily effect vkernels.
Reported-by: ftigeot, tuxillo
Thomas Nikolajsen [Thu, 28 Jul 2011 21:19:50 +0000 (23:19 +0200)]
tcplay(8): Fix SYNOPSIS & sync to usage()
Also fix typo in getopt string.
Sascha Wildner [Thu, 28 Jul 2011 18:30:04 +0000 (20:30 +0200)]
manpages: Add some missing includes.
Sascha Wildner [Thu, 28 Jul 2011 17:10:17 +0000 (19:10 +0200)]
Sascha Wildner [Thu, 28 Jul 2011 17:00:51 +0000 (19:00 +0200)]
manpages: Some little cleanup.
Sascha Wildner [Wed, 27 Jul 2011 10:58:27 +0000 (12:58 +0200)]
libprop manpages: Add missing LIBRARY sections (some added again).
Sascha Wildner [Wed, 27 Jul 2011 10:54:33 +0000 (12:54 +0200)]
kernel: Remove no longer used kernel option LOUTB.
Matthew Dillon [Wed, 27 Jul 2011 03:37:54 +0000 (20:37 -0700)]
kernel - Fix panic when the ccd device is used with swapcache
* The CCD device does not populate bp->b_xio.xio_npages or xio_pages[].
A quirk in the xio test in vn_cache_strategy() could result in a null
pointer dereference panic.
* Fix the test to avoid the panic. Note that swapcache does not currently
work well with the CCD device for stripe-crossing I/Os due to the way
CCD breaks the I/O up. It should no longer panic, though.
Matthew Dillon [Wed, 27 Jul 2011 03:36:50 +0000 (20:36 -0700)]
kernel - Fix ENOBUFS related panic in tcp_output()
* ENOBUFS in tcp_output() during connection initiation was trying to
use the persist timer to retransmit the packet lost due to lack
of mbufs, which will panic. Use the retransmission timer instead.
Reported-by: Peter Avalos <peter@theshell.com>
Matthew Dillon [Wed, 27 Jul 2011 03:34:36 +0000 (20:34 -0700)]
kernel - Adjust mbuf cached free object retention
* Adjust the cache retention in the objcache_create() calls the mbuf
subsystem makes to reduce burst ENOBUF failures. Previously the
main mbufphdr cache only retained ~150 or so free mbufs. Now it
retains up to 1/4 the limit.
Reported-by: Peter Avalos <peter@theshell.com>
Alex Hornung [Tue, 26 Jul 2011 14:13:18 +0000 (15:13 +0100)]
tcplay - update to version 0.9
new stuff of relevance to DragonFly:
* Backup header is now written on volume creation.
* custom humanize function that is more flexible in what it understands
and produces nicer results for tcplay, as well as being portable.
* support for non-512 byte sector size
* better memory freeing. Instead of just doing lazy freeing at end of
API operations or execution, free up as much as possible after each
individual operation.
* Bug fix: adjust volume size so backup header is never overwritten.
Sascha Wildner [Mon, 25 Jul 2011 20:55:15 +0000 (22:55 +0200)]
Add the lgue(4) driver for USB CDC ethernet.
Submitted-by: Yellow Rabbit <yrabbit@sdf.lonestar.org>
Sascha Wildner [Mon, 25 Jul 2011 20:15:51 +0000 (22:15 +0200)]
usr.sbin/802_11: Raise WARNS to 1.
Sascha Wildner [Mon, 25 Jul 2011 14:06:24 +0000 (16:06 +0200)]
Makefile_upgrade.inc: More typo fixes.
Sascha Wildner [Mon, 25 Jul 2011 13:35:46 +0000 (15:35 +0200)]
Makefile_upgrade.inc: Fix typos and add two more gprof related files.
Alex Hornung [Sun, 24 Jul 2011 13:45:50 +0000 (14:45 +0100)]
rtld-elf - restore old tls/tcb code
* This was ported incorrectly from FreBSD; the dtv in the TCB needs to
be updated properly.
* This fixes a fairly tricky issue that appears in threaded programs
using dlopen() and family, such as php and Java. It presented itself
as a strcmp segfault in object_match_name() due to a messed up STAILQ
->next pointer. The pointer was being messed up by the TLS code.
Reported-by: Peter Avalos, Antonio Huete, Francois Tigeot
Sepherosa Ziehau [Sun, 24 Jul 2011 11:50:08 +0000 (19:50 +0800)]
ethernet: Allow netisr handler to run directly
If the packet has already reach the correct netisr, we could simply call
the netisr handler instead of requeue the packet.
Sepherosa Ziehau [Sun, 24 Jul 2011 07:24:34 +0000 (15:24 +0800)]
ethernet: Add ether_demux(), which will send the packet to the correct netisr
It is intended to be used by the function which does not know whether
the current thread is the correct netisr for the ethernet packet or not.
Currently only ng_ether uses this function, which incorrectly called
ether_demux_oncpu(). The other two callers of ether_demux_oncpu() are
already on the correct netisr.
This paves the way to avoid requeuing the packet to the current netisr
in the ether_demux_oncpu().
Sepherosa Ziehau [Sun, 24 Jul 2011 06:48:25 +0000 (14:48 +0800)]
ethernet: Factor out ether_characterize()
Sepherosa Ziehau [Sun, 24 Jul 2011 05:44:14 +0000 (13:44 +0800)]
ethernet: Change some stats type to u_long
Venkatesh Srinivas [Sat, 23 Jul 2011 02:20:56 +0000 (19:20 -0700)]
kernel -- bpf: Clear bpf_filter mem[] to prevent kernel stack leak.
Submitted by: Guy Harris <guy@alum.mit.edu>
Sascha Wildner [Fri, 22 Jul 2011 16:19:25 +0000 (18:19 +0200)]
gdb(1): Fix the dreaded "xml-builtin.c already exists" quickworld error.
The feature-to-c.sh script has a check that outputs this error if the
file exists but would have to be regenerated (as can be the case when
quickworlding).
Because fixing it in the script would take more lines than fixing it
in the Makefile, I do the latter (the effect is the same).
Matthew Dillon [Fri, 22 Jul 2011 15:55:06 +0000 (08:55 -0700)]
HAMMER VFS - Add code to reduce frontend vs flusher locking conflicts
* Implement a Pulse-width modulated time-domain multiplexer on B-Tree
cursor operations which splits fronttend operations from backend flusher
operations.
The larger the number of inodes undergoing reclamation, the greater the
pulse width given over to locking operations initiated by the flusher.
Frontend operations (typically reads) are given smaller and smaller
slot widths as the flusher gets more overloaded.
The advantage of this mechanism is that we are not simply imposing a
delay in the reader, we are imposing a variable-length time slot during
which the reader is able to grab a B-Tree cursor. This allows linear
and partially cached operations to 'burst' many operations within the
slot, allowing them run at nearly full speed and not imposing an artificial
performance limitation for linear I/O.
* This solves a major deadlock stalling issue that prevented the flusher
from being able to actually flush sufficient I/O to keep up with the
inode backlog that e.g. blogbench creates, causing excessive locking
stalls throughout the HAMMER filesystem, particularly when many file
inodes are being cycled through.
* When running blogbench --iterations=150 prior to this change write
performance would drop to unacceptable levels and read operations
(particularly things which cycle through inodes like 'find' and 'ls')
would stall for unacceptably long periods of time, often resulting
in diagnostic cache_lock messages on the console showing namecache
blockages in excess of 100 seconds.
With the change namecache blockages are significantly reduced in both
frequency and duration, find and ls operations are able to run
concurrently with a heavy multi-file write load, and blogbench shows
improved write performance while still giving a reasonable priority to
read operations (which is what we want).
* Rename a few of the sysctls to normalize internal vs external variable
names.
Sepherosa Ziehau [Fri, 22 Jul 2011 10:29:11 +0000 (18:29 +0800)]
netisr: Add hashcheck method to check and adjust hw provided hash
Currently only IPv4 provides the non-default hashcheck method
For IPv4's hashcheck:
- Fragements are always delivered to CPU0
- non-TCP and non-UDP packets are passed to software for hash calculation
Sepherosa Ziehau [Fri, 22 Jul 2011 02:37:00 +0000 (10:37 +0800)]
ioapic: Disable unused GSI instead of leaving it in unknown state
Sepherosa Ziehau [Fri, 22 Jul 2011 01:54:03 +0000 (09:54 +0800)]
ioapic: Don't do the default IRQ configure, if it is mapped to different GSI
The problem went on unnoticed for such a long time, mainly because most of
the mobos only map IRQ0 to GSI2, and GSI0 is taken as being hooked to the
external interrupt source like i8259.
However, the bug reporter's mobo has an extra IRQ source override entry in
ACPI MADT, which maps IRQ9 to GSI21. The problem reported is actually
caused by:
GSI is configured in the ascending order, so GSI9 is configured before GSI21.
Since there is no explicit IRQ to GSI mapping for GSI9, by using the default
1:1 mapping IRQ9 will be configured. When GSI21 is configured, due to the
explicit IRQ to GSI mapping, IRQ9 will be configured again, booo
Reported-by: Siju George <sgeorge.ml@gmail.com>
John Marino [Thu, 21 Jul 2011 19:07:03 +0000 (21:07 +0200)]
BSD gprof/4: Remove old gprof versions from code base
Gprof4 was inherited from FreeBSD, but removed from there in March 2002.
It was supposed to handle 8-byte counters which the standard gprof didn't
do at the time, but was later upgraded. Gprof4 probably should not have
made it to DragonFly 1.0. :)
BSD gprof has been replaced by GNU gprof, so let's retire it formally.
John Marino [Thu, 21 Jul 2011 18:01:15 +0000 (20:01 +0200)]
gprof: Replace BSD gprof and gprof4 with gnu gprof
This stops old gprof and gprof4 from getting built, and links gnu prof
to /usr/bin.
Sascha Wildner [Thu, 21 Jul 2011 08:19:04 +0000 (10:19 +0200)]
kernel: Remove some old ISA only drivers.
This commits removes the following old ISA specific drivers, most of which
have been removed in FreeBSD, too:
aha(4) - Adaptec 154xA, 154xB, 154xC, 154xCF and 154xCP SCSI cards
asc(4) - GI1904-based hand scanner
ctx - ImageNation CORTEX-I Frame Grabber
dgb(4) - DigiBoard serial cards (digi(4) driver remains)
el(4) - 3Com Etherlink 3C501 NIC
gpib - National Instruments AT-GPIB and AT-GPIB/TNT boards
gsc(4) - Genius GS-4500 hand scanner
ie(4) - Intel i82586 based 8 and 16 bit ISA ethernet cards
labpc(4) - National Instruments LABPC and LABPC+ driver
le(4) - DEC EtherWORKS II/III ethernet cards
mse(4) - Bus and InPort mouse driver
rc(4) - RISCom/8 multiport serial cards
rdp(4) - RealTek RTL8002 based pocket ethernet adapters
spigot - Creative Labs Spigot video acquisition board
tw(4) - TW-523 X-10 interface
wl(4) - T1 speed ISA/radio LAN card
wt(4) - Archive/Wangtek cartridge tape driver
Along with those, a number of associated programs are removed, too:
sasc(1) sgsc(1) wlconfig(8) xten(1) xtend(8)
John Marino [Wed, 20 Jul 2011 22:26:13 +0000 (00:26 +0200)]
gold: Fix hardcoded library search path
Gold was hard-coded to search "/lib" and "/usr/lib" directories at a
minimum. The "/lib" directory was removed and a prefix was passed
via CFLAGS to use a different default library path for the cross-tool
version.
Alex Hornung [Wed, 20 Jul 2011 20:11:11 +0000 (21:11 +0100)]
libdm - add dummy dm_udev_set_sync_support()
Michael Neumann [Mon, 18 Jul 2011 23:00:14 +0000 (01:00 +0200)]
if_bge: Support more chipsets
Add (limited) support for 5761, 5784, 57780 chipsets.
Tested with a Broadcom BCM5723. It works when media is set
before an IP is being assigned, otherwise it panics. Also panics
a lot on a SMP system.
Obtained from: FreeBSD rev 197832.
Matthew Dillon [Mon, 18 Jul 2011 22:02:26 +0000 (15:02 -0700)]
kernel - Fix several IPV6 issues
* Replace old critical sections with a lock around global structures,
primarily the default route list for IPV6. This fixes numerous MP
races.
* Use rtrequest*_global() instead of rtrequest*() and remove user route
socket notification (the rtrequest*_global() code should do the
notification). This fixes several issues with the per-cpu route table
getting out of sync and triggering panics, and also appears to fix
several connectivity issues.
Reported-by: Francois Tigeot <ftigeot@wolfpond.org>
Matthew Dillon [Mon, 18 Jul 2011 06:45:11 +0000 (23:45 -0700)]
kernel - Additional fixes for vm_prefault issue
* Fix a case where map->timestamp was being tested without holding the
map lock, which can race. We now relock the map prior to testing
map->timestamp.
* Fix a case where map->timestamp was being adjusted with the map lock
released.
Reported-by: Peter Avalos <peter@theshell.com>
Sascha Wildner [Mon, 18 Jul 2011 03:55:09 +0000 (05:55 +0200)]
cryptsetup/dmsetup/lvm: Fix LDADD/DPADD.
Sascha Wildner [Mon, 18 Jul 2011 03:10:26 +0000 (05:10 +0200)]
cryptdisks(8): Fix LDADD/DPADD.
Sascha Wildner [Sun, 17 Jul 2011 11:57:22 +0000 (13:57 +0200)]
Add missing DPADD's for library dependencies.