dragonfly.git
20 months agokernel: Remove an #include I forgot previously. master
Sascha Wildner [Sat, 1 Dec 2012 22:24:50 +0000 (23:24 +0100)]
kernel: Remove an #include I forgot previously.

20 months agokernel - Turn off machdep.pmap_mmu_optimize by default
Matthew Dillon [Sat, 1 Dec 2012 20:53:19 +0000 (12:53 -0800)]
kernel - Turn off machdep.pmap_mmu_optimize by default

* Turn off machdep.pmap_mmu_optimize by default.  There are some bugs that
  need to be resolved which are messing up both apache and rtorrent.

* (this feature is already turned off by default on RELEASE).

20 months agoMove stlstats(8) to usr.sbin/
Sascha Wildner [Sat, 1 Dec 2012 17:59:16 +0000 (18:59 +0100)]
Move stlstats(8) to usr.sbin/

20 months agoRemove stli(4). Also remove ISA support from stl(4).
Sascha Wildner [Sat, 1 Dec 2012 17:48:21 +0000 (18:48 +0100)]
Remove stli(4). Also remove ISA support from stl(4).

stli(4) was ISA only. stl(4) was for ISA/PCI controllers.

The stlload(8) and stlstty(8) utilities were for ISA controllers only,
so remove them too (along with ISA only firmware).

While here, clean up stl(4) a bit.

20 months agoUPDATING: Mention that bt(4) is PCI only now.
Sascha Wildner [Sat, 1 Dec 2012 12:44:28 +0000 (13:44 +0100)]
UPDATING: Mention that bt(4) is PCI only now.

20 months agoUPDATING: Use release version numbers.
Sascha Wildner [Sat, 1 Dec 2012 12:42:55 +0000 (13:42 +0100)]
UPDATING: Use release version numbers.

20 months agocluster - remote block device work
Matthew Dillon [Sat, 1 Dec 2012 10:24:49 +0000 (02:24 -0800)]
cluster - remote block device work

* xdisk(client) <-> diskiocom(server) now successfully does a full
  message transaction over a VC for xa_open().  Still lots to do.

* Fix I/O request deferrals since the open can occur before the VC is
  fully established.  This fixes a deadlock.

* Fix state->msg tracking in kern_dmsg.c.  Fixes a double-free.

20 months agohammer2 - cluster / hammer2 service daemon work
Matthew Dillon [Fri, 30 Nov 2012 23:43:28 +0000 (15:43 -0800)]
hammer2 - cluster / hammer2 service daemon work

* Reformulate the service demon to use the updated libdmsg API

* Add code to track remote block device SPANs and to interface to the
  local /dev/xdisk to create local block devices for the remotes.

20 months agohammer2 - cluster / libdmsg circuit work
Matthew Dillon [Fri, 30 Nov 2012 23:39:12 +0000 (15:39 -0800)]
hammer2 - cluster / libdmsg circuit work

* Major work on the virtual circuit code.  Note there are still some thread
  races.

* Major work on the spanning tree code to allow for future symmetric
  pathing support.

* fs_label is now part of the RB tree compare, along with pfs_fsid.
  (e.g. the serial number for BLK protocol services).

* Rip out the 'router' structure, replace with the 'circuit' structure.
  Embed circuit0 in the iocom.

20 months agohammer2 - reformualte cluster messaging interface
Matthew Dillon [Fri, 30 Nov 2012 23:37:17 +0000 (15:37 -0800)]
hammer2 - reformualte cluster messaging interface

* Reformulate the interface to use the revamped kern_dmsg.c API

20 months agokernel - Preliminary xdisk remote block driver for cluster
Matthew Dillon [Fri, 30 Nov 2012 23:35:44 +0000 (15:35 -0800)]
kernel - Preliminary xdisk remote block driver for cluster

* Basic infrastructure, ties into kern_dmsg.c cluster messaging system.
  (still a skeleton).

* Allows a userland program (aka hammer2 service) to add networked block
  devices to the local machine.

20 months agohammer2 - kernel cluster messaging support API work
Matthew Dillon [Fri, 30 Nov 2012 23:33:49 +0000 (15:33 -0800)]
hammer2 - kernel cluster messaging support API work

* Rework the API significantly

* Add circuit tracking and sniffing features

* Add flags to automate the LNK_CONN, LNK_SPAN, and LNK_CIRC state machines.

* Misc improvemenets.

20 months agokernel - Move dsched_disk_destroy_callback() call
Matthew Dillon [Fri, 30 Nov 2012 23:30:35 +0000 (15:30 -0800)]
kernel - Move dsched_disk_destroy_callback() call

* Move the dsched_disk_destroy_callback() call from the caller to the
  message handler to avoid racing a disk probe that might be running at
  the time (if a disk device is added and destroyed quickly).

20 months agokernel - Fix races in disk iteration and diskctx handling
Matthew Dillon [Fri, 30 Nov 2012 19:17:50 +0000 (11:17 -0800)]
kernel - Fix races in disk iteration and diskctx handling

* Add disk->d_refs to prevent a disk structure from being destroyed out
  from under an iteration.

