dragonfly.git
11 years agokernel - Add frontend cache for cache_findmount()
Matthew Dillon [Fri, 22 Feb 2013 04:32:03 +0000 (20:32 -0800)]
kernel - Add frontend cache for cache_findmount()

* When a name lookup crosses a mount point boundary it must call
  cache_findmount() to locate the mount linkage.  This linkage is
  not stored in the vp or ncp because there is a 1:N relationship
  between vp/ncp and possible mounts due to DragonFly's ability
  to do arbitrary nullfs mounts in the topology.

* The mountlist scan requires an exclusive token to deal with ripouts
  during the scan.  This creates a bottleneck when highly parallel
  filesystem operations are being run on the machine and use mount-crossing
  paths or absolute paths.

* The frontend cache is able to use a shared spinlock for the fast path,
  and implements a simple non-chained linear array hashed by pointer
  values.

11 years agokernel - Fix network lockup due to msgport bug
Matthew Dillon [Fri, 22 Feb 2013 02:14:45 +0000 (18:14 -0800)]
kernel - Fix network lockup due to msgport bug

* Netisr threads (i.e. arp thread) which issue route table updates
  use a synchronous netmsg from a 'spin' type port to a 'thread' type
  port.

  When going spin->thread, the lwkt_thread_putport*() code was not
  using an atomic op to manipulate ms_flags.  This could interfere
  with the originator on the spin port issuing a lwkt_spin_waitmsg()
  and cause one or more flags to be lost.

  Ensure that lwkt_thread_putport*() uses atomic ops when manipulating
  ms_flags.

* Another serious issue is that the lwkt_*_waitmsg() code was testing
  MSGF_QUEUED outside of its port lock.  This flag can only be tested
  while the port is locked.

* lwkt_thread_replyport() must use an atomic op when setting
  MSGF_INTRANSIT and MSGF_REPLY to avoid SMP races on ms_flags
  updates.

* lwkt_thread_replyport() requires a critical section against
  possible preemption when adjusting ms_flags.

* lwkt_forwardmsg() does not need a critical section.

* Other notes: Not all ms_flags manipulation needs an atomic op.  For
  example, when initializing a new message or when a lock is held to
  rendezvous at a reply port when replying.  However, all 'put' and 'wait'
  interactions on messages absolutely require atomic ops when manipulating
  ms_flags.

  Finally, note that all msgport queue operations use atomic ops to
  adjust MSGF_QUEUED when adding or removing a message to a port queue.

11 years agovkd(4) - Announce virtual disks upon initialization.
Antonio Huete Jimenez [Wed, 20 Feb 2013 11:09:26 +0000 (12:09 +0100)]
vkd(4) - Announce virtual disks upon initialization.

11 years agovke(4) - Show backing tap only if one was used.
Antonio Huete Jimenez [Wed, 20 Feb 2013 10:26:54 +0000 (11:26 +0100)]
vke(4) - Show backing tap only if one was used.

11 years agovkernel(7) - Minor manpage adjustments.
Antonio Huete Jimenez [Fri, 22 Feb 2013 00:51:22 +0000 (01:51 +0100)]
vkernel(7) - Minor manpage adjustments.

11 years agovkernel - Settable serial numbers for virtual disks.
Antonio Huete Jimenez [Fri, 22 Feb 2013 00:14:01 +0000 (01:14 +0100)]
vkernel - Settable serial numbers for virtual disks.

  User can specify now serial numbers for their virtual disks
  from the command line.

  Example:
./vkernel -m 128m -r root.img:VKDMYSERNO

11 years agokernel - Fix issue with ARP packets stalling out entire network
Matthew Dillon [Thu, 21 Feb 2013 23:33:26 +0000 (15:33 -0800)]
kernel - Fix issue with ARP packets stalling out entire network

* ARP packets can cause ARP routing table updates to occur.  An ARP
  routing table update is an expensive synchronous netmsg that is
  forwarded through *ALL* cpus.

* ARP was previously being handled by netisr 0 and on large multi-way
  machines (aka monster the 48-way opteron) under very heavy loads this
  could result in very long stalls for any packet processing forwarded
  to cpu 0.

  Stalls exceeding 200 seconds were observed on monster when a large
  number of ARP packets had to be processed.

* Implement a dedicated thread feature for the NETISR mechanism and
  modify NETISR_ARP to use it.  This takes the expensive synchronous
  ARP packet processing off the general per-cpu netisr threads.
  This thread currently runs on cpu (18 % ncpus) (NETISR_ARP == 18).

  Thus the general per-cpu (netisr 0) thread will no longer stall
  on ARP packets.

* ping latencies under extreme loads improved to (approximately):

  ping -i 0.001 monster-nr
  11735 packets transmitted, 11735 packets received, 0.0% packet loss
  round-trip min/avg/max/stddev = 0.073/0.190/27.019/0.382 ms

