8 years agokernel - Fix rare IPIQ freezes
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

* 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.

8 years agovkernel - do not set SA_NODEFER for SIGIO and SIGUSR1
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.

8 years agokernel - Fix signal delivery races
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

* 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.

8 years agokernel - Minor enhancement to ddb's 'ps'
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.

8 years agokernel - Fix a small race in the umtx code
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.

8 years agokernel - remove debugging print_backtrace() when a vkernel is killed
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.

8 years agovkernel - Add SIGINFO support (experimental)
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.

8 years agovkernel - Fix lockup with [v]kernel due to missing ipiq signal
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

* 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
8 years agotcplay(8): Fix SYNOPSIS & sync to usage()
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.

8 years agomanpages: Add some missing includes.
Sascha Wildner [Thu, 28 Jul 2011 18:30:04 +0000 (20:30 +0200)]
manpages: Add some missing includes.

8 years agoprop_dictionary.3: Reapply 4bba5a94fad7a40a25b58fff23a76b3c0bee80ee.
Sascha Wildner [Thu, 28 Jul 2011 17:10:17 +0000 (19:10 +0200)]
prop_dictionary.3: Reapply 4bba5a94fad7a40a25b58fff23a76b3c0bee80ee.

8 years agomanpages: Some little cleanup.
Sascha Wildner [Thu, 28 Jul 2011 17:00:51 +0000 (19:00 +0200)]
manpages: Some little cleanup.

8 years agolibprop manpages: Add missing LIBRARY sections (some added again).
Sascha Wildner [Wed, 27 Jul 2011 10:58:27 +0000 (12:58 +0200)]
libprop manpages: Add missing LIBRARY sections (some added again).

8 years agokernel: Remove no longer used kernel option LOUTB.
Sascha Wildner [Wed, 27 Jul 2011 10:54:33 +0000 (12:54 +0200)]
kernel: Remove no longer used kernel option LOUTB.

8 years agokernel - Fix panic when the ccd device is used with swapcache
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.

8 years agokernel - Fix ENOBUFS related panic in tcp_output()
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>
8 years agokernel - Adjust mbuf cached free object retention
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>
8 years agotcplay - update to version 0.9
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.

8 years agoAdd the lgue(4) driver for USB CDC ethernet.
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>
8 years agousr.sbin/802_11: Raise WARNS to 1.
Sascha Wildner [Mon, 25 Jul 2011 20:15:51 +0000 (22:15 +0200)]
usr.sbin/802_11: Raise WARNS to 1.

8 years agoMakefile_upgrade.inc: More typo fixes.
Sascha Wildner [Mon, 25 Jul 2011 14:06:24 +0000 (16:06 +0200)]
Makefile_upgrade.inc: More typo fixes.

8 years agoMakefile_upgrade.inc: Fix typos and add two more gprof related files.
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.

8 years agortld-elf - restore old tls/tcb code
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
8 years agoethernet: Allow netisr handler to run directly
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.

8 years agoethernet: Add ether_demux(), which will send the packet to the correct netisr
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().

8 years agoethernet: Factor out ether_characterize()
Sepherosa Ziehau [Sun, 24 Jul 2011 06:48:25 +0000 (14:48 +0800)]
ethernet: Factor out ether_characterize()

8 years agoethernet: Change some stats type to u_long
Sepherosa Ziehau [Sun, 24 Jul 2011 05:44:14 +0000 (13:44 +0800)]
ethernet: Change some stats type to u_long

8 years agokernel -- bpf: Clear bpf_filter mem[] to prevent kernel stack leak.
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>

8 years agogdb(1): Fix the dreaded "xml-builtin.c already exists" quickworld error.
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

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).

8 years agoHAMMER VFS - Add code to reduce frontend vs flusher locking conflicts
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

  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

8 years agonetisr: Add hashcheck method to check and adjust hw provided hash
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

8 years agoioapic: Disable unused GSI instead of leaving it in unknown state
Sepherosa Ziehau [Fri, 22 Jul 2011 02:37:00 +0000 (10:37 +0800)]
ioapic: Disable unused GSI instead of leaving it in unknown state

8 years agoioapic: Don't do the default IRQ configure, if it is mapped to different GSI
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>
8 years agoBSD gprof/4: Remove old gprof versions from code base
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.

8 years agogprof: Replace BSD gprof and gprof4 with gnu gprof
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.

8 years agokernel: Remove some old ISA only drivers.
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)

8 years agogold: Fix hardcoded library search path
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