* Redo the disk_enumeration() API to use markers and d_refs.

* Make adjustments to the dsched API.  In particular, do not return
  unreferenced tdio pointers in situations where they aren't used by
  the caller.

* Properly implement the ref count on the tdio's, one for each of the two
  lists the tdio belongs to, and ensure that dsched_thread_io_alloc()
  keeps an extra ref on the tdio after releasing the diskctx lock to prevent
  it from being ripped out while the code is pondering whether to place
  the tdio on the tdctx list.

* When deleting the tdio's for a tdctx try to destroy the diskctx.  That is,
  simply dereferencing it from the thread is not sufficient.

* When deleting the tdio's for a diskctx try to destroy the tdctx.  That is,
  simply dereferencing it from the diskctx is not sufficient.

* Handle destroy/ref races.

20 months agokernel: Fix typo (inavlid -> invalid).
Sascha Wildner [Fri, 30 Nov 2012 17:57:06 +0000 (18:57 +0100)]
kernel: Fix typo (inavlid -> invalid).

21 months agoint64_t is long on x86_64, and not always equivalent to long long.
Sascha Wildner [Thu, 29 Nov 2012 20:57:05 +0000 (21:57 +0100)]
int64_t is long on x86_64, and not always equivalent to long long.

Similarly, uint64_t is unsigned long.

For their min/max value definitions, change LL/ULL suffixes to L/UL.

The bug report has some C++ sample code that show issues resulting
from treating them as long long.

Reported-by: David Shao <davshao@gmail.com>
Dragonfly-bug: <http://bugs.dragonflybsd.org/issues/2461>

21 months agobt(4): Sync with FreeBSD.
Sascha Wildner [Thu, 29 Nov 2012 17:20:48 +0000 (18:20 +0100)]
bt(4): Sync with FreeBSD.

Main change is making it MPSAFE.

Taken-from: FreeBSD

21 months agobpf: Use bpf global token instead mplock to protect bpf stuffs
Sepherosa Ziehau [Thu, 29 Nov 2012 09:16:06 +0000 (17:16 +0800)]
bpf: Use bpf global token instead mplock to protect bpf stuffs

Submitted-by: tuxillo@ w/ modification
21 months agososendudp: Try to optimize out the additional mbuf alloc on output path
Sepherosa Ziehau [Thu, 29 Nov 2012 05:55:02 +0000 (13:55 +0800)]
sosendudp: Try to optimize out the additional mbuf alloc on output path

This optimization leaves enough space at the beginning of the mbuf, so
later on M_PREPEND() probably will not allocate addition mbuf.

This probably will not benefit any data that will be fragmented, e.g. by
IPv4, so this optimization is only performed when the size of data and
max size of protocol+link headers fit into one mbuf cluster.

This optimization could be turned off by net.inet.udp.sosend_prepend,
which is on by default.

21 months agobt(4): Remove support for ISA adapters.
Sascha Wildner [Thu, 29 Nov 2012 00:52:11 +0000 (01:52 +0100)]
bt(4): Remove support for ISA adapters.

The driver also supports PCI cards and we do want to keep this support,
because it is offered by current VirtualBox, for example.

21 months ago<sys/errno.h>: Try to fix errno's declaration a bit better for C++.
Sascha Wildner [Wed, 28 Nov 2012 23:26:41 +0000 (00:26 +0100)]
<sys/errno.h>: Try to fix errno's declaration a bit better for C++.

The test code from the bug ticket seems to work with it at least.

Reported-by: David Shao <davshao@gmail.com>
Dragonfly-bug:      <http://bugs.dragonflybsd.org/issues/2463>
In-discussion-with: vsrinivas

21 months agokernel - Fix proc_reparent() race/assertion panic
Matthew Dillon [Wed, 28 Nov 2012 18:21:38 +0000 (10:21 -0800)]
kernel - Fix proc_reparent() race/assertion panic

* Fix proc_reparent() race/assertion panic.  p_pptr changes can race,
  and the procedure had an assertion for the case.  Recode the procedure
  to retry on a mismatch instead of assert.

* Also move the old-parent-wakeup code into the procedure so it is
  properly executed in all cases.

Reported-by: Peter Avalos
21 months agomax_linkhdr: Increase from 16 to 20; mainly to cooperate SW VLAN tagging
Sepherosa Ziehau [Wed, 28 Nov 2012 09:21:53 +0000 (17:21 +0800)]
max_linkhdr: Increase from 16 to 20; mainly to cooperate SW VLAN tagging

21 months agoinstaller: Clarity language when asking the user for time-date info.
Matthew Dillon [Tue, 27 Nov 2012 21:50:54 +0000 (13:50 -0800)]
installer: Clarity language when asking the user for time-date info.

* Clarity language when asking the user for time-date info so the
  user is not confused between UTC vs his or her selected timezone.
  The program wants the user to enter the time and date in his or her
  selected timezone.

21 months agovkernel - Add machdep.wall_cmos_clock sysctl.
Antonio Huete Jimenez [Mon, 26 Nov 2012 23:14:14 +0000 (00:14 +0100)]
vkernel - Add machdep.wall_cmos_clock sysctl.