11 years agokernel - Add critical section in lwkt_yield_quick()
Matthew Dillon [Thu, 21 Feb 2013 23:32:12 +0000 (15:32 -0800)]
kernel - Add critical section in lwkt_yield_quick()

* Add a critical section to protect the clearing of the LWKT reschedule
  bit against gd_tdrunq.

11 years agoasr(4): Remove a case that is not a member of the enum being tested.
Sascha Wildner [Thu, 21 Feb 2013 19:14:23 +0000 (20:14 +0100)]
asr(4): Remove a case that is not a member of the enum being tested.

Apparently xpt_opcode can wind up being REPORT_LUNS here. gcc47 warns
about it because REPORT_LUNS is not an enum xpt_opcode member.

FreeBSD just casted this away. Instead of doing that, remove it and
let the default case handle it (which has the same code as XPT_ABORT).

While here, fix a typo in a comment.

11 years agobce: Fix tick/pulse callout target CPU setting
Sepherosa Ziehau [Thu, 21 Feb 2013 13:19:09 +0000 (21:19 +0800)]
bce: Fix tick/pulse callout target CPU setting

11 years agoigb: Fix timer cpuid settings when entering/exiting polling mode
Sepherosa Ziehau [Thu, 21 Feb 2013 09:29:47 +0000 (17:29 +0800)]
igb: Fix timer cpuid settings when entering/exiting polling mode

11 years agokernel - Fix cpu/token starvation, vfs_busy deadlocks. incls sysctl (2)
Matthew Dillon [Thu, 21 Feb 2013 07:03:53 +0000 (23:03 -0800)]
kernel - Fix cpu/token starvation, vfs_busy deadlocks. incls sysctl (2)

* Last commit had a bug in the deadlock fix for nlookup().  This fix
  is tested and works.

11 years agokernel - Fix excessive kprintf()s during refcount_wait()
Matthew Dillon [Thu, 21 Feb 2013 07:01:20 +0000 (23:01 -0800)]
kernel - Fix excessive kprintf()s during refcount_wait()

* _refcount_wait() can do itself in with excessive kprintf()s
  on large multi-way machines, causing the machine to become
  unresponsive.

* Rewrite the code to use a ticks test and only kprintf()
  a warning when it takes more than 60 seconds.

* Used by vm_object_pip_wait().  Long I/O queues are possible.

11 years agokernel - Implement vm.read_shortcut support in tmpfs
Matthew Dillon [Thu, 21 Feb 2013 06:42:08 +0000 (22:42 -0800)]
kernel - Implement vm.read_shortcut support in tmpfs

* Implement tmpfs support for vm.read_shorcut_enable=1

* Approximately doubles tmpfs read() performance on 64-bit systems
  for data sets which exceed the size of the buffer cache.

  Example using monster (64G ram, 6.4G buffer cache, 9G test data set)

    du -s -k /mp
9037196 /mp

    sysctl vm.read_shortcut_enable=1
    time tar cf /dev/nmonster# time tar cf /dev/null /mp
6.763u 13.275s 0:20.05 99.9%    26+66k 0+0io 0pf+0w
7.224u 12.830s 0:20.07 99.9%    26+66k 0+0io 0pf+0w
6.957u 14.924s 0:21.91 99.8%    26+66k 0+0io 0pf+0w

    sysctl vm.read_shortcut_enable=0
    time tar cf /dev/nmonster# time tar cf /dev/null /mp
7.510u 23.997s 0:31.52 99.9%    26+66k 0+0io 0pf+0w
7.769u 37.738s 0:45.53 99.9%    25+65k 0+0io 0pf+0w
7.716u 40.306s 0:48.04 99.9%    25+65k 0+0io 0pf+0w

* Note that variations in run time when the feature is disabled
  depends on what data is already present in the buffer cache and
  the cost of mapping new buffers and tearing down old buffers.
  This can be substantial on large multi-way systems due to
  SMP/page-table issues.

11 years agokernel - add yields in the swap pager freeing path
Matthew Dillon [Thu, 21 Feb 2013 05:10:10 +0000 (21:10 -0800)]
kernel - add yields in the swap pager freeing path

* Add yields in swp_pager_meta_free*().  This routine can loop
  heavily on very large VM objects and we don't want it to stall
  the cpu.

11 years agokernel - cleanup
Matthew Dillon [Thu, 21 Feb 2013 05:09:46 +0000 (21:09 -0800)]
kernel - cleanup

* Minor cleanup

11 years agokernel - Remove remaining mplock use cases from tmpfs
Matthew Dillon [Thu, 21 Feb 2013 05:07:00 +0000 (21:07 -0800)]
kernel - Remove remaining mplock use cases from tmpfs

* Use the per-mount lock for remaining cases, including nremove,
  truncate, and other operations.

* Also fixes machine stalls against pings when removing very
  large files.

Submitted-by: vsrinivas
11 years agoicmp: ICMP is MPSAFE
Sepherosa Ziehau [Thu, 21 Feb 2013 04:44:42 +0000 (12:44 +0800)]
icmp: ICMP is MPSAFE

