dragonfly.git
3 years agoHook the vm_page_alloc.9 manual page into the build.
Sascha Wildner [Wed, 22 Dec 2010 05:21:47 +0000 (06:21 +0100)]
Hook the vm_page_alloc.9 manual page into the build.

3 years agoImport vm_page_alloc manpage from FreeBSD and add DFly-specifics.
Venkatesh Srinivas [Wed, 22 Dec 2010 02:53:49 +0000 (18:53 -0800)]
Import vm_page_alloc manpage from FreeBSD and add DFly-specifics.

3 years agoConvert netstat/inet6.c to use a standard NELEM. (buildworld fixes).
Venkatesh Srinivas [Tue, 21 Dec 2010 22:38:43 +0000 (14:38 -0800)]
Convert netstat/inet6.c to use a standard NELEM. (buildworld fixes).

Reported-by: pavalos@
3 years agoRestore __arysize to stdint.h. Userland was including and using __arysize.
Venkatesh Srinivas [Tue, 21 Dec 2010 22:02:14 +0000 (14:02 -0800)]
Restore __arysize to stdint.h. Userland was including and using __arysize.

Reported-by: Santabolt on #dragonflybsd
3 years agokernel -- Convert sfbuf to use kref.
Venkatesh Srinivas [Tue, 21 Dec 2010 21:45:27 +0000 (13:45 -0800)]
kernel -- Convert sfbuf to use kref.

kref_dec was also modified to return an int, whether it saw a 1 -> 0
transition (0) or not (1).

3 years agoCode clean -- nuke private defines of __arysize and arysize, replace with NELEM.
Venkatesh Srinivas [Tue, 21 Dec 2010 20:25:54 +0000 (12:25 -0800)]
Code clean -- nuke private defines of __arysize and arysize, replace with NELEM.

3 years agokernel -- Implement kref, a very lightweight reference counting system.
Venkatesh Srinivas [Tue, 21 Dec 2010 20:08:55 +0000 (12:08 -0800)]
kernel -- Implement kref, a very lightweight reference counting system.

3 years agoroute(8)/routed(8): Raise WARNS to 6.
Sascha Wildner [Tue, 21 Dec 2010 19:22:25 +0000 (20:22 +0100)]
route(8)/routed(8): Raise WARNS to 6.

3 years agoUpdate MPIPE manual page to describe MPF_CACHEDATA & remove old lock comment.
Venkatesh Srinivas [Tue, 21 Dec 2010 17:23:48 +0000 (09:23 -0800)]
Update MPIPE manual page to describe MPF_CACHEDATA & remove old lock comment.

3 years agokgdb(1): Adjust comments, too.
Sascha Wildner [Tue, 21 Dec 2010 16:57:55 +0000 (17:57 +0100)]
kgdb(1): Adjust comments, too.

3 years agokgdb(1): Fix finding the right kernel for symbols when using -n.
Sascha Wildner [Tue, 21 Dec 2010 16:36:34 +0000 (17:36 +0100)]
kgdb(1): Fix finding the right kernel for symbols when using -n.

Due to a change of kernel names in /var/crash (kernel.xx -> kern.xx)
kgdb(1) wasn't finding the kernel anymore and resorted to the one in
/usr/obj.

3 years agolast(1): Raise WARNS to 6.
Sascha Wildner [Tue, 21 Dec 2010 12:43:49 +0000 (13:43 +0100)]
last(1): Raise WARNS to 6.

3 years agotcp: Don't allow persist timer if TCP connection is not established yet
Sepherosa Ziehau [Tue, 21 Dec 2010 08:26:34 +0000 (16:26 +0800)]
tcp: Don't allow persist timer if TCP connection is not established yet

This probably could move the un-updated snd_nxt panic earlier.

The dump of the panic in http://bugs.dragonflybsd.org/issue1939 shows
- snd_nxt is less than snd_una
- A persist timer was fired (frame 16, tp->tt_msg->tt_prev_tasks).
- The TCP segment triggered the panic has SYN|ACK (frame 17, th->th_flags).
  This TCP segment is considered as valid (frame 17, list), so tp->t_state
  was SYN_SENT.

This explains why snd_nxt is less than snd_una:
If tcp_output() is called by persist timer, then the persist timer is
active and the "forced" is turned on, this causes the snd_nxt not updated
at all.

MISSING CHIAN IN THE LINK:
How is the persist timer got set in the SYN_SENT in the first place?

Hope the new panic could lift the veil...

3 years agoBring in mps(4) for LSI Fusion-MPT 2 Serial Attached SCSI controllers.
Sascha Wildner [Tue, 21 Dec 2010 04:46:53 +0000 (05:46 +0100)]
Bring in mps(4) for LSI Fusion-MPT 2 Serial Attached SCSI controllers.