Programs that rely on this sysctl won't exit due its absence
and they will consider CMOS doesn't keep the local time.
Note the sysctl is read-only so programs like adjkerntz(8)
won't be able to change it.

21 months agoinstaller: Fix handling of CMOS set to UTC vs. CMOS set to wall time.
Sascha Wildner [Mon, 26 Nov 2012 18:39:57 +0000 (19:39 +0100)]
installer: Fix handling of CMOS set to UTC vs. CMOS set to wall time.

It was reversed in the installer (compared to tzsetup(8)).

/etc/wall_cmos_clock needs to be created when the CMOS is set to the
time of the clock on the wall. While here, also add removing the file
in case the user selects 'CMOS set to UTC'. This is if he chose the
other setting previously and then tried again.

Reported-by: many
Dragonfly-bug: <http://bugs.dragonflybsd.org/issues/39>
Dragonfly-bug: <http://bugs.dragonflybsd.org/issues/2060>

21 months agopolling: Increase default status polling fraction to 80
Sepherosa Ziehau [Mon, 26 Nov 2012 13:41:20 +0000 (21:41 +0800)]
polling: Increase default status polling fraction to 80

Before we bumped the polling frequency from 1000 to 2000, the status
polling fraction was 20; keep the original ratio.

21 months agobce: Commit coalesce parameters changes in polling code
Sepherosa Ziehau [Mon, 26 Nov 2012 13:38:48 +0000 (21:38 +0800)]
bce: Commit coalesce parameters changes in polling code

21 months agobce: Improve tiny packets transmission performance on low frequency CPU
Sepherosa Ziehau [Mon, 26 Nov 2012 13:32:42 +0000 (21:32 +0800)]
bce: Improve tiny packets transmission performance on low frequency CPU

Update TX HOST_IDX and HOST_BSEQ registers a little bit often; mainly to
improve timeliness of packets transmission:
The TX HOST_IDX and HOST_BSEQ registers are updated after certain amount
of TX descriptors are added to the hardware TX ring.  The default value
of the amount of TX descriptors are 8.  This value could be further
tuned by per-device sysctl node hw.bceX.tx_wreg.

The default value greatly improves tiny packets transmission performance
w/ 5709C on AMD970@800Mhz (513Kpps -> 1Mpps) and it does not increase CPU
usage on AMD970@3500Mhz (CPU usage stays @24%, 5709C could only do 1Mpps).

21 months agobce: Don't mess w/ MQ_COMMAND on TX path; it seems useless
Sepherosa Ziehau [Sun, 25 Nov 2012 12:57:57 +0000 (20:57 +0800)]
bce: Don't mess w/ MQ_COMMAND on TX path; it seems useless

Tested-with: 5706C, 5708C and 5709C

21 months agobce: Reformat comment in bce_npoll_compat a little bit
Sepherosa Ziehau [Sun, 25 Nov 2012 11:00:50 +0000 (19:00 +0800)]
bce: Reformat comment in bce_npoll_compat a little bit

21 months agoigb: Use SYSCTL_ADD_INT for hw.igbX.tx_wreg_nsegs
Sepherosa Ziehau [Sun, 25 Nov 2012 06:35:31 +0000 (14:35 +0800)]
igb: Use SYSCTL_ADD_INT for hw.igbX.tx_wreg_nsegs

It actually does not have any constraints.

21 months agoemx: Use SYSCTL_ADD_INT for hw.emxX.wreg_tx_nsegs
Sepherosa Ziehau [Sun, 25 Nov 2012 06:34:21 +0000 (14:34 +0800)]
emx: Use SYSCTL_ADD_INT for hw.emxX.wreg_tx_nsegs

It actually does not have any constraints.

21 months agobnx: Improve tiny packets transmission performance on low frequency CPU
Sepherosa Ziehau [Sun, 25 Nov 2012 06:08:31 +0000 (14:08 +0800)]
bnx: Improve tiny packets transmission performance on low frequency CPU

- Reduce TX coalesce BDs from 128 to 64.  This improves tiny packets
  transmission performance on AMD970@2200Mhz a little bit (1.40Mpps
  -> 1.48Mpps)
- Update TX PROD register a little bit often; mainly to improve timeliness
  of packets transmission:
  The TX PROD register is updated after certain amount of TX descriptors
  are added to the hardware TX ring.  The default value of the amount of
  TX descriptors are 8.  This value could be further tuned by per-device
  sysctl node hw.bnxX.tx_wreg.  The default value greatly improves tiny
  packets performance on AMD970@800Mhz (780Kpps -> 1.11Mpps) and it does
  not increase CPU usage on AMD970@3500Mhz (CPU usage stays @31%).

21 months agobnx: Commit coalesce parameters changes in polling code
Sepherosa Ziehau [Sat, 24 Nov 2012 13:24:14 +0000 (21:24 +0800)]
bnx: Commit coalesce parameters changes in polling code

21 months agokernel: Remove some code that does nothing.
Sascha Wildner [Sat, 24 Nov 2012 23:13:20 +0000 (00:13 +0100)]
kernel: Remove some code that does nothing.