11 years agobce: RX and TX ring counts are not required to be same
Sepherosa Ziehau [Thu, 21 Feb 2013 04:36:44 +0000 (12:36 +0800)]
bce: RX and TX ring counts are not required to be same

However, in Dragonfly, RX ring count must be great than TX ring count.

Clue-from: Linux bnx2

11 years agokernel - Fix cpu/token starvation, vfs_busy deadlocks. incls sysctl
Matthew Dillon [Thu, 21 Feb 2013 02:38:33 +0000 (18:38 -0800)]
kernel - Fix cpu/token starvation, vfs_busy deadlocks. incls sysctl

* Remove the mplock around the userland sysctl system call, it should no
  longer be needed.

* Remove the mplock around getcwd(), it should no longer be needed.

* Change the vfs_busy(), sys_mount(), and related mount code to use the
  per-mount token instead of the mp lock.

* Fix a race in vfs_busy() which could cause it to never get woken up.

* Fix a deadlock in nlookup() when the lookup is racing an unmount.  When
  the mp is flagged MNTK_UNMOUNT, the unmount is in progress and the lookup
  must fail instead of loop.

* per-mount token now protects mp->mnt_kern_flag.

* unmount code now waits for final mnt_refs to return to the proper value,
  fixing races with other code that might temporarily ref the mount point.

* Add lwkt_yield()'s in nvtruncbuf*() and nvnode_pager_setsize(), reducing
  cpu stalls due to large file-extending I/O's.  Also in tmpfs.

* Use a marker in the vm_meter code and check for vmobj_token collisions.
  When a collision is detected, give other threads a chance to take the
  token.  This prevents hogging of this very important token.

Testing-by: dillon, vsrinivas, ftigeot
11 years agovkernel/vke: Comment out 'ifp', just like the code that uses it.
Sascha Wildner [Wed, 20 Feb 2013 18:39:18 +0000 (19:39 +0100)]
vkernel/vke: Comment out 'ifp', just like the code that uses it.

11 years agobuild: Only auto-save once per build
John Marino [Wed, 20 Feb 2013 15:59:51 +0000 (16:59 +0100)]
build: Only auto-save once per build

suggested-by: tuxillo

11 years agobce: Switch to IFQ subqueue functions and use per-TX queue watchdog
Sepherosa Ziehau [Wed, 20 Feb 2013 09:50:22 +0000 (17:50 +0800)]
bce: Switch to IFQ subqueue functions and use per-TX queue watchdog

11 years ago<sys/bus.h>: Fix wording.
Sascha Wildner [Wed, 20 Feb 2013 07:38:07 +0000 (08:38 +0100)]
<sys/bus.h>: Fix wording.

Reported-by: marino
11 years agokernel: Use DEVMETHOD_END in the drivers.
Sascha Wildner [Wed, 20 Feb 2013 07:08:39 +0000 (08:08 +0100)]
kernel: Use DEVMETHOD_END in the drivers.

11 years ago<sys/bus.h>: Add DEVMETHOD_END.
Sascha Wildner [Wed, 20 Feb 2013 07:08:11 +0000 (08:08 +0100)]
<sys/bus.h>: Add DEVMETHOD_END.

11 years agokernel - Properly account system time for contending tokens
Matthew Dillon [Wed, 20 Feb 2013 06:56:58 +0000 (22:56 -0800)]
kernel - Properly account system time for contending tokens

* When the LWKT schedule gets stuck on a contending token it switches
  through the idle thread, the idle thread is told not to halt, and
  resolution of the contention is handled by lwkt_switch() from the
  idle thread's context.

* This was causing token contention to be improperly accounted for as
  idle time in the per-cpu stats.  Fix the case by testing the
  RQF_AST_LWKT_RESCHED flag which tells the idle thread not to halt,
  and account for the tick as system time if the flag is set.

* The improper time accounting was causing powerd to come to the wrong
  conclusion in massively parralel fsstress tests on monster.dragonflybsd.org
  (48 cpus).  With the fix, powerd no longer becomes confused.

Reported-by: vsrinivas
11 years agovkernel - Fix if_vke
Matthew Dillon [Tue, 19 Feb 2013 23:29:55 +0000 (15:29 -0800)]
vkernel - Fix if_vke

* The vkernel device driver threads are cothreads and do not have
  any per-cpu data.

* Fix recent stat counter changes which attempted to access per-cpu data
  from a cothread.  This fixes a vkernel SIGILL by virtue of the trap()
  code being called recursively on trap's own attempt to access mycpu,
  until its stack runs out.

11 years agoAdjust files for libarchive-3.1.2 import.
Peter Avalos [Tue, 19 Feb 2013 18:26:30 +0000 (10:26 -0800)]
Adjust files for libarchive-3.1.2 import.

11 years agoMerge branch 'vendor/LIBARCHIVE'
Peter Avalos [Tue, 19 Feb 2013 18:35:19 +0000 (10:35 -0800)]
Merge branch 'vendor/LIBARCHIVE'