The driver should support the following controllers:

* LSI Logic SAS2004 (4 Port SAS)
* LSI Logic SAS2008 (8 Port SAS)
* LSI Logic SAS2108 (8 Port SAS)
* LSI Logic SAS2116 (16 Port SAS)
* LSI Logic SAS2208 (8 Port SAS)

Due to it still being in in development (Integrated RAID isn't supported,
for example), it's only hooked into the module build and added to LINT.

The port hasn't received any testing at all other than make it build. But
it is known that Matt has such a controller. :-)

Thanks to FreeBSD from which this driver is taken.

3 years agoFix buildworld for latest liblzma/libarchive changes.
Peter Avalos [Tue, 21 Dec 2010 00:32:55 +0000 (14:32 -1000)]
Fix buildworld for latest liblzma/libarchive changes.

3 years agolibarchive: link in liblzma.
Peter Avalos [Mon, 20 Dec 2010 20:23:19 +0000 (10:23 -1000)]
libarchive:  link in liblzma.

Reported-by: dillon@

3 years agoFix VKERNEL/VKERNEL64 build.
Sascha Wildner [Mon, 20 Dec 2010 12:30:29 +0000 (13:30 +0100)]
Fix VKERNEL/VKERNEL64 build.

3 years agoutmpx - Bring in ${foo}x.3 manpages from NetBSD
Alex Hornung [Mon, 20 Dec 2010 07:11:48 +0000 (07:11 +0000)]
utmpx - Bring in ${foo}x.3 manpages from NetBSD

3 years agokernel - vm_page BUSY handling, change vm_page_cache() API, maybe fix seg-fault
Matthew Dillon [Mon, 20 Dec 2010 05:52:36 +0000 (21:52 -0800)]
kernel - vm_page BUSY handling, change vm_page_cache() API, maybe fix seg-fault

* All vm_page_deactivate() calls now operate with the caller holding
  the page PG_BUSY or the page known not to be busy.  Reorder several
  cases where a vm_page is unbusied prior to calling deactivate.

* vm_page_cache() now expected the vm_page to be PG_BUSY and will cache
  the page and clear the bit.

* Fix a race in vm_pageout_page_free() which calls vm_object_reference()
  with an unbusied vm_page, then proceeds to busy and free the page.
  The problem is that vm_object_reference() can block on vmobj_token.

  This may fix the x86-64 seg-fault issue.  Or it may not (throws up hands).

* Remove incorrect KKASSERT which was causing bogus panics.

3 years agokernel - Implement POLLING support for if_igb, change token->lockmgr lock
Matthew Dillon [Mon, 20 Dec 2010 01:24:29 +0000 (17:24 -0800)]
kernel - Implement POLLING support for if_igb, change token->lockmgr lock

* Clean up the polling code so it works.

* Use a lockmgr lock instead of a token, the original driver writer
  expected a normal lock.

3 years agokernel - Optimize idle thread halt
Matthew Dillon [Sun, 19 Dec 2010 19:17:36 +0000 (11:17 -0800)]
kernel - Optimize idle thread halt

* Count the number of times the idle thread is entered on a cpu without
  switching to a non-idle thread.  Use the fast-halt (non-ACPI) until the
  count exceeds a reasonable machdep.cpu_idle_repeat.

  This improves the default performance to levels closer to cpu_idle_hlt
  mode 1 but still gives us the power savings from mode 3.  Performanced is
  improved significantly because many threads on SMP boxes are event
  or pipe oriented and only sleep for short periods of time or ping-pong
  back and forth.  For example, a cc -pipe, or typical kernel threads
  blocking on tokens or locks for short periods of time.

* Adjust machdep.cpu_idle_hlt modes:

    0 Never halt, the idle thread just spins.

    1 Always use a fast HLT/MONITOR/MWAIT

    2 Hybrid approach use (1) up to a certain point, then use (3).
(this is the default)

    3 Always use the ACPI halt

3 years agokernel - Add MONITOR/MWAIT support to the LWKT scheduler
Matthew Dillon [Sun, 19 Dec 2010 17:25:17 +0000 (09:25 -0800)]
kernel - Add MONITOR/MWAIT support to the LWKT scheduler

* Adjust the FIFO contention resequencer (which deals with spinning
  on tokens) to use MONITOR/MWAIT when available instead of DELAY(1)
  when waiting to become the head of the queue.