21 months agoFix some typos (unknow -> unknown).
Sascha Wildner [Sat, 24 Nov 2012 22:14:45 +0000 (23:14 +0100)]
Fix some typos (unknow -> unknown).

21 months agousb4bsd: Initial round of build fixes for serial drivers.
Sascha Wildner [Sat, 24 Nov 2012 20:35:21 +0000 (21:35 +0100)]
usb4bsd: Initial round of build fixes for serial drivers.

Not hooked into the build because some things are still missing,
most importantly ucom(4) porting.

21 months agondis(4): Bring in some fixes from FreeBSD.
Sascha Wildner [Sat, 24 Nov 2012 20:11:30 +0000 (21:11 +0100)]
ndis(4): Bring in some fixes from FreeBSD.

21 months agondis(4): Make NDIS compile with usb4bsd too.
Sascha Wildner [Sat, 24 Nov 2012 20:22:55 +0000 (21:22 +0100)]
ndis(4): Make NDIS compile with usb4bsd too.

However, testing results are pretty much as modest as with the old USB
stack. Maybe someone else has more luck.

New files taken from FreeBSD.

21 months agousb4bsd: Fix buildkernel with device usb4bsd.
Sascha Wildner [Fri, 23 Nov 2012 18:46:19 +0000 (19:46 +0100)]
usb4bsd: Fix buildkernel with device usb4bsd.

21 months agowpa_supplicant.8: Document all options.
Sascha Wildner [Fri, 23 Nov 2012 18:11:29 +0000 (19:11 +0100)]
wpa_supplicant.8: Document all options.

Reported-by: Max Herrgard <herrgard@gmail.com>
Taken-from:  FreeBSD

21 months agowpa_supplicant.conf.5: Fix section order.
Sascha Wildner [Fri, 23 Nov 2012 18:02:53 +0000 (19:02 +0100)]
wpa_supplicant.conf.5: Fix section order.

21 months agoVFS quota: hpfs is now read-only, remove support
François Tigeot [Fri, 23 Nov 2012 06:57:26 +0000 (07:57 +0100)]
VFS quota: hpfs is now read-only, remove support

21 months agoDocumentation: unrhdr to idr conversion
François Tigeot [Mon, 19 Nov 2012 09:30:34 +0000 (10:30 +0100)]
Documentation: unrhdr to idr conversion

21 months agovkernel: Make "options IPX" compilable into the vkernel.
Sascha Wildner [Thu, 22 Nov 2012 19:44:23 +0000 (20:44 +0100)]
vkernel: Make "options IPX" compilable into the vkernel.

Usage of "errno" in userspace as a variable name results in sad code.
Rename them to "error" instead.

Reported-by: tuxillo
21 months agokernel: Remove some NULL checks after kmalloc(..., M_WAITOK).
Sascha Wildner [Thu, 22 Nov 2012 17:27:14 +0000 (18:27 +0100)]
kernel: Remove some NULL checks after kmalloc(..., M_WAITOK).

21 months agokernel: Use M_ZERO instead of bzero()ing.
Sascha Wildner [Thu, 22 Nov 2012 17:24:47 +0000 (18:24 +0100)]
kernel: Use M_ZERO instead of bzero()ing.

21 months agoah[cd](4): Clean up some #ifdefs so it's clearer what we are doing.
Sascha Wildner [Thu, 22 Nov 2012 16:41:11 +0000 (17:41 +0100)]
ah[cd](4): Clean up some #ifdefs so it's clearer what we are doing.

21 months agoemx: Don't update TDT upon very packets transmitted
Sepherosa Ziehau [Thu, 22 Nov 2012 12:53:36 +0000 (20:53 +0800)]
emx: Don't update TDT upon very packets transmitted

The TDT is updated only after certain amount of TX descriptors are
added to the hardware TX ring.  The default value of the amount of
TX descriptors are 8.  This value could be further tuned by per-device
sysctl node hw.emxX.tx_wreg_nsegs.

CPU usage when transmitting 18bytes tiny UDP datagrams @1.48Mpps with
82571 on AMD970 (3500Mhz) are reduced from 50% to 30% with the default
value.

Inspired-by: FreeBSD netmap's paper
21 months agoigb: Don't update TDT upon very packets transmitted
Sepherosa Ziehau [Thu, 22 Nov 2012 12:02:31 +0000 (20:02 +0800)]
igb: Don't update TDT upon very packets transmitted

The TDT is updated only after certain amount of TX descriptors are
added to the hardware TX ring.  The default value of the amount of
TX descriptors are 8.  This value could be further tuned by per-device
sysctl node hw.igbX.tx_wreg_nsegs.

CPU usage when transmitting 18bytes tiny UDP datagrams @1.48Mpps with
82575 on AMD970 (3500Mhz) are reduced from 55% to 38% with the default
value.

Inspired-by: FreeBSD netmap's paper
21 months agopktgen: Rework to improve performance using low CPU frequency
Sepherosa Ziehau [Sat, 17 Nov 2012 10:07:21 +0000 (18:07 +0800)]
pktgen: Rework to improve performance using low CPU frequency