11 years agopatch(1): Fix typo.
Sascha Wildner [Tue, 19 Feb 2013 17:51:31 +0000 (18:51 +0100)]
patch(1): Fix typo.

11 years agopatch(1): When -C is specified, do not claim to have saved rejects.
Sascha Wildner [Tue, 19 Feb 2013 17:49:16 +0000 (18:49 +0100)]
patch(1): When -C is specified, do not claim to have saved rejects.

Submitted-by: Loganaden Velvindron
Dragonfly-bug: <http://bugs.dragonflybsd.org/issues/2359>

11 years agobce: Reimplement polling in non-compat mode
Sepherosa Ziehau [Tue, 19 Feb 2013 13:12:04 +0000 (21:12 +0800)]
bce: Reimplement polling in non-compat mode

Take advantage of the independent TX/RX serializers.

11 years agobce: Split TX/RX serializer
Sepherosa Ziehau [Tue, 19 Feb 2013 09:01:50 +0000 (17:01 +0800)]
bce: Split TX/RX serializer

11 years agobce: Defer interrupt allocation until the TX/RX rings are allocated
Sepherosa Ziehau [Tue, 19 Feb 2013 04:57:05 +0000 (12:57 +0800)]
bce: Defer interrupt allocation until the TX/RX rings are allocated

This will be required for implementing MSI-X at least.

11 years agobce: Regroup function declaration
Sepherosa Ziehau [Tue, 19 Feb 2013 04:21:34 +0000 (12:21 +0800)]
bce: Regroup function declaration

11 years agobce: Fix supported devices list in comment
Sepherosa Ziehau [Tue, 19 Feb 2013 04:12:13 +0000 (12:12 +0800)]
bce: Fix supported devices list in comment

11 years agobce: Put RX related fields into bce_rx_ring
Sepherosa Ziehau [Tue, 19 Feb 2013 03:16:37 +0000 (11:16 +0800)]
bce: Put RX related fields into bce_rx_ring

11 years agokernel - Fix a race and enable the VM read shortcut feature by default
Matthew Dillon [Mon, 18 Feb 2013 20:08:29 +0000 (12:08 -0800)]
kernel - Fix a race and enable the VM read shortcut feature by default

* Fix a lookup/access race.  No known cases hit the race but decided
  it needed to be fixed for safety.

  Instead of looking up and holding the VM page we know try to busy it,
  and only access the content if we are able to do so non-blocking.
  This costs a bit more in overhead but handles the page more properly.

  /usr/obj/usr/src
  time tar cf /dev/null .

  0.734u 5.781s 0:06.51 100.0%    24+66k 0+0io 0pf+0w (shorcut disabled)
  0.664u 2.382s 0:03.05 99.6%     24+66k 0+0io 0pf+0w (shorcut enabled)

* Default vm.read_shortcut_enable to 1.  The feature is now enabled by
  default.

* The feature has been in the tree a while default disabled and needs wider
  use, so it is being enabled by default.  The feature is only useful on
  64-bit systems (i.e. so the DMAP can be used).  It allows the buffer
  cache and the VM page mapping code to be completely bypassed in situations
  where the file data is available in the VM page cache.

11 years agorc.d/addswap: Load the vn(4) module if not already present.
Sascha Wildner [Mon, 18 Feb 2013 18:25:50 +0000 (19:25 +0100)]
rc.d/addswap: Load the vn(4) module if not already present.

Reported-by: lentferj
11 years agokernel - Fix rare race in namecache
Matthew Dillon [Mon, 18 Feb 2013 17:50:22 +0000 (09:50 -0800)]
kernel - Fix rare race in namecache

* Fix a rare race in _cache_cleanneg() where the ncp being cleaned up is
  resolved during the moment between where _cache_cleanneg() accesses it
  prior to locking and removing it.

* _cache_cleanneg() needed to re-check that the ncp was still on the
  negative cache list.

Reported-by: marino
11 years agocsu: Fix .eh_frame_hdr errors seen on i386
John Marino [Mon, 18 Feb 2013 00:15:59 +0000 (01:15 +0100)]
csu: Fix .eh_frame_hdr errors seen on i386

The libcsu object files should have been generated with
-fno-asynchronous-unwind-tables.  The crtbegin*, crtend* objects,
specific to a compiler, were generated with this flag on both platforms
as seen in the vendor build.  This commit builds libcsu with the same
cflags on both platforms, and it allows the error frame header to get
built successfully.

This has been seen on i386 for a while, and later bug #2511 hit upon
it outside of the world build.

11 years agobuild - Do not use cp -a
Samuel J. Greear [Sun, 17 Feb 2013 23:40:21 +0000 (16:40 -0700)]
build - Do not use cp -a

* The -a option to cp was added in November, unbreak installworld for those
  running a world built prior to November 2012.