8 years agolibdm - add dummy dm_udev_set_sync_support()
Alex Hornung [Wed, 20 Jul 2011 20:11:11 +0000 (21:11 +0100)]
libdm - add dummy dm_udev_set_sync_support()

9 years agoif_bge: Support more chipsets
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.

9 years agokernel - Fix several IPV6 issues
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

* 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>
9 years agokernel - Additional fixes for vm_prefault issue
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

* Fix a case where map->timestamp was being adjusted with the map lock

Reported-by: Peter Avalos <peter@theshell.com>
9 years agocryptsetup/dmsetup/lvm: Fix LDADD/DPADD.
Sascha Wildner [Mon, 18 Jul 2011 03:55:09 +0000 (05:55 +0200)]
cryptsetup/dmsetup/lvm: Fix LDADD/DPADD.

9 years agocryptdisks(8): Fix LDADD/DPADD.
Sascha Wildner [Mon, 18 Jul 2011 03:10:26 +0000 (05:10 +0200)]
cryptdisks(8): Fix LDADD/DPADD.

9 years agoAdd missing DPADD's for library dependencies.
Sascha Wildner [Sun, 17 Jul 2011 11:57:22 +0000 (13:57 +0200)]
Add missing DPADD's for library dependencies.

9 years agobsd.libnames.mk: Add libkiconv, too.
Sascha Wildner [Sun, 17 Jul 2011 11:46:38 +0000 (13:46 +0200)]
bsd.libnames.mk: Add libkiconv, too.

9 years agoiasl(8): Fix library dependencies.
Sascha Wildner [Sun, 17 Jul 2011 11:23:52 +0000 (13:23 +0200)]
iasl(8): Fix library dependencies.

9 years agoacpidb(8): Fix library dependencies.
Sascha Wildner [Sun, 17 Jul 2011 11:19:46 +0000 (13:19 +0200)]
acpidb(8): Fix library dependencies.

9 years agobsd.libnames.mk: Fix thread lib path.
Sascha Wildner [Sun, 17 Jul 2011 11:18:35 +0000 (13:18 +0200)]
bsd.libnames.mk: Fix thread lib path.

9 years agoudevd(8): Fix library dependencies.
Sascha Wildner [Sun, 17 Jul 2011 11:14:17 +0000 (13:14 +0200)]
udevd(8): Fix library dependencies.

9 years agoktr.4: Document KTR_DMCRYPT.
Sascha Wildner [Sun, 17 Jul 2011 10:45:41 +0000 (12:45 +0200)]
ktr.4: Document KTR_DMCRYPT.

9 years agooptions/LINT: Sort the KTR options.
Sascha Wildner [Sun, 17 Jul 2011 10:45:26 +0000 (12:45 +0200)]
options/LINT: Sort the KTR options.

9 years agobsd.libnames.mk: Sync the library list with what we have.
Sascha Wildner [Sun, 17 Jul 2011 10:44:42 +0000 (12:44 +0200)]
bsd.libnames.mk: Sync the library list with what we have.

9 years agoFix userland profiling on x86_64 by taking FreeBSD's mcount().
Sascha Wildner [Sat, 16 Jul 2011 22:14:08 +0000 (00:14 +0200)]
Fix userland profiling on x86_64 by taking FreeBSD's mcount().

Previously, -pg compiled programs would segfault.

9 years agoktr(4): Add some sysctl descriptions for viewing with sysctl -d.
Sascha Wildner [Sat, 16 Jul 2011 19:34:50 +0000 (21:34 +0200)]
ktr(4): Add some sysctl descriptions for viewing with sysctl -d.

9 years agoupdate proplib
Alex Hornung [Sat, 16 Jul 2011 08:34:41 +0000 (09:34 +0100)]
update proplib

 * There are several bugfixes and many cosmetic fixes.

Obtained-from: NetBSD

9 years agocryptsetup - switch to libdm
Alex Hornung [Sat, 16 Jul 2011 13:59:42 +0000 (14:59 +0100)]
cryptsetup - switch to libdm

9 years agocryptdisks - switch over to libdm
Alex Hornung [Sat, 16 Jul 2011 13:46:32 +0000 (14:46 +0100)]
cryptdisks - switch over to libdm

9 years agotcplay - switch to using libdm
Alex Hornung [Sat, 16 Jul 2011 11:02:52 +0000 (12:02 +0100)]
tcplay - switch to using libdm

9 years agobsd.libnames.mk - add libdm
Alex Hornung [Sat, 16 Jul 2011 07:30:34 +0000 (08:30 +0100)]
bsd.libnames.mk - add libdm