* Adjust the x86-64 idle loop to use MONITOR/MWAIT when available when
  the idle halt mode (machdep.cpu_idle_hlt) is set to 1.  This
  significantly improves performance for event-oriented programs, including
  compile pipelines.

  NOTE: On the 48-core monster setting machdep.cpu_idle_hlt to 1 improves
  performance but at the cost of an additional 200W of power at idle vs
  the default value of 2 (ACPI idle halt).  Look for a hybrid approach in
  a future commit.

3 years agoMerge branch 'master' of git://git.dragonflybsd.org/dragonfly
Charlie [Sun, 19 Dec 2010 16:44:17 +0000 (11:44 -0500)]
Merge branch 'master' of git://git.dragonflybsd.org/dragonfly

3 years agoInterbench -- Do not compare strings with ==.
Venkatesh Srinivas [Sun, 19 Dec 2010 16:39:46 +0000 (11:39 -0500)]
Interbench -- Do not compare strings with ==.

3 years agoUpdate to libarchive-2.8.4.
Peter Avalos [Sun, 19 Dec 2010 11:46:45 +0000 (01:46 -1000)]
Update to libarchive-2.8.4.

This includes support for lzma and no longer relies on OpenSSL for hash
functions.

3 years agoMerge branch 'vendor/LIBARCHIVE' into HEAD
Peter Avalos [Sun, 19 Dec 2010 12:50:48 +0000 (02:50 -1000)]
Merge branch 'vendor/LIBARCHIVE' into HEAD

3 years agoAdd SHA384 functions to libmd.
Peter Avalos [Sun, 19 Dec 2010 10:32:24 +0000 (00:32 -1000)]
Add SHA384 functions to libmd.

3 years agojme: Rework software reset procedure
Sepherosa Ziehau [Sun, 19 Dec 2010 12:07:13 +0000 (20:07 +0800)]
jme: Rework software reset procedure

There is a wired TX/RX clock synchronization issues during software reset.
To address these issues we have to disable and enable TX/RX clocks several
times according to JMicron's document.

These clock synchronization issues seem to affect JMC250C/JMC260C chips,
however, it is claimed that these issues affact all JMC250/JMC260 chips.

Thank JMicron for providing JMC250C samples and detailed document.

3 years agoHook up liblzma, lzmainfo, xz, and xzdec to the build.
Peter Avalos [Sun, 19 Dec 2010 06:26:34 +0000 (20:26 -1000)]
Hook up liblzma, lzmainfo, xz, and xzdec to the build.

3 years agoMerge branch 'vendor/XZ' into HEAD
Peter Avalos [Sun, 19 Dec 2010 07:58:21 +0000 (21:58 -1000)]
Merge branch 'vendor/XZ' into HEAD

3 years agoRearrange lib/Makefile.
Peter Avalos [Sun, 19 Dec 2010 01:16:19 +0000 (15:16 -1000)]
Rearrange lib/Makefile.

Use one line per subdir.  This greatly improves readability.

Remove libraries we don't have any more from the comments.

3 years agoImport xz-5.0.0.
Peter Avalos [Sun, 19 Dec 2010 00:24:26 +0000 (14:24 -1000)]
Import xz-5.0.0.

This is from the XZ Utils project: http://tukaani.org/xz/

3 years agoRename cpu_mmw_pause(l) to cpu_mmw_pause_(int/long)
Venkatesh Srinivas [Sat, 18 Dec 2010 23:28:08 +0000 (15:28 -0800)]
Rename cpu_mmw_pause(l) to cpu_mmw_pause_(int/long)

3 years agoUse xorq, not xorl, for RAX on x64.
Venkatesh Srinivas [Sat, 18 Dec 2010 23:20:32 +0000 (15:20 -0800)]
Use xorq, not xorl, for RAX on x64.

3 years agokernel -- Replace cpu_mmw_mwait with _pause, which doesn't loop. Correct bugs.
Venkatesh Srinivas [Sat, 18 Dec 2010 23:18:52 +0000 (15:18 -0800)]
kernel -- Replace cpu_mmw_mwait with _pause, which doesn't loop. Correct bugs.

3 years agokernel -- Monitor/Mwait routine for x64; (untested!)
Venkatesh Srinivas [Sat, 18 Dec 2010 21:44:05 +0000 (13:44 -0800)]
kernel -- Monitor/Mwait routine for x64; (untested!)

3 years agokernel -- Correct bug in i386 monitor / mwait routine and change to long type.
Venkatesh Srinivas [Sat, 18 Dec 2010 21:43:13 +0000 (13:43 -0800)]
kernel -- Correct bug in i386 monitor / mwait routine and change to long type.