11 years agobuild: implement automatic world backups
John Marino [Sun, 17 Feb 2013 20:14:48 +0000 (21:14 +0100)]
build: implement automatic world backups

The directives DAYS_BACKUP and NO_BACKUP have been removed.
The "backupworld" target will save important directories to the WORLD_BACKUP
directory just as before, and it is restored with the "restoreworld" target.

Additionally, every time the "installworld" target is executed, the same
directories will be automatically backed up at the location of
${MAKEOBJDIRPREFIX}/world_backup .  These directories could be restored
with the new make target "restoreworld-auto".

The WORLD_BACKUP location default is now /var/backups/world_backup .
The directory /usr/lib has been added to the backup list.
The more useless errors seen with a broken world have been removed, these
came in with bmake.

11 years agobuild: Remove installworld backup check
John Marino [Sun, 17 Feb 2013 19:16:53 +0000 (20:16 +0100)]
build: Remove installworld backup check

Dillon wants to rework backup functionality.
1. Remove any check that can halt installworld
2. Backup world automatically and store it in /usr/obj/world_binaries
3. Keep manual backup commands, they still it WORLD_BACKUP as before
4. Get rid of days check

This commit accomplished step 1.

11 years agobce: Put TX related fields into bce_tx_ring
Sepherosa Ziehau [Sun, 17 Feb 2013 13:15:39 +0000 (21:15 +0800)]
bce: Put TX related fields into bce_tx_ring

11 years agovkernel - Allow setting MAC addresses from within the command line.
Antonio Huete Jimenez [Sun, 17 Feb 2013 11:41:45 +0000 (12:41 +0100)]
vkernel - Allow setting MAC addresses from within the command line.

  In order to be able to specify the MAC address we want to
  use for every interface within the vkernel, an extra argument
  has been added to the -I option.

  Example:
   ./kernel -r root.img -m 256m -I auto=aa:bb:cc:dd:ee:ff

11 years agobuild: add "make backupworld" and "make restoreworld" functionality
John Marino [Sun, 17 Feb 2013 11:05:18 +0000 (12:05 +0100)]
build: add "make backupworld" and "make restoreworld" functionality

Three new make.conf parameters have been defined:
  * WORLD_BACKUP - location to store backed up world binaries
                   default = /var/backups/world_binaries
  * DAYS_BACKUP  - The number of days since the last backup that must pass
                   before "make installworld" fails with an error
                   default = 28
  * NO_BACKUP    - defining this will prevent backup checks.

The build functionality has been changed.  Prior to "make installworld",
the makefile will check to see if system binaries have been previously
backed up.  If they haven't, "make installworld" will fail to execute
explaining that the system should be backed up.  If a previous backup
does exist, but it's older than the specified number of days, "make
installworld" will fail explaining the backup needs to be refreshed.

Passing NO_BACKUP through the command line or make.conf will inhibit
these checks.

While here, define WORLD_CCVER, LDVER, WORLD_LDVER, WORLD_BINUTILSVER
in make.conf man page too.

11 years agobce: Factor out bce_xmit()
Sepherosa Ziehau [Sun, 17 Feb 2013 11:07:06 +0000 (19:07 +0800)]
bce: Factor out bce_xmit()

11 years agoImport libarchive-3.1.2.
Peter Avalos [Sun, 17 Feb 2013 10:25:30 +0000 (02:25 -0800)]
Import libarchive-3.1.2.

-Add basic archive read and write filter support for lrzip.
-Implement function used to seek within data blocks.
-Add support for lzop.
-Introduce uuencode filter.
-Introduce b64encode filter.
-Add support for grzip compression.
-Add support for writing v7 tar format.
-Implement functions to manually set the format and filters used.

11 years agoicmp: Disable icmplim_output by default
Sepherosa Ziehau [Sun, 17 Feb 2013 08:18:39 +0000 (16:18 +0800)]
icmp: Disable icmplim_output by default

It spams the console a pretty lot.

11 years agoif: Add compat mode for ifnet stats so that 3rd party apps can work
Sepherosa Ziehau [Sun, 17 Feb 2013 08:00:36 +0000 (16:00 +0800)]
if: Add compat mode for ifnet stats so that 3rd party apps can work

If ifnet stats compat mode is enabled, the per-CPU ifnet stats will
be collected into ifnet old stats location in the if slow timer.

Sysctl node net.link.stats_compat is used to control whether the
ifnet stats compat mode should be enabled or not; it is _not_ enabled
by default.

11 years agokernel/vinum: Fix userland fallout from my -Wundef kernel fixes.
Sascha Wildner [Sun, 17 Feb 2013 00:23:47 +0000 (01:23 +0100)]
kernel/vinum: Fix userland fallout from my -Wundef kernel fixes.

This file is used in userland too, so make the inclusion of opt_vinum.h
kernel specific (as is the code that uses its VINUMDEBUG).

Reported-by: Max Herrgard <herrgard@gmail.com>
11 years agokernel: Move some externs under INET too.
Sascha Wildner [Sat, 16 Feb 2013 18:42:33 +0000 (19:42 +0100)]
kernel: Move some externs under INET too.