The performance improvement is measured on AMD970 operating at 800Mhz
w/ Intel 82575 NIC using 18bytes UDP datagrams.

- Don't refill and allocate new packets for each transmission, instead
  a set of pregenerated packets are used.
- Use NIC driver's "txeof" to tick out more packets instead of bindly
  trying to inject more packets into NIC's TX ring.

These above two modifications give me ~200Kpps (710Kpps -> 910Kpps)
transmission rate improvement.

- Don't use hardware TX checksum offloading feature.  Since the set of
  packets to be used are pregenerated, this will not hurt performance,
  instead, this could improve performance on certain hardwares, e.g.
  Intel's NIC chipsets which require additional TX descriptor for setting
  up hardware TX checksum offload context.

The above modification give me additional ~40Kpps transmission rate
improvement.

21 months agohpfs - Fix a couple panics and a little cleanup.
Antonio Huete Jimenez [Thu, 22 Nov 2012 10:47:58 +0000 (11:47 +0100)]
hpfs - Fix a couple panics and a little cleanup.

* Fix compilation with HPFS_DEBUG.

* Fix a panic due CNP_PDIRUNLOCK flag not being cleared.

* Fix a panic where returned vnode after a lookup is not
  NULL in the ENOENT case.

* Disable write support completely. It was pretty minimal
  and operations like create or rename were not supported.

It has been tested with a filesystem created by OS/2 Warp 2.1.
Copying data out of it worked fine, but there is still an
outstanding issue with overlapping buffers.

21 months agokernel - Fix NFS panic when competing clients collide on hardlink
Matthew Dillon [Wed, 21 Nov 2012 17:59:55 +0000 (09:59 -0800)]
kernel - Fix NFS panic when competing clients collide on hardlink

* Fix recursive execlusive lock on vnode.

* For example, if several boxes are nfs booting and have the same writable
  /var/log, simultanious attempts to rotate logs can cause a panic due to
  higher layers of the OS's hardlink code not being able to detect
  duplicate vnodes which are created by some other client racing the same
  operation.

* Adds CNP_NOTVP and cn_notvp flag which vop_compat_nlink() uses to notify
  NFS's VOP_LOOKUP function to check for a vnode lookup collision.

-Matt

21 months agoRemove some duplicated semicolons (mostly in the kernel).
Sascha Wildner [Wed, 21 Nov 2012 17:13:43 +0000 (18:13 +0100)]
Remove some duplicated semicolons (mostly in the kernel).

21 months agohptiop(4): Add support for RocketRAID 4520 and 4522.
Sascha Wildner [Wed, 21 Nov 2012 03:26:47 +0000 (04:26 +0100)]
hptiop(4): Add support for RocketRAID 4520 and 4522.

This adds support for HighPoint's recent 6Gb/s SAS/SATA RAID cards.

It's not tested in DragonFly, unfortunately, due to lack of hardware,
but I'm confident. :)

Taken-from: FreeBSD

21 months agoigb: Dispatch callout to the CPU that is checking status
Sepherosa Ziehau [Tue, 20 Nov 2012 12:26:52 +0000 (20:26 +0800)]
igb: Dispatch callout to the CPU that is checking status

This reduces sporadic contentions on the main serializer.

21 months agoaac(4): Add a missing unlock.
Sascha Wildner [Tue, 20 Nov 2012 05:23:49 +0000 (06:23 +0100)]
aac(4): Add a missing unlock.

21 months agoiir(4): Clean up some unused code.
Sascha Wildner [Tue, 20 Nov 2012 04:32:38 +0000 (05:32 +0100)]
iir(4): Clean up some unused code.

21 months agoext2fs - Clear CNP_PDIRUNLOCK flag after a lookup.
Antonio Huete Jimenez [Mon, 19 Nov 2012 22:32:16 +0000 (23:32 +0100)]
ext2fs - Clear CNP_PDIRUNLOCK flag after a lookup.

vop_compat_nresolve() unlocks the vnode when flag CNP_PDIRUNLOCK
is set, so either we clear the flag or avoid unlocking the vnode
after an ext2_lookup().

DragonFly-bug: http://bugs.dragonflybsd.org/issues/2454

Reported by: Skylar Hawk

21 months agoUnbreak buildworld.
Sascha Wildner [Mon, 19 Nov 2012 17:56:42 +0000 (18:56 +0100)]
Unbreak buildworld.

Reported-by: marino
21 months ago/usr/Makefile: Add pkgsrc-create-shallow option
John Marino [Mon, 19 Nov 2012 17:43:52 +0000 (18:43 +0100)]
/usr/Makefile: Add pkgsrc-create-shallow option

21 months agomake distribution: Remove some symlinks before (re-)creating them.
Sascha Wildner [Mon, 19 Nov 2012 16:59:05 +0000 (17:59 +0100)]
make distribution: Remove some symlinks before (re-)creating them.