3 years agokernel -- Add MONITOR and MWAIT routine to i386 kernel.
Venkatesh Srinivas [Sat, 18 Dec 2010 15:24:58 +0000 (07:24 -0800)]
kernel -- Add MONITOR and MWAIT routine to i386 kernel.

Provides cpu_mmw_spin() and cpu_mmw_mwait(), both of which wait for a given
memory cell to contain a value different from an expected value. _spin()
merely spins on the cell; _mwait() uses the SSE3 MONITOR/MWAIT isns.

3 years agokernel - scheduler adjustments for large ncpus / 48-core monster
Matthew Dillon [Sat, 18 Dec 2010 08:42:52 +0000 (00:42 -0800)]
kernel - scheduler adjustments for large ncpus / 48-core monster

* Change the LWKT scheduler's token spinning algorithm.  It used to
  DELAY a short period of time and then simply retry, creating a lot
  of contention between cpus trying to acquire a token.

  Now the LWKT scheduler uses a FIFO index mechanic to resequence the
  contending cpus into 1uS retry slots using essentially just
  atomic_fetchadd_int(), so it is very cache friendly.  The spin-retry
  thus has a bounded cache management traffic load regardless of
  the number of cpus and contending cpus will not be tripping over
  each other.

  The new algorithm slightly regresses 4-cpu operation (~5% under heavy
  contention) but significantly improves 48-cpu operation.  It is also
  flexible enough for further work down the road.  The old algorithm
  simply did not scale very well.

  Add three sysctls:

  sysctl lwkt.spin_method=1

0    Allow a user thread to be scheduled on a cpu while kernel
     threads are contended on a token, using the IPI mechanic
     to interrupt the user thread and reschedule on decontention.

     This can potentially result in excessive IPI traffic.

1    Allow a user thread to be scheduled on a cpu while kernel
     threads are contended on a token, reschedule on the next clock
     tick (100 Hz typically).  Decontention will NOT generate
     any IPI traffic.  DEFAULT.

2    Do not allow a user thread to be scheduled on a cpu while
     kernel threads are contended.  Should not be used normally,
     for debugging only.

  sysctl lwkt.spin_delay=1

Slot time in microseconds, default 1uS.  Recommended values are
1 or 2 but not longer.

  sysctl lwkt.spin_loops=10

Number of times the LWKT scheduler loops on contended threads
before giving up and allowing an idle-thread HLT.  In order to
wake up from the HLT decontention will cause an IPI so you do
not want to set this value too small and.  Values between
10 and 100 are recommended.

* Redo the token decontention algorithm.  Use a new gd_reqflags flag,
  RQF_WAKEUP, coupled with RQF_AST_LWKT_RESCHED in the per-cpu globaldata
  structure to determine what cpus actually need to be IPId on token
  decontention (to wakeup their idle threads stuck in HLT).

  This requires that all gd_reqflags operations use locked atomic
  instructions rather than non-locked instructions.

* Decontention IPIs are a last-gasp effort if the LWKT scheduler has spun
  too many times.  Under normal conditions, even under heavy contention,
  actual IPIing should be minimal.

3 years agoutilities - Print the cpu id for running and runnable threads
Matthew Dillon [Sat, 18 Dec 2010 08:35:13 +0000 (00:35 -0800)]
utilities - Print the cpu id for running and runnable threads

* The cpuid was only being printed for the currently running thread on
  a cpu.  Also print it for any scheduled (runnable) threads on that cpu
  even if they aren't the currently running thread.

3 years agokernel - Fix M_NOWAIT's in e1000/if_igb driver
Matthew Dillon [Sat, 18 Dec 2010 08:34:27 +0000 (00:34 -0800)]
kernel - Fix M_NOWAIT's in e1000/if_igb driver

* M_NOWAITs should be M_INTWAITs.  Fixes numerous boot-time problems
  with the driver.

3 years agokernel -- Remove fo_poll.
Venkatesh Srinivas [Sat, 18 Dec 2010 01:08:22 +0000 (17:08 -0800)]
kernel -- Remove fo_poll.

3 years agoMerge branch 'master' of /repository/git/dragonfly
Venkatesh Srinivas [Fri, 17 Dec 2010 18:06:45 +0000 (10:06 -0800)]
Merge branch 'master' of /repository/git/dragonfly

3 years agokernel -- vnlru: Resolve minor race between vnlru_proc_wait and vnlru_proc.
Venkatesh Srinivas [Fri, 17 Dec 2010 17:46:46 +0000 (09:46 -0800)]
kernel -- vnlru: Resolve minor race between vnlru_proc_wait and vnlru_proc.

vnlru_proc_wait should have been using tsleep_interlock, not tsleep, to avoid
missed wakeups from the vnlru process.