9 years agomdoc.local - add libdm
Alex Hornung [Sat, 16 Jul 2011 07:29:33 +0000 (08:29 +0100)]
mdoc.local - add libdm

9 years agolibdm - bind into build
Alex Hornung [Fri, 15 Jul 2011 22:09:11 +0000 (23:09 +0100)]
libdm - bind into build

9 years agolibdm - a simple BSD-licensed libdevmapper
Alex Hornung [Fri, 15 Jul 2011 09:05:45 +0000 (10:05 +0100)]
libdm - a simple BSD-licensed libdevmapper

9 years agodm - sync_devs() on creation, add new dict entries
Alex Hornung [Fri, 15 Jul 2011 21:59:17 +0000 (22:59 +0100)]
dm - sync_devs() on creation, add new dict entries

 * call sync_devs() on device creation to ensure all devices are visible
   in userland immediately after return from kernel.

 * add some new, so far unusued, dict entries

 * sneak in my copyright as I've rewritten large parts of dm. That way
   at least everyone knows who to blame for broken stuff :)

9 years agodm - add message support (one-way)
Alex Hornung [Fri, 15 Jul 2011 06:45:55 +0000 (07:45 +0100)]
dm - add message support (one-way)

9 years agodm - get rid of excessive locking and redundancy
Alex Hornung [Thu, 14 Jul 2011 18:43:15 +0000 (19:43 +0100)]
dm - get rid of excessive locking and redundancy

 * Just use dev->si_drv1 for the strategy, disk ioctl and dump as the
   underlying device and 'dmv' is guaranteed not to go away. Keep the
   locked approach (dm_dev_lookup) for open, close, and mapper ioctls to
   ensure that we never rip out any node that's still in use.

 * This eliminates exclusive locking in the IO path, which should
   improve performance.

9 years agoinitrd - add tcplay root mount support
Alex Hornung [Tue, 12 Jul 2011 17:13:05 +0000 (18:13 +0100)]
initrd - add tcplay root mount support

9 years agobsd.libnames.mk - add libtcplay
Alex Hornung [Tue, 12 Jul 2011 15:48:52 +0000 (16:48 +0100)]
bsd.libnames.mk - add libtcplay

9 years agocryptdisks - add (preliminary) tcplay support
Alex Hornung [Tue, 12 Jul 2011 13:11:41 +0000 (14:11 +0100)]
cryptdisks - add (preliminary) tcplay support

9 years agomdoc.local - add libtcplay
Alex Hornung [Tue, 12 Jul 2011 13:44:23 +0000 (14:44 +0100)]
mdoc.local - add libtcplay

9 years agotcplay - bring in
Alex Hornung [Tue, 12 Jul 2011 14:09:32 +0000 (15:09 +0100)]
tcplay - bring in

 - tcplay is a fully-compatible TrueCrypt implementation, including
   cascaded ciphers, creating volumes, hidden volumes, protecting hidden
   volumes, mapping system volumes, etc... written from scratch.

9 years agodm_target_crypt - use per-instance mpipes, KTR
Alex Hornung [Wed, 13 Jul 2011 20:41:43 +0000 (21:41 +0100)]
dm_target_crypt - use per-instance mpipes, KTR

 * Add KTR support (KTR_DMCRYPT) to monitor the read and write strategy

 * Make the mpipes for reads and writes per-instance instead of for all
   targets. This solves the issue where two instances are interdependent
   and one starves the other, which will cause a deadlock. This way each
   instance is guaranteed to have some buffers.

 * Change the maximum size of the mpipes from 0.5% of physical memory to
   0.2%, as this limit is now per-instance and an average of 2 or 3
   crypt targets sounds reasonable.

9 years agoktr.4: Document the debug.ktr.resynchronize sysctl.
Sascha Wildner [Sat, 16 Jul 2011 13:32:18 +0000 (15:32 +0200)]
ktr.4: Document the debug.ktr.resynchronize sysctl.

9 years agoktr.4: Do some cleanup.
Sascha Wildner [Sat, 16 Jul 2011 12:52:17 +0000 (14:52 +0200)]
ktr.4: Do some cleanup.

9 years agokernel: Suppress the generation of unused debug.ktr.*_enable sysctls.
Sascha Wildner [Sat, 16 Jul 2011 12:44:55 +0000 (14:44 +0200)]
kernel: Suppress the generation of unused debug.ktr.*_enable sysctls.

9 years agoktr.9: Add a few words about KTR_INFO_MASTER_EXTERN().
Sascha Wildner [Sat, 16 Jul 2011 11:43:45 +0000 (13:43 +0200)]
ktr.9: Add a few words about KTR_INFO_MASTER_EXTERN().