Reported-by: marino
21 months agonetstat: Make netstat -rn more resilient to having the routing table changing
Sepherosa Ziehau [Mon, 19 Nov 2012 09:51:24 +0000 (17:51 +0800)]
netstat: Make netstat -rn more resilient to having the routing table changing

Obtained-from: FreeBSD 176289 by jhb
  "Make netstat -rn more resilient to having the routing table change out from
   under it while running.  Note that this is still not perfect:
   - Try to do something intelligent if kvm_read() fails to read a routing
     table structure such as an rtentry, radix_node, or ifnet.
   - Don't follow left and right node pointers in radix_nodes unless
     RNF_ACTIVE is set in rn_flags.  This avoids walking through freed
     radix_nodes."

21 months agomchian: Sync w/ FreeBSD a little bit
Sepherosa Ziehau [Mon, 19 Nov 2012 09:38:44 +0000 (17:38 +0800)]
mchian: Sync w/ FreeBSD a little bit

subr_mchain.c CVS 1.{6, 8, 9, 10, 16, 18}

Submitted-by: Alexey Slynko w/ modification by me
DragonFly-bug: http://bugs.dragonflybsd.org/issues/80

21 months agoPorting: Document a callout_drain() replacement
François Tigeot [Mon, 19 Nov 2012 08:48:47 +0000 (09:48 +0100)]
Porting: Document a callout_drain() replacement

21 months agokernel: Move DEVICE_POLLING to the bottom of 'options'.
Sascha Wildner [Sun, 18 Nov 2012 21:35:11 +0000 (22:35 +0100)]
kernel: Move DEVICE_POLLING to the bottom of 'options'.

21 months agokernel: Remove unused KTR_POLLING option.
Sascha Wildner [Sun, 18 Nov 2012 21:34:36 +0000 (22:34 +0100)]
kernel: Remove unused KTR_POLLING option.

21 months agompt(4): Fix a panic in RAID operation.
Sascha Wildner [Sun, 18 Nov 2012 19:46:15 +0000 (20:46 +0100)]
mpt(4): Fix a panic in RAID operation.

I ported it wrongly. FreeBSD uses callout_init_mtx() here.

21 months agodehumanize_number(3): Add T, P and E suffix support.
Sascha Wildner [Sat, 17 Nov 2012 21:58:30 +0000 (22:58 +0100)]
dehumanize_number(3): Add T, P and E suffix support.

Reported-by: ftigeot
21 months agomtree: Do no longer create /usr/include/objc.
Sascha Wildner [Sat, 17 Nov 2012 12:47:14 +0000 (13:47 +0100)]
mtree: Do no longer create /usr/include/objc.

21 months agoRemove an unused header.
Sascha Wildner [Sat, 17 Nov 2012 01:59:23 +0000 (02:59 +0100)]
Remove an unused header.

21 months agoClean up references to some obsolete functions in manual pages.
Sascha Wildner [Fri, 16 Nov 2012 23:49:42 +0000 (00:49 +0100)]
Clean up references to some obsolete functions in manual pages.

sigpause(2)               -> sigsuspend(2)
sigsetmask(2)/sigblock(2) -> sigprocmask(2)
sigvec(2)                 -> sigaction(2)
alarm(3)                  -> setitimer(2)
pause(3)                  -> sigsuspend(2)

Based on similar changes in FreeBSD.

21 months agovfork.2: Document that vfork(2) returns pid_t.
Sascha Wildner [Fri, 16 Nov 2012 17:19:02 +0000 (18:19 +0100)]
vfork.2: Document that vfork(2) returns pid_t.

Also adjust syscalls.master but it actually doesn't matter. These
adjustments are merely of a cosmetic nature.

21 months agonrelease/Makefile.usr: Relocate the git gc for pkgsrc to nrelease.
Sascha Wildner [Fri, 16 Nov 2012 13:51:11 +0000 (14:51 +0100)]
nrelease/Makefile.usr: Relocate the git gc for pkgsrc to nrelease.

Since it was only meant for keeping the LiveDVD smaller, put it into
its build and don't force everyone to sit through it. The time it
takes seems to increase significantly on virtual machines with just
1G of RAM, for example. It seems to be quite memory hungry.

Reported-by: many
21 months agocp(1)/mv(1): Bring back a number of cleanups we did previously.
Sascha Wildner [Fri, 16 Nov 2012 12:19:38 +0000 (13:19 +0100)]
cp(1)/mv(1): Bring back a number of cleanups we did previously.

People (including myself) have put their time and thought into
this in the past, so we don't want this simply papered over with
the previous state.

21 months agoFix buildworld.
Sascha Wildner [Fri, 16 Nov 2012 12:13:45 +0000 (13:13 +0100)]
Fix buildworld.

mv(1) is a bootstrap tool, hence it needs to build with host includes.

21 months agoUpdate the pciconf(8) database.
Sascha Wildner [Fri, 16 Nov 2012 10:42:05 +0000 (11:42 +0100)]
Update the pciconf(8) database.

November 14, 2012 snapshot from http://pciids.sourceforge.net/

21 months ago/bin/mv: Sync with FreeBSD
John Marino [Fri, 16 Nov 2012 09:21:09 +0000 (10:21 +0100)]
/bin/mv: Sync with FreeBSD