11 years agokernel: A few small fixes to make a minimal kernel config compile.
Sascha Wildner [Sat, 16 Feb 2013 18:32:38 +0000 (19:32 +0100)]
kernel: A few small fixes to make a minimal kernel config compile.

It is solely for my build testing purposes:

platform        pc64
machine         x86_64
machine_arch    x86_64
ident           MINI
cpu             HAMMER_CPU

* Put two INET specific functions in uipc_socket.c under #ifdef INET.

* Compile in isa_intr.c only when isa is specified in the config.

* Move PCI specific include under #if 0 too in mp_clock.c

* In nexus.c, compile in PCI specific parts only when pci is
  specified in the config.

11 years agoccdconfig(8): When ccd can't be kldloaded, explain a possible reason.
Sascha Wildner [Sat, 16 Feb 2013 16:49:01 +0000 (17:49 +0100)]
ccdconfig(8): When ccd can't be kldloaded, explain a possible reason.

If /etc/ccd.conf is present, /etc/rc.d/ccd will run ccdconfig in the
early boot when only root is mounted read-only. On HAMMER systems (or
any other system where /boot isn't part of the root partition) it can
not automatically load ccd.ko at this point. This was different on
UFS where /boot was usually not separate.

So in case it fails, give the user a better message that explains the
options he has.

Dragonfly-bug: <http://bugs.dragonflybsd.org/issues/2439>
Reported-by: Christer Solskogen
11 years agomfi(4): Add D_MPSAFE to the disk flags.
Sascha Wildner [Sat, 16 Feb 2013 15:27:28 +0000 (16:27 +0100)]
mfi(4): Add D_MPSAFE to the disk flags.

When porting it, I didn't know that this is indicated by the _absence_
of DISKFLAG_NEEDSGIANT.

Tested-by: ftigeot
11 years agokernel: Fix various -Wundef warnings.
Sascha Wildner [Sat, 16 Feb 2013 13:28:22 +0000 (14:28 +0100)]
kernel: Fix various -Wundef warnings.

11 years agokernel/sound: Use pci_{get,set}_powerstate(). Fixes -Wundef.
Sascha Wildner [Sat, 16 Feb 2013 13:20:41 +0000 (14:20 +0100)]
kernel/sound: Use pci_{get,set}_powerstate(). Fixes -Wundef.

11 years agobnx: Support 5717 C0, which is almost same as 5720 A0
Sepherosa Ziehau [Sat, 16 Feb 2013 13:02:01 +0000 (21:02 +0800)]
bnx: Support 5717 C0, which is almost same as 5720 A0

Obtained-from: tg3

11 years agopcidevs: regen
Sepherosa Ziehau [Sat, 16 Feb 2013 12:46:29 +0000 (20:46 +0800)]
pcidevs: regen

11 years agopcidevs: Add PCi device ID for Broadcom 5717C
Sepherosa Ziehau [Sat, 16 Feb 2013 12:45:57 +0000 (20:45 +0800)]
pcidevs: Add PCi device ID for Broadcom 5717C

11 years agokernel/nmdm: Comment variables which are only used in commented code.
Sascha Wildner [Sat, 16 Feb 2013 12:49:15 +0000 (13:49 +0100)]
kernel/nmdm: Comment variables which are only used in commented code.

11 years agokernel/drm: Put two variables under #if 0 for future use (see comment).
Sascha Wildner [Sat, 16 Feb 2013 12:44:37 +0000 (13:44 +0100)]
kernel/drm: Put two variables under #if 0 for future use (see comment).

11 years agokernel: Remove some unused variables.
Sascha Wildner [Sat, 16 Feb 2013 12:42:04 +0000 (13:42 +0100)]
kernel: Remove some unused variables.

11 years agokernel: Handle some variables only used in debug output.
Sascha Wildner [Sat, 16 Feb 2013 11:32:10 +0000 (12:32 +0100)]
kernel: Handle some variables only used in debug output.

11 years agobsd.cpu.gcc47.mk: Add default cpu extensions
John Marino [Sat, 16 Feb 2013 12:48:47 +0000 (13:48 +0100)]
bsd.cpu.gcc47.mk: Add default cpu extensions

For the normal case, a standard MACHINE_CPU is supposed to be defined, but
that wasn't happening.  Copy code from bsd.cpu.gcc44.mk to fix dports
looking at MACHINE_CPU variable value.

11 years agobce: Remove debug stuffs
Sepherosa Ziehau [Sat, 16 Feb 2013 11:12:36 +0000 (19:12 +0800)]
bce: Remove debug stuffs

opt_bce.h is still kept, which will be needed for multiple RX/TX queues
debugging options.

11 years agotws(4): Fix a typo in a debug message.
Sascha Wildner [Sat, 16 Feb 2013 11:23:19 +0000 (12:23 +0100)]
tws(4): Fix a typo in a debug message.

11 years agojme: Avoid using magic number for TX register writing aggregation
Sepherosa Ziehau [Sat, 16 Feb 2013 10:45:37 +0000 (18:45 +0800)]
jme: Avoid using magic number for TX register writing aggregation

11 years agobce: Make TX register writing aggregation tunable
Sepherosa Ziehau [Sat, 16 Feb 2013 10:39:35 +0000 (18:39 +0800)]
bce: Make TX register writing aggregation tunable

11 years agobnx: Avoid using magic number for TX register writing aggregation
Sepherosa Ziehau [Sat, 16 Feb 2013 10:37:48 +0000 (18:37 +0800)]
bnx: Avoid using magic number for TX register writing aggregation

11 years agobge: Avoid using magic number for TX register writing aggregation
Sepherosa Ziehau [Sat, 16 Feb 2013 10:36:16 +0000 (18:36 +0800)]
bge: Avoid using magic number for TX register writing aggregation

11 years agokernel: Use __debugvar for stack variables used only by assertion
Sepherosa Ziehau [Sat, 16 Feb 2013 10:29:16 +0000 (18:29 +0800)]
kernel: Use __debugvar for stack variables used only by assertion

11 years agoem/emx: Avoid using magic number for TX register writing aggregation
Sepherosa Ziehau [Sat, 16 Feb 2013 10:01:00 +0000 (18:01 +0800)]
em/emx: Avoid using magic number for TX register writing aggregation

11 years agoigb: Fix comment
Sepherosa Ziehau [Sat, 16 Feb 2013 09:58:56 +0000 (17:58 +0800)]
igb: Fix comment

11 years agoigb: Remove unused macros
Sepherosa Ziehau [Sat, 16 Feb 2013 09:54:16 +0000 (17:54 +0800)]
igb: Remove unused macros

11 years agomtree: Remove /usr/libdata/lint. Must've overlooked it.
Sascha Wildner [Sat, 16 Feb 2013 09:22:45 +0000 (10:22 +0100)]
mtree: Remove /usr/libdata/lint. Must've overlooked it.

11 years agoccd.4: Break line after sentence.
Sascha Wildner [Wed, 13 Feb 2013 23:11:55 +0000 (00:11 +0100)]
ccd.4: Break line after sentence.

11 years agoccd.4: Add a conventional synopsis and remove config info in the text.
Sascha Wildner [Fri, 15 Feb 2013 17:13:32 +0000 (18:13 +0100)]
ccd.4: Add a conventional synopsis and remove config info in the text.

11 years agomtree: Add back a directory which I removed by mistake.
Sascha Wildner [Fri, 15 Feb 2013 16:49:47 +0000 (17:49 +0100)]
mtree: Add back a directory which I removed by mistake.

11 years agonetstat: Make "netstat -w" aware of new ifnet stats location
Sepherosa Ziehau [Fri, 15 Feb 2013 09:18:20 +0000 (17:18 +0800)]
netstat: Make "netstat -w" aware of new ifnet stats location

11 years agoif: Per-cpu ifnet/ifaddr statistics, step 3/3
Sepherosa Ziehau [Fri, 15 Feb 2013 08:15:47 +0000 (16:15 +0800)]
if: Per-cpu ifnet/ifaddr statistics, step 3/3

Make ifnet stats per-cpu.  The per-cpu stats are stored in cache aligned
ifdata_pcpu struct.

- if_mib code is adjusted, so callers of the IFMIB_IFDATA sysctl will not
  aware of the ifnet per-cpu stats, e.g. systat -if
- User space programs that directly access ifnet.if_data are modified to
  aware of the new location of the ifnet stats, e.g. netstat -in

11 years agoif: Per-cpu ifnet/ifaddr statistics, step 2/3
Sepherosa Ziehau [Fri, 15 Feb 2013 06:06:32 +0000 (14:06 +0800)]
if: Per-cpu ifnet/ifaddr statistics, step 2/3

Make ifaddr stats per-cpu.  The per-cpu stats are embedded into
ifaddr_container, which already carries per-cpu data for ifaddr.

11 years agoif: Per-cpu ifnet/ifaddr statistics, step 1/3
Sepherosa Ziehau [Wed, 13 Feb 2013 06:00:14 +0000 (14:00 +0800)]
if: Per-cpu ifnet/ifaddr statistics, step 1/3

Wrap ifnet/ifaddr stats updating, setting and extraction into macros;
ease upcoming changes.

11 years agotzsetup: Sync with FreeBSD.
Peter Avalos [Thu, 14 Feb 2013 18:23:09 +0000 (10:23 -0800)]
tzsetup: Sync with FreeBSD.

Primarily this is an update for the new libdialog, but while I'm here:

- Add a menu entry for UTC in the main menu.
- Add support for chrooted installs.
- Add examples to the man-page.
- Instead of having to know which timezone was picked last time, you
now can run "tzsetup -r" which will reinstall the last choice. This
data is recorded in /var/db/zoneinfo.
- Add a new options (-s) that, when specified, skips the question about
adjusting the clock to UTC. That avoids to write on /etc/wall_cmos_clock
which is useful in some cases (example: host user in a jail).
- Remove paths.h and embed it in the source.
- Fix style(9) issues.

Obtained-from:   FreeBSD

11 years agoDrag libdialog into the 21st century.
Peter Avalos [Thu, 14 Feb 2013 18:39:52 +0000 (10:39 -0800)]
Drag libdialog into the 21st century.

This updates libdialog and dialog's build to use contrib/dialog.
This also breaks buildworld since tzsetup needs to be ported over (see
next commit).

11 years agoAdd a README.DRAGONFLY for contrib/dialog.
Peter Avalos [Tue, 12 Feb 2013 06:02:54 +0000 (22:02 -0800)]
Add a README.DRAGONFLY for contrib/dialog.

11 years agodialog: Add README.DELETED.
Peter Avalos [Sun, 10 Feb 2013 13:24:49 +0000 (05:24 -0800)]
dialog: Add README.DELETED.

11 years agoImport dialog-1.2-20121230.
Peter Avalos [Sun, 10 Feb 2013 12:24:43 +0000 (04:24 -0800)]
Import dialog-1.2-20121230.

11 years agoUpdate locale and i18n files.
Sascha Wildner [Thu, 14 Feb 2013 10:29:42 +0000 (11:29 +0100)]
Update locale and i18n files.

This fixes <http://bugs.dragonflybsd.org/issues/2462> and at the same
fixes the "Couldn't read shell's output for..." warnings we were
getting with bmake in share/i18n/esdb.

Reported-by: marino
Taken-from:  FreeBSD, NetBSD

11 years agobsd.libnames.mk: Add LIBNCURSESW.
Peter Avalos [Tue, 12 Feb 2013 05:10:48 +0000 (21:10 -0800)]
bsd.libnames.mk: Add LIBNCURSESW.

11 years agoUpdate files for OpenSSL-1.0.1e import.
Peter Avalos [Wed, 13 Feb 2013 17:25:31 +0000 (09:25 -0800)]
Update files for OpenSSL-1.0.1e import.

11 years agoMerge branch 'vendor/OPENSSL'
Peter Avalos [Wed, 13 Feb 2013 17:19:10 +0000 (09:19 -0800)]
Merge branch 'vendor/OPENSSL'

11 years agoImport OpenSSL-1.0.1e.
Peter Avalos [Wed, 13 Feb 2013 17:15:43 +0000 (09:15 -0800)]
Import OpenSSL-1.0.1e.

o Corrected fix for CVE-2013-0169.

11 years agotap: Define TAP_MANUALMAKE; unbreak building
Sepherosa Ziehau [Wed, 13 Feb 2013 13:11:47 +0000 (21:11 +0800)]
tap: Define TAP_MANUALMAKE; unbreak building

11 years agobridge: Disable TSO on member interface
Sepherosa Ziehau [Wed, 13 Feb 2013 05:44:54 +0000 (13:44 +0800)]
bridge: Disable TSO on member interface

Report-by: dillon@
11 years agolibssl - Fix bug in libssl
Matthew Dillon [Wed, 13 Feb 2013 00:15:12 +0000 (16:15 -0800)]
libssl - Fix bug in libssl

* Fix a bug that was causing openssl's TLS code to assert.

* I believe the bug is already fixed in the openssl git master, but
  it isn't fixed in our sources (until now).

* Patch acquired from:

  fetch "http://git.openssl.org/gitweb/?p=openssl.git;a=patch;h=32cc247"

11 years agokernel - Do not auto-destroy tap interfaces which are manually created
Matthew Dillon [Wed, 13 Feb 2013 00:11:08 +0000 (16:11 -0800)]
kernel - Do not auto-destroy tap interfaces which are manually created

* When a tap interface is created via 'ifconfig tapN create' it
  will no longer be automatically destroyed on the last close.

* Previously could occur for tap units 4 or larger.

* Fixes unexpected ripouts of manually created interfaces, which
  can be particularly bad when the interface is used in a PF rule.

11 years agotip(1): Remove the clearing of the schg flag of cu(1) during installation.
Sascha Wildner [Tue, 12 Feb 2013 21:41:39 +0000 (22:41 +0100)]
tip(1): Remove the clearing of the schg flag of cu(1) during installation.

A long, long time ago (until 2004), when cu(1) was still a separate
program, its schg flag was set after installation, so it had to be
cleared on the installed cu before installing the new one over it.

In 0f3db4ffe, we removed cu(1) as a separate program and made it a
link to tip(1). In this commit, the setting of schg was commented
out but the clearing part had to be kept (for upgrading).

We can now remove the clearing of the flag as well, because we can
safely assume that since September 2004, all schg flags of cu(1)s
out there have been cleared (i.e., all systems that would ever want
to upgrade to master have a world newer than 0f3db4ffe).