9 years agobinutils: Build gprof with binutils 2.21.1
John Marino [Sat, 16 Jul 2011 12:35:10 +0000 (14:35 +0200)]
binutils: Build gprof with binutils 2.21.1

9 years agobinutils: Update binutils 2.21 makefiles and READMEs
John Marino [Sat, 16 Jul 2011 12:30:15 +0000 (14:30 +0200)]
binutils: Update binutils 2.21 makefiles and READMEs

9 years agoMerge branch 'vendor/BINUTILS221'
John Marino [Sat, 16 Jul 2011 12:08:11 +0000 (14:08 +0200)]
Merge branch 'vendor/BINUTILS221'


9 years agobinutils: Import binutils 2.21.1 files on vendor branch vendor/BINUTILS221
John Marino [Sat, 16 Jul 2011 11:41:57 +0000 (13:41 +0200)]
binutils: Import binutils 2.21.1 files on vendor branch

9 years agoktr.4: Forgot an .El
Sascha Wildner [Sat, 16 Jul 2011 11:08:23 +0000 (13:08 +0200)]
ktr.4: Forgot an .El

9 years agoktr.4/ktr.9: Update and fix various things in our ktr manual pages.
Sascha Wildner [Sat, 16 Jul 2011 11:03:56 +0000 (13:03 +0200)]
ktr.4/ktr.9: Update and fix various things in our ktr manual pages.

* Document the ktr sysctls.

* KTR_INFO()'s maskbit is not unused as the manpage claims. Add a few
  words about it.

* Remove an obsolete reference to 'ptr'.

9 years agoktr(4): Ensure that KTR_ENTRIES is 2^n and document that it has to be.
Sascha Wildner [Sat, 16 Jul 2011 09:52:08 +0000 (11:52 +0200)]
ktr(4): Ensure that KTR_ENTRIES is 2^n and document that it has to be.

Reported-by: alexh
9 years agogdbinit: Fix typo.
Sascha Wildner [Fri, 15 Jul 2011 16:27:56 +0000 (18:27 +0200)]
gdbinit: Fix typo.

9 years agokernel - Add debugging and attempt to fix vm_prefault issue
Matthew Dillon [Thu, 14 Jul 2011 01:21:10 +0000 (18:21 -0700)]
kernel - Add debugging and attempt to fix vm_prefault issue

* Add debugging assertions and attempt to fix a race in the vm_prefault
  code when running through backing_object chains.

* The fix may be incomplete, we really need a way to determine whether any
  chain element has changed state during the scan.  The generation count
  may be too excessive as it also covers vm_page insertions.

Reported-by: Peter Avalos <peter@theshell.com>
9 years agogdbinit: Some little simplification.
Sascha Wildner [Tue, 12 Jul 2011 19:02:07 +0000 (21:02 +0200)]
gdbinit: Some little simplification.

9 years agogdbinit: Add a function to show the unread portion of the kernel msgbuf.
Sascha Wildner [Tue, 12 Jul 2011 18:39:17 +0000 (20:39 +0200)]
gdbinit: Add a function to show the unread portion of the kernel msgbuf.

kgdb only shows this at the start via a hard coded function. This
function is handy if you want to see it again and are too lazy to
scroll up or when it's out of the scrollback.

9 years agokernel/printcpuinfo(): Sync feature bit descriptions with FreeBSD.
Sascha Wildner [Mon, 11 Jul 2011 20:18:18 +0000 (22:18 +0200)]
kernel/printcpuinfo(): Sync feature bit descriptions with FreeBSD.

9 years agovga(4): Remove a bogus check.
Sascha Wildner [Mon, 11 Jul 2011 17:44:46 +0000 (19:44 +0200)]
vga(4): Remove a bogus check.

These are the remains of a larger chunk of code that I removed in
4e193d20. It was used to determine whether a MGA, CGA, EGA or VGA
was present in the box. I left the check in at the time because I
thought, why not?

However, ASpeed's VGA BIOS (at least as found on some Tyan S8230*
series motherboards) seems to have some flaws and ends up returning
0xf instead of 0x9. This caused vga(4) initialization to fail early
in the boot and no kernel messages would go to the screen.