1. Utilize central <paths.h> header
2. Meet posix spec for moving directory to existing non-empty directory
3. Meet posix spec for not moving directory over a file
4. Don't chop IO into pieces, use MAXPHYS
5. Add -h flag (similar to ln -h flag)
6. Test for input_is_terminal
7. Regression test added.

DETAILS
==========================================================================
1. remove pathnames.h file and add _PATH_RM to paths.h
2. Moving a directory to an existing non-empty directory will now fail as
   required.
3. Prior to change this test past, but after change it failed on
   cross-link devices.  Original code added to check for case and return
   -1 for the cross-link case.
4. Read files in one block and improve warn messages.
5. Using -h flag will force mv to treat a symbolic link to a directory
   for the target as a symbolic link instead of a directory.  This makes
   it possible to atomically update a symbolic link using rename().
6. POSIX requires this behavior:
   if (exists and (NOT f_options) AND
     ((not_writable AND input_is_terminal) OR i_option)) then
     prompt
   This behavior was implemented.
7. Passes all tests in suite.  Prior to change it failed 2 of 32 tests.

21 months agoUPDATING: Mention DEVICE_POLLING is replaced by IFPOLL_ENABLE
Sepherosa Ziehau [Fri, 16 Nov 2012 08:59:53 +0000 (16:59 +0800)]
UPDATING: Mention DEVICE_POLLING is replaced by IFPOLL_ENABLE

21 months agopolling: Remove device_polling remainder
Sepherosa Ziehau [Fri, 16 Nov 2012 08:56:19 +0000 (16:56 +0800)]
polling: Remove device_polling remainder

DEVICE_POLLING has no effect since this commit and will be nuked
after next release.

21 months agopolling: Remove device_polling support
Sepherosa Ziehau [Fri, 16 Nov 2012 08:36:05 +0000 (16:36 +0800)]
polling: Remove device_polling support

21 months agofirewire: Mention IFPOLL_ENABLE instead of DEVICE_POLLING
Sepherosa Ziehau [Fri, 16 Nov 2012 08:35:32 +0000 (16:35 +0800)]
firewire: Mention IFPOLL_ENABLE instead of DEVICE_POLLING

21 months agoconfig: Remove device_polling from stock configures
Sepherosa Ziehau [Fri, 16 Nov 2012 07:50:46 +0000 (15:50 +0800)]
config: Remove device_polling from stock configures

21 months agopolling: Update manpage for device_polling to ifpoll switching
Sepherosa Ziehau [Fri, 16 Nov 2012 07:46:01 +0000 (15:46 +0800)]
polling: Update manpage for device_polling to ifpoll switching

21 months agowpi: This driver never supported polling
Sepherosa Ziehau [Fri, 16 Nov 2012 06:05:59 +0000 (14:05 +0800)]
wpi: This driver never supported polling

21 months agoiwn: This driver never supported polling
Sepherosa Ziehau [Fri, 16 Nov 2012 06:05:33 +0000 (14:05 +0800)]
iwn: This driver never supported polling

21 months ago/bin/rm: fix removing symlinks with uchg/uappnd set
John Marino [Thu, 15 Nov 2012 23:31:35 +0000 (00:31 +0100)]
/bin/rm: fix removing symlinks with uchg/uappnd set