3 years agomanpages: Remove some unneeded .Pp's.
Sascha Wildner [Fri, 17 Dec 2010 14:45:34 +0000 (15:45 +0100)]
manpages: Remove some unneeded .Pp's.

3 years agofortune - change dig to drill
Max Herrgård [Wed, 15 Dec 2010 20:28:09 +0000 (21:28 +0100)]
fortune - change dig to drill

3 years agolast - add forgotten files
Alex Hornung [Thu, 16 Dec 2010 17:35:43 +0000 (17:35 +0000)]
last - add forgotten files

3 years agoFix build of last(1).
Sascha Wildner [Thu, 16 Dec 2010 16:42:53 +0000 (17:42 +0100)]
Fix build of last(1).

3 years agossh - use utmpx
Alex Hornung [Sun, 5 Dec 2010 09:57:02 +0000 (09:57 +0000)]
ssh - use utmpx

3 years agoutmpx - Bring in utmpx,wtmpx and lastlogx support
Alex Hornung [Sun, 4 Oct 2009 17:44:56 +0000 (18:44 +0100)]
utmpx - Bring in utmpx,wtmpx and lastlogx support

* This commit introduces the necessary support for utmpx, wtmpx and
  lastlogx, as well as updating many base utils to work with these
  while mostly maintaining compatibility with the old utmp, wtmp and
  lastlog.

* The new last(1) supports wtmpx but defaults to wtmp as not all wtmp
  writers have been updated for wtmpx.

* All utmp readers support both utmp and utmpx now.

* lastlogin (the only lastlog reader) supports both lastlog and
  lastlogx.

* The utils who(1) and finger have been almost directly replaced by
  their NetBSD equivalent. In case of who(1) the only custom
  modification is the behaviour of '-b' to be as it has always been.

* Partially-Obtained-from: NetBSD

3 years agotzfile.h - install as include
Alex Hornung [Wed, 15 Dec 2010 19:05:47 +0000 (19:05 +0000)]
tzfile.h - install as include

3 years agotest
Sepherosa Ziehau [Thu, 16 Dec 2010 08:21:51 +0000 (16:21 +0800)]
test

3 years agotwe(4): Add some missing newlines in system messages.
Sascha Wildner [Thu, 16 Dec 2010 07:11:08 +0000 (08:11 +0100)]
twe(4): Add some missing newlines in system messages.

3 years agokernel - IPI subset of cpus on token de-collision.
Matthew Dillon [Wed, 15 Dec 2010 20:46:44 +0000 (12:46 -0800)]
kernel - IPI subset of cpus on token de-collision.

* Implement sysctl lwkt.token_ipi_dispatch and set the default value
  to 4, meaning when a token is released up to 4 conflicting cpus
  will be IPId to wake them up.

* Saves 20-40W under load on the 48-core monster (out of ~450W
  or so).

3 years agoMerge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly
Matthew Dillon [Wed, 15 Dec 2010 20:32:54 +0000 (12:32 -0800)]
Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly

3 years agokern_proc - add kern.proc.cwd sysctl
Alex Hornung [Wed, 15 Dec 2010 11:38:25 +0000 (11:38 +0000)]
kern_proc - add kern.proc.cwd sysctl

* Add a kern.proc.cwd sysctl to be able to get the cwd of processes.
  Many terminal emulators need something this to set a window title.
  Right now, some simply don't work (konsole) and others (Terminal) use
  linprocfs.

3 years agokinfo.h - Document the units of some members
Alex Hornung [Wed, 15 Dec 2010 11:38:07 +0000 (11:38 +0000)]
kinfo.h - Document the units of some members

3 years agolibcrypt - install crypt.h header
Alex Hornung [Wed, 15 Dec 2010 11:37:21 +0000 (11:37 +0000)]
libcrypt - install crypt.h header

* Install the crypt.h header since some software (i.e. KDE) checks for
  crypt.h to decide whether it needs to link against libcrypt to be able
  to use crypt().

3 years agoif_clone: Don't destroy iface which is not create through if_clone mechanism
Sepherosa Ziehau [Tue, 14 Dec 2010 14:06:32 +0000 (22:06 +0800)]
if_clone: Don't destroy iface which is not create through if_clone mechanism

DragonFly-bug: http://bugs.dragonflybsd.org/issue1919

3 years agoSerialize IFADDR alteration by netisr0
Sepherosa Ziehau [Tue, 14 Dec 2010 13:13:21 +0000 (21:13 +0800)]
Serialize IFADDR alteration by netisr0