Since the only thing that interests us is whether a VGA is present
or not, remove this check. There are other tests later on that will
detect what we want (such as checking the CRTC's address).

Reported-by: Francois Tigeot <ftigeot@wolfpond.org>
9 years agomsk(4): Pass through mii_mediachg() return value
Sepherosa Ziehau [Mon, 11 Jul 2011 07:01:53 +0000 (15:01 +0800)]
msk(4): Pass through mii_mediachg() return value

Obtained-from: FreeBSD 192720

9 years agomsk(4): Align RX buffer on 8bytes for hardware w/ ram buffer
Sepherosa Ziehau [Mon, 11 Jul 2011 06:50:07 +0000 (14:50 +0800)]
msk(4): Align RX buffer on 8bytes for hardware w/ ram buffer

Add another hardware bug workaround for Yukon II controllers that
have hardware ram buffer. The silicon bug seem to be triggered by
pause frames if receive buffer is not aligned on FIFO word(8 bytes).
To workaround the issue, make sure to align Rx buffers on 8 bytes.
Unfortunately this workaround requires yet another Rx fixup for
strict alignment architecture machines to align IP header.

For newer hardwares that lacks ram buffer may not have this bug so
check number of available ram buffer size to see the existence of
ram buffer.

Obtained-frim: FreeBSD 183346

9 years agomsk(4): Workaround GMAC hardware hang of Yukon II on the receipt of pause frame
Sepherosa Ziehau [Mon, 11 Jul 2011 05:50:37 +0000 (13:50 +0800)]
msk(4): Workaround GMAC hardware hang of Yukon II on the receipt of pause frame

This bug seems to happen on certain hardware model/revision (e.g. 88E8053)
but it's not identified which hardwares are affected.  To workaround it,
inrease GMAC FIFO threshold by one FIFO word to flush received pause frames.

Obtained-from: FreeBSD 176652

9 years agoktrdump: handle %c in ktr format strings
Aggelos Economopoulos [Sun, 10 Jul 2011 21:44:04 +0000 (23:44 +0200)]
ktrdump: handle %c in ktr format strings

9 years agoMention the ktr format string limitations in ktr(9)
Aggelos Economopoulos [Sun, 10 Jul 2011 18:11:23 +0000 (20:11 +0200)]
Mention the ktr format string limitations in ktr(9)

9 years agoktrdump: fixup size modifiers for integers
Aggelos Economopoulos [Sun, 10 Jul 2011 17:49:49 +0000 (19:49 +0200)]
ktrdump: fixup size modifiers for integers

The 'j' modifier is actually {u,}intmax_t, not {s,}size_t. Correct that
and add support for 'z' while at it.

9 years agovfs_conf - remove dead struct
Alex Hornung [Sun, 10 Jul 2011 09:35:30 +0000 (10:35 +0100)]
vfs_conf - remove dead struct

9 years agovga(4): Fix the kernel build with VGA_NO_BIOS set.
Sascha Wildner [Sat, 9 Jul 2011 19:50:35 +0000 (21:50 +0200)]
vga(4): Fix the kernel build with VGA_NO_BIOS set.

Reported-by: Francois Tigeot <ftigeot@wolfpond.org>
9 years agokernel - Fix improper persist state in tcp
Matthew Dillon [Sat, 9 Jul 2011 18:37:05 +0000 (11:37 -0700)]
kernel - Fix improper persist state in tcp

* Fix another case where the persist timer could wind up getting set

9 years agoHAMMER VFS - Fix inconsistent atime updates on read()
Matthew Dillon [Sat, 9 Jul 2011 18:34:24 +0000 (11:34 -0700)]
HAMMER VFS - Fix inconsistent atime updates on read()

* HAMMER's optimization of the read() path to improve concurrency broke
  atime updates in the cache case.  There was a big XXX comment in the
  code about it.

* Fix the issue in a way that avoids acquiring the fs_token in the cache
  case.  If the ATIME flag is already set all we need to do is update
  ip->ino_data.atime.  If it is not set we have to get the fs_token and
  go through the normal transaction.

Reported-by: marino
9 years agokernel - Fix improper persist state in tcp
Matthew Dillon [Sat, 9 Jul 2011 06:45:22 +0000 (23:45 -0700)]
kernel - Fix improper persist state in tcp

* When TCP is doing a simultanious connect and sitting in the
  TCPS_SYN_RECEIVED state a degenerate 0 window (due to +SYN -ACK packets)
  case occurs where the code improperly tries to switch over from the
  retry timer to the persist timer, which panics.

  The invalid persist state was caught by code placed earlier in the

* Adjust the code to document the case and stay with the retry timer.

9 years agokernel: Fix compiling SMBFS and NETSMB into the x86_64 kernel.
Sascha Wildner [Sat, 9 Jul 2011 03:40:39 +0000 (05:40 +0200)]
kernel: Fix compiling SMBFS and NETSMB into the x86_64 kernel.