One error case described in FreeBSD PR bin/111226:
  /bin/rm when running as super user and failing to unlink a
  UF_APPEND|UF_IMMUTABLE protected symbolic link will reset the
  UF_APPEND and UF_IMMUTABLE flags on the symbolic link's target (if
  that target exists) - an object that /bin/rm should not touch! (Quote
  from SUSv3: "The rm utility removes symbolic links themselves, not
  the files they refer to, as a consequence of the dependence on the
  unlink() functionality").

There was a failure case for /usr/bin/find as well, but swildner
recently synchronized find with FreeBSD and fixed that one.

Taken-from: FreeBSD SVN 193087 (30 MAY 2009)

21 months agolibc/fts: Use O_CLOEXEC for internal file descriptors
John Marino [Thu, 15 Nov 2012 21:46:29 +0000 (22:46 +0100)]
libc/fts: Use O_CLOEXEC for internal file descriptors

Because fts keeps internal file descriptors open across calls, making such
descriptors close-on-exec helps not only multi-threaded applications but
also single-threaded applications.

In particular, this prevents passing a temporary file descriptor for saving
the current directory to processes created via find -exec.

Taken-from: FreeBSD SVN 241010 (27 SEP 2012)

21 months agobug 2443: bin/cp: sync with FreeBSD (bug fixes + new options)
John Marino [Thu, 15 Nov 2012 20:57:01 +0000 (21:57 +0100)]
bug 2443: bin/cp: sync with FreeBSD (bug fixes + new options)

* Fix FTS_NOCHDIR behavior on empty directory.
* Add -a option (archive mode, equivalent to -RpP)
* Add -l option (create hard links instead of copying)
* Add -x option (FS mount points are not traversed)
* Preserve file flags on symlinks on cp -Rp
* Don't copy socket anyway after "xxx is a socket (not copied)"
* Avoid division-by-zero situations
* make -r synonym for -R but maintain -r behavior with -L

Taken-from: FreeBSD (multiple commits)
https://bugs.dragonflybsd.org/issues/2443

21 months agokernel - Fix off-by-1 error in semexit
Matthew Dillon [Thu, 15 Nov 2012 20:30:51 +0000 (12:30 -0800)]
kernel - Fix off-by-1 error in semexit

* Fix an off-by-1 error that was preventing semexit from properly undoing
  all the semaphores controlled by the exiting process.

Reported-by: lentferj, vsrinivas, others
21 months agoshare/misc/gdbinit - New function lstdtok
Antonio Huete Jimenez [Thu, 15 Nov 2012 19:13:03 +0000 (20:13 +0100)]
share/misc/gdbinit - New function lstdtok

- List tokens for a specified thread.

21 months agoinit(8): Resurrect kern.shutdown_timeout as kern.init_shutdown_timeout.
Sascha Wildner [Wed, 14 Nov 2012 22:57:04 +0000 (23:57 +0100)]
init(8): Resurrect kern.shutdown_timeout as kern.init_shutdown_timeout.

Taken from FreeBSD. Quoting their commit msg:

Fix system shutdown timeout handling by again supporting longer running
shutdown procedures (which have a duration of more than 120 seconds).

We have two user-space affecting shutdown timeouts: a "soft" one in
/etc/rc.shutdown and a "hard" one in init(8). The first one can be
configured via /etc/rc.conf variable "rcshutdown_timeout" and defaults
to 30 seconds. The second one was originally (in 1998) intended to be
configured via sysctl(8) variable "kern.shutdown_timeout" and defaults
to 120 seconds.

Unfortunately, the "kern.shutdown_timeout" was declared "unused" in 1999
(as it obviously is actually not used within the kernel itself) and
hence was intentionally but misleadingly removed in revision 1.107 from
init_main.c. Kernel sysctl(8) variables are certainly a wrong way to
control user-space processes in general, but in this particular case the
sysctl(8) variable should have remained as it supports init(8), which
isn't passed command line flags (which in turn could have been set via
/etc/rc.conf), etc.

As there is already a similar "kern.init_path" sysctl(8) variable which
directly affects init(8), resurrect the init(8) shutdown timeout under
sysctl(8) variable "kern.init_shutdown_timeout". But this time document
it as being intentionally unused within the kernel and used by init(8).
Also document it in the manpages init(8) and rc.conf(5).

21 months agolibk{core,info}: The kern.ccpu sysctl is gone, so remove *get_sched_ccpu().
Sascha Wildner [Wed, 14 Nov 2012 22:14:32 +0000 (23:14 +0100)]
libk{core,info}: The kern.ccpu sysctl is gone, so remove *get_sched_ccpu().

Interestingly, kcore_get_sched_ccpu() seems to never have returned ccpu,
but instead tk_nin, which is not related.

21 months agotop(1): Remove some code that is unused after the UP removal.
Sascha Wildner [Wed, 14 Nov 2012 21:24:23 +0000 (22:24 +0100)]
top(1): Remove some code that is unused after the UP removal.

21 months ago<sys/proc.h>: Adjust the names of two unused bits to use bit numbering.
Sascha Wildner [Wed, 24 Oct 2012 19:20:36 +0000 (21:20 +0200)]
<sys/proc.h>: Adjust the names of two unused bits to use bit numbering.

21 months agomount{,_ufs}: Fix wrong mountctl(2) error check.
Sascha Wildner [Wed, 14 Nov 2012 10:06:26 +0000 (11:06 +0100)]
mount{,_ufs}: Fix wrong mountctl(2) error check.

mountctl(2) returns the number of copied bytes when successful, and -1
if there was an error. This prevented ", local" from being printed in
mount output.

Reported-by: YONETANI Tomokazu
21 months agoSync zoneinfo database with tzdata2012j from ftp://ftp.iana.org/tz/releases
Sascha Wildner [Tue, 13 Nov 2012 18:41:51 +0000 (19:41 +0100)]
Sync zoneinfo database with tzdata2012j from ftp://ftp.iana.org/tz/releases

* africa: Lybia set their time one hour back at 02:00 on November 10
    (last Saturday).

* Additional miscellaneous fixes in various comments.

21 months agotzfile.5: Little wording fix (from tzcode2012j).
Sascha Wildner [Tue, 13 Nov 2012 18:39:40 +0000 (19:39 +0100)]
tzfile.5: Little wording fix (from tzcode2012j).

21 months agoipcs(1): Fix the "ipcs: kvm_nlist: No such file or directory" error.
Sascha Wildner [Tue, 13 Nov 2012 17:35:17 +0000 (18:35 +0100)]
ipcs(1): Fix the "ipcs: kvm_nlist: No such file or directory" error.

The "semu" variable was removed in 79757ed082, causing this breakage.
Strangely, even before its removal it wasn't used for anything in
ipcs(1).

Reported-by: beket