3 years agoImport libarchive-2.8.4.
Peter Avalos [Wed, 15 Dec 2010 08:07:20 +0000 (22:07 -1000)]
Import libarchive-2.8.4.

3 years agoRe-add README.DELETED to libarchive's vendor branch.
Peter Avalos [Wed, 15 Dec 2010 07:14:13 +0000 (21:14 -1000)]
Re-add README.DELETED to libarchive's vendor branch.

This was accidentally removed during the last import.

3 years agolibfsid(3): Make the filesystem type an enum and perform misc cleanup.
Sascha Wildner [Wed, 15 Dec 2010 07:03:16 +0000 (08:03 +0100)]
libfsid(3): Make the filesystem type an enum and perform misc cleanup.

3 years agomdoc: Add libfsid to the list of libraries.
Sascha Wildner [Wed, 15 Dec 2010 07:02:11 +0000 (08:02 +0100)]
mdoc: Add libfsid to the list of libraries.

3 years agomsdosfs: Add a define of 0x28 as extended boot record signature.
Sascha Wildner [Wed, 15 Dec 2010 07:01:03 +0000 (08:01 +0100)]
msdosfs: Add a define of 0x28 as extended boot record signature.

As per http://support.microsoft.com/kb/140418 (Detailed Explanation
of FAT Boot Sector), the "...extended boot record signature must be
either 0x28 or 0x29...".

3 years agoBump WARNS for latest import of ftp and adjust README.DRAGONFLY for git.
Peter Avalos [Wed, 15 Dec 2010 05:57:24 +0000 (19:57 -1000)]
Bump WARNS for latest import of ftp and adjust README.DRAGONFLY for git.

3 years agoMerge branch 'vendor/TNFTP'
Peter Avalos [Wed, 15 Dec 2010 05:54:39 +0000 (19:54 -1000)]
Merge branch 'vendor/TNFTP'

3 years agoSnyc tnftp with NetBSD:
Peter Avalos [Wed, 15 Dec 2010 05:40:35 +0000 (19:40 -1000)]
Snyc tnftp with NetBSD:

Fix numerous WARNS issues.

Rename internal getline() function to get_line() to prevent conflicts.

Rename argument from "bool" to "val".

Parse HTTP 'Date' entries in the `C' locale rather than the user's.

Avoid NULL dereference in log output if the command line parser
failed to extract a port number from the URL.

Use AF_INET instead of AF_UNSPEC as the default family if
!defined(INET6).

In ftpvis(), prevent incomplete escape sequences at end of dst,
and ensure NUL-termination of dst.  Also tweak for readibility.

3 years agoUpdate to zlib-1.2.5.
Peter Avalos [Tue, 14 Dec 2010 23:39:55 +0000 (13:39 -1000)]
Update to zlib-1.2.5.

This contains numerous bug fixes and improvements.  For more details,
see the ChangeLog.

Incorporated in this commit is removal of using patch files, and just
making the appropriate changes on master.

3 years agoMerge branch 'vendor/ZLIB'
Peter Avalos [Wed, 15 Dec 2010 01:52:43 +0000 (15:52 -1000)]
Merge branch 'vendor/ZLIB'

3 years agodm(4): Fix kernel compilation with 'device dm' in the config.
Sascha Wildner [Tue, 14 Dec 2010 23:38:41 +0000 (00:38 +0100)]
dm(4): Fix kernel compilation with 'device dm' in the config.

3 years agoImport zlib-1.2.5.
Peter Avalos [Tue, 14 Dec 2010 22:25:24 +0000 (12:25 -1000)]
Import zlib-1.2.5.

3 years agoDelete old version of zlib from vendor branch.
Peter Avalos [Tue, 14 Dec 2010 21:05:22 +0000 (11:05 -1000)]
Delete old version of zlib from vendor branch.

3 years ago.gitignore: Remove .depend again.
Sascha Wildner [Tue, 14 Dec 2010 20:04:42 +0000 (21:04 +0100)]
.gitignore: Remove .depend again.

If old .depend files are left lying around in /usr/src, this can
cause strange build failures.

Having .depend in .gitignore hides these files and makes the
failures hard to track. So it's not a good thing.

3 years agodm - add remove_all, refactor
Alex Hornung [Mon, 13 Dec 2010 18:17:08 +0000 (18:17 +0000)]
dm - add remove_all, refactor

* Refactor the dm dev creation and removal methods as to avoid
  duplication and, as a bonus, do things properly.

* Rename foo_destroy to foo_uninit, because that's what they really are,
  uninit functions.

* Add an experimental 'remove_all' method

* Move atoi64 into device-mapper so that the striped target works
  without loading the linear target.

3 years agocryptsetup - fix warning message
Alex Hornung [Mon, 13 Dec 2010 20:15:13 +0000 (20:15 +0000)]
cryptsetup - fix warning message

* Our module is called dm, not dm_mod.

3 years agolibfsid, fsid - bind into build system
Alex Hornung [Mon, 13 Dec 2010 20:09:07 +0000 (20:09 +0000)]
libfsid, fsid - bind into build system

3 years agofsid - Don't check floppies
Alex Hornung [Mon, 13 Dec 2010 07:42:52 +0000 (07:42 +0000)]
fsid - Don't check floppies

3 years agolibfsid - A new library to determine filesystems.
Ákos Kovács [Wed, 8 Dec 2010 19:35:28 +0000 (20:35 +0100)]
libfsid - A new library to determine filesystems.

* The idea is extracted from the sbin/fsid tool. The library provides an
  interface to probe a given device for a file system and get its volume
  label.

* fsid was changed to use libfsid functionality.

Sponsored-by: Google Code-In
3 years agoinclude - install ext2fs headers
Ákos Kovács [Sat, 11 Dec 2010 14:01:39 +0000 (15:01 +0100)]
include - install ext2fs headers

3 years agovkernel - Fix build
Matthew Dillon [Mon, 13 Dec 2010 04:00:04 +0000 (20:00 -0800)]
vkernel - Fix build

* Fix vkernel build after mplock->mp_token changes.  The vkernel was
  hitting an early panic due to not properly acquiring the new mp_token.

Reported-by: Venkatesh Srinivas <me@endeavour.zapto.org>
3 years agokernel - Mark kqfilters of several devices MPSAFE
Samuel J. Greear [Sun, 12 Dec 2010 23:27:19 +0000 (23:27 +0000)]
kernel - Mark kqfilters of several devices MPSAFE

* Memory I/O devices, Pipes, TTY's and PTY's

* Also correct MPSAFE'ty comment for kern_close()

3 years agokernel - Fix UP build
Thomas Nikolajsen [Sun, 12 Dec 2010 21:01:57 +0000 (22:01 +0100)]
kernel - Fix UP build

3 years agoarcmsr(4): Add missing cam_simq_release and creation of /dev/arcX alias.
Sascha Wildner [Sun, 12 Dec 2010 04:55:38 +0000 (05:55 +0100)]
arcmsr(4): Add missing cam_simq_release and creation of /dev/arcX alias.

3 years agoRemove KTR_GIANT_CONTENTION kernel option (no longer used).
Sascha Wildner [Sun, 12 Dec 2010 21:28:15 +0000 (22:28 +0100)]
Remove KTR_GIANT_CONTENTION kernel option (no longer used).

3 years agoUpdate for OpenSSL-1.0.0c.
Peter Avalos [Sun, 12 Dec 2010 00:32:54 +0000 (14:32 -1000)]
Update for OpenSSL-1.0.0c.

This primarily fixes CVE-2010-4180.  See NEWS and CHANGES for more details.

3 years agoMerge branch 'vendor/OPENSSL'
Peter Avalos [Sun, 12 Dec 2010 00:27:24 +0000 (14:27 -1000)]
Merge branch 'vendor/OPENSSL'

3 years agoImport OpenSSL-1.0.0c.
Peter Avalos [Sun, 12 Dec 2010 00:08:43 +0000 (14:08 -1000)]
Import OpenSSL-1.0.0c.

3 years agokernel - 48-core MP work
Matthew Dillon [Sat, 11 Dec 2010 23:47:01 +0000 (15:47 -0800)]
kernel - 48-core MP work

* Replace the cpu_contention_mask global with a per-token contention mask.

* Fold the lwkt.user_pri_sched feature into the scheduler and remove the
  sysctl.  The feature is now alwayws on.  The feature allows a lower
  priority non-contending thread to be scheduled in the face of a
  high-priority contending thread that would normally spin in the scheduler.

* A reschedule IPI is now performed when a high-priority contending thread
  might possibly resolve, which will kick the user process back into the
  kernel and allow rescheduling of the higher priority thread.

* Change the idle-cpu check semantics.  When a cpu's scheduler finds only
  contending threads it used to loop in the scheduler and the idle thread
  would be flagged to not halt.  We now allow the idle thread to halt in
  this case and expect to receive an IPI when any of the contending threads
  might possibly resolve.

  As a fringe benefit this should also benefit vkernels.

* lwkt_schedule() has been significantly simplified.  Or as I would say,
  decomplexified.

3 years agokernel - Have DDB print '?' for non-printable characters
Matthew Dillon [Sat, 11 Dec 2010 21:21:03 +0000 (13:21 -0800)]
kernel - Have DDB print '?' for non-printable characters

* When DDB prints something just use '?' for non-printable characters
  to try to avoid messing up the screen too much.

3 years agokernel - Change the discrete mplock into mp_token
Matthew Dillon [Sat, 11 Dec 2010 20:59:46 +0000 (12:59 -0800)]
kernel - Change the discrete mplock into mp_token

* Use a lwkt_token for the mp_lock.  This consolidates our longer-term
  spinnable locks (the mplock and tokens) into just tokens, making it
  easier to solve performance issues.

* Some refactoring of the token code was needed to guarantee the ordering
  when acquiring and releasing the mp_token vs other tokens.

* The thread switch code, lwkt_switch(), is simplified by this change
  though not necessarily faster.

* Remove td_mpcount, mp_lock, and other related fields.

* Remove assertions related to td_mpcount and friends, generally folding
  them into similar assertions for tokens.

3 years agokernel - Remove CACHE_*MPLOCK* macros & sysctl
Matthew Dillon [Sat, 11 Dec 2010 17:13:47 +0000 (09:13 -0800)]
kernel - Remove CACHE_*MPLOCK* macros & sysctl

* Remove the vfs.cache_mpsafe sysctl and related macros.  This has
  defaulted to 1 (mpsafe) for a while now and is no longer needed.

3 years agokernel - Mark pty devices D_MPSAFE
Matthew Dillon [Sat, 11 Dec 2010 17:09:39 +0000 (09:09 -0800)]
kernel - Mark pty devices D_MPSAFE

* Mark the pty devices D_MPSAFE.  They are protected by tty_token

3 years agoutilities - Fix top -M when the window does not have sufficient rows
Matthew Dillon [Sat, 11 Dec 2010 09:01:33 +0000 (01:01 -0800)]
utilities - Fix top -M when the window does not have sufficient rows

* Fixes a seg-fault.

3 years agokernel - Rearrange usched_bsd4.c a bit
Matthew Dillon [Sat, 11 Dec 2010 08:42:18 +0000 (00:42 -0800)]
kernel - Rearrange usched_bsd4.c a bit

* Rearrange the way the scheduler helpers are woken up.  This results in
  much better coverage on systems with large numbers of cpus.

  Tested on the 48-core opteron monster.

* Essentially we no longer do bogus wakeups of scheduler helpers, and the
  chaining has been fixed when a scheduler helper is unable to perform
  the operation it was scheduled for (it tries to find another idle cpu
  to forward to).

  Most cpumask operations are now performed while holding the spin lock.

3 years agokernel - Make swap, nullfs MPSAFE
Matthew Dillon [Sat, 11 Dec 2010 08:40:32 +0000 (00:40 -0800)]
kernel - Make swap, nullfs MPSAFE

* Mark the swap dummy mount as being MPSAFE so strategy operations do not
  acquire the mplock.

* Mark NULLFS mounts as being MPSAFE so operations do not acquire the
  mplock.  If the underlying VFS is not MPSAFE it will still acquire
  the mplock.

3 years agokernel - Record token & mplock collisions in thread->td_wmesg
Matthew Dillon [Sat, 11 Dec 2010 08:38:45 +0000 (00:38 -0800)]
kernel - Record token & mplock collisions in thread->td_wmesg

* Record token & mplock collisions which the lwkt thread schedule spins
  on in the thread wmesg, which will show up in ps, top, etc.

  This makes it a lot more obvious when a thread is stalling on a token
  or the mplock and is generally superior to the old per-cpu collision
  record.

3 years agokernel - Add debugging features
Matthew Dillon [Sat, 11 Dec 2010 08:35:29 +0000 (00:35 -0800)]
kernel - Add debugging features

* Add lwkt.mplock_backtrace to force the kernel to print a backtrace
  when it encounters a mplock collision.  This is a bit problematic
  though as the backtrace can sometimes crash the kernel.

* Allow lwkt.mplock_yield_delay to be set to 0.

3 years agokernel - Remove unnecessary mplock in sys_ofstat()
Matthew Dillon [Sat, 11 Dec 2010 08:31:19 +0000 (00:31 -0800)]
kernel - Remove unnecessary mplock in sys_ofstat()

* Remove get/rel_mplock around kern_fstat() in the 4.3 fstat compat
  function.

3 years agoamr(4): Some bugfixes.
Sascha Wildner [Sat, 11 Dec 2010 03:57:36 +0000 (04:57 +0100)]
amr(4): Some bugfixes.

* Add a missing devstat_end_transaction_buf(). Makes device stats actually
  work.

* Add a couple of missing cam_simq_release() calls.