dragonfly.git
5 years agoNFS - Fix numerous issues with NFS root mounts, primarily for vkernels
Matthew Dillon [Sat, 10 Oct 2009 00:56:34 +0000 (17:56 -0700)]
NFS - Fix numerous issues with NFS root mounts, primarily for vkernels

vkernels do not inherit BOOTP data from PXE and because of this a number
of code paths are run which are not run in non-vkernel NFS mounts.

* Fix a kernel memory check that was failing for vkernels and causing a
  panic.

* Change the default BOOTP socket type from UDP to TCP.

* Adjust the default vfs.nfs.maxasyncbio value based on available mbuf
  clusters.  The value will be adjusted down for systems with small
  memory footprints.

  Otherwise NFS can trivially run the system out of mbufs.

* Fix bugs in the NFS BIO queueing code related to values of
  vfs.nfs.maxasyncbio lower then the maximum.

* Remove the BOOTP_NFSV3 option when probing for the type of NFS mount
  (V2 or V3).  The BOOTP_NFSV3 kernel option is no longer required for
  root mounts to default to NFSv3.

  This also works around a bug related to large write()s with NFSv2 which
  has not yet been found.

Reported-by: Rumko <rumcic@gmail.com>
5 years agoNFS - Change NFS root mount default from udp to tcp
Matthew Dillon [Sat, 10 Oct 2009 00:54:06 +0000 (17:54 -0700)]
NFS - Change NFS root mount default from udp to tcp

We previously changed the default NFS mount type to tcp.  Adjust
the default NFS root mount type to tcp as well.  UDP mounts just
do not perform well when large numbers of RPCs are allowed to run
in parallel.

5 years agoAdd a watchdog(4) manual page (from OpenBSD).
Sascha Wildner [Fri, 9 Oct 2009 19:09:01 +0000 (21:09 +0200)]
Add a watchdog(4) manual page (from OpenBSD).

5 years agorogue(6): Fix broken aliasing for -O2 or higher.
Sascha Wildner [Fri, 9 Oct 2009 18:55:05 +0000 (20:55 +0200)]
rogue(6): Fix broken aliasing for -O2 or higher.

Fix taken from OpenBSD.

Submitted-by: Ulrich Spoerlein <uqs@spoerlein.net>
Dragonfly-bug: <http://bugs.dragonflybsd.org/issue1551>

5 years agoUnbreak building vkernel by not linking against -lthread_xu.
YONETANI Tomokazu [Fri, 9 Oct 2009 15:51:12 +0000 (00:51 +0900)]
Unbreak building vkernel by not linking against -lthread_xu.

5 years agoscsi_sg - cmd is now ap->a_cmd
Alex Hornung [Fri, 9 Oct 2009 15:53:15 +0000 (16:53 +0100)]
scsi_sg - cmd is now ap->a_cmd

* the cmd parameter for an ioctl routine is in the ap ioctl_args
  structure since some time ago, so don't use the inexistant cmd
  variable for the debug kprintf.
* This solves a compilation issue when building with scsi debug.

Reported-By: Jan Lentfer
5 years agokernel - Fix TCP MSS calculation
Matthew Dillon [Thu, 8 Oct 2009 22:30:02 +0000 (15:30 -0700)]
kernel - Fix TCP MSS calculation

* When the default MSS was returned to 512 in commit bf18b4 it revealed
  a bug in the tcp_mss() function which caused DragonFly senders to
  always use a mss of 500 when sending data to non-local targets.

  Fix the negotiation to use the offered MSS for non-local targets.

5 years agokernel - Major performance changes to VM page management.
Matthew Dillon [Thu, 8 Oct 2009 21:20:13 +0000 (14:20 -0700)]
kernel - Major performance changes to VM page management.

    This commit significantly changes the way the kernel caches VM pages.
    Essentially what happens now is that vnodes and VM pages which are
    accessed often wind up in the VM active queue and last on the list
    for recyclement while vnodes and VM pages which are only accessed once
    or twice wind up on the VM inactive queue and are inserted in the middle
    of the list for recyclement.

    Previously vnodes were essentially recycled in a LRU fashion and due
    to algorithmic design issues VM pages associated with files scanned
    via open()/read() were also winding up getting recycled in a LRU
    fashion.  This caused relatively often-used data to get recycled way
    too early in the face of large filesystem scans (tar, rdist, cvs, etc).

    In the new scheme vnodes and VM pages are essentially split into two
    camps:  Those which are used often and those which are only used once
    or twice.  The ones used often wind up in the VM active queue (and
    their vnodes are last on the list of vnodes which can be recycled),
    and the ones used only once or twice wind up in the VM inactive queue.
    The cycling of a large number of files from single-use scans (tar, rdist,
    cvs, etc on large data sets) now only recycles within the inactive set
    and does not touch the active set AT ALL.  So, for example, files
    often-accessed by a shell or other programs tend to remain cached
    permanently.

    Permanance here is a relative term.  Given enough memory pressure
    such files WILL be recycled.  But single-use scans even of huge
    data sets will not create this sort of memory pressure.  Examples
    of how active VM pages and vnodes will get recycled include:

    (1) Too many pages or vnodes wind up being marked as active.
    (2) Memory pressure created by anonymous memory from running processes.

    Technical Description of changes:

    * The buffer cache is limited.  For example, on a 3G system the buffer
      cache only manages around 200MB.  The VM page cache, on the otherhand
      can cover all available memory.

      This means that data can cycle in and out of buffer cache at a much
      higher rate then it would from the VM page cache.

    * VM pages were losing their activity history (m->act_count) when
      wired to back buffer cache pages.  Because the buffer cache only
      manages around 200MB the VM pages were being cycled in and out
      of the buffer cache on a shorter time period verses how long they
      would be able to survive in the VM page queues.

      This caused VM pages to get recycled in more of a LRU fashion instead
      of based on usage, particularly the VM pages for files accessed with
      open()/read().

      VM pages now retain their activity history and it also gets updated
      even while the VM pages are owned by the buffer cache.

    * Files accessed just once, for example in a large 'tar', 'find', or 'ls',
      could cause vnodes for files accessed numerous times to get kicked out
      of the vnode free list.  This could occur due to an edge case when
      many tiny files are iterated (such as in a cvs update), on machines
      with 2G or more of memory.  In these cases the vnode cache would reach
      its maximum number of vnodes without the VM page cache ever coming
      under pressure, forcing the VM system to throw away vnodes.  The VM
      system invariably chose vnodes with small numbers of cached VM pages
      (which is what we desire), but wound up chosing them in strict LRU
      order regardless of whether the vnode was for a file accessed just
      once or for a file accessed many times.

    More technical Description of changes:

    * The buffer cache now inherits the highest m->act_count from the VM
      pages backing it, and updates its tracking b_act_count whenever the
      buffer is getblk()'d (and HAMMER does it manually for buffers
      it attaches to internal structures).

    * VAGE in the vnode->v_flag field has been changed to VAGE0 and
      VAGE1 (a 2 bit counter).  Vnodes start out marked as being fully
      aged (count of 3) and the count is decremented every time the
      vnode is opened.

    * When a vnode is placed in the vnode free list aged vnodes are
      now inserted into the middle of the list while non-aged vnodes
      are inserted at the end.  So aged vnodes get recycled first.

    * VM pages returned from the buffer cache are now placed in the
      inactive queue or the active queue based on m->act_count.  This
      works properly now that we do not lose the activity state when
      wiring and unwiring the VM page for buffer cache backings.

    * The VM system now sets a much larger inactive page target, 1/4
      of available memory.  This combined with the vnode reclamation
      algorithm which reclaims 1/10 of the active vnodes in the system
      is now responsible for regulating the distribution of 'active'
      pages verses 'inactive' pages.

      It is important to note that the inactive page target and the
      vnode reclamation algorithm sets a minimum size for pages and
      vnodes intended to be on the inactive side of the ledger.  Memory
      pressure from having too many active pages or vnodes will cause
      VM pages to move to the inactive side.  But, as already mentioned,
      the simple one-time cycling of files such as in a tar, rdist, or
      other file scan will NOT cause this sort of memory pressure.

    Negative aspects of the patch.

    * Very large data sets which might have previously fit in memory
      but do not fit in e.g. 1/2 of available memory will no longer
      be fully cached.

      This is an either-or type of deal.  We can't prevent active pages
      from getting recycled unless we reduce the amount of data we allow
      to get cached from 'one time' uses before starting to recycle that
      data.

-Matt

5 years agothread libs: also remove the static libraries from /usr/lib
Simon Schubert [Wed, 7 Oct 2009 18:37:07 +0000 (20:37 +0200)]
thread libs: also remove the static libraries from /usr/lib

This is necessary, otherwise some software might want to link to the
static libc_r.a instead of leaving it alone alltogether.

5 years agothread libs: migrate the libpthread.* symlinks on upgrade
Simon Schubert [Wed, 7 Oct 2009 18:26:05 +0000 (20:26 +0200)]
thread libs: migrate the libpthread.* symlinks on upgrade

5 years agogetopt.1: getopt is deprecated, add a reference to getopts
Simon Schubert [Wed, 7 Oct 2009 12:15:15 +0000 (14:15 +0200)]
getopt.1: getopt is deprecated, add a reference to getopts

5 years agothread libs: move libc_r and libthread_xu to /usr/lib/thread
Simon Schubert [Wed, 7 Oct 2009 00:27:42 +0000 (02:27 +0200)]
thread libs: move libc_r and libthread_xu to /usr/lib/thread

This is so that badly written programs don't mistakenly pick up either
libc_r or libthread_xu.  The only correct way to get threading support
is to link to libpthread.

By moving the underlaying thread libs to a directory that is not
searched by the linker, we can enforce this policy.

Requested-by: hasso@
5 years agoMakefile.inc1: make sure that mtree is run for quickworld
Simon Schubert [Wed, 7 Oct 2009 00:26:12 +0000 (02:26 +0200)]
Makefile.inc1: make sure that mtree is run for quickworld

We need to run mtree in case new directories are added to the hierarchy
in case these directories are also used during the build.

5 years agowatchdogd.8: Minor cleanup.
Sascha Wildner [Wed, 7 Oct 2009 12:55:54 +0000 (14:55 +0200)]
watchdogd.8: Minor cleanup.

5 years agomove struct timespec into its own header
Simon Schubert [Tue, 6 Oct 2009 23:05:56 +0000 (01:05 +0200)]
move struct timespec into its own header

sys/stat.h needs to define struct timespec without polluting the
namespace with all <time.h> content, so factor out struct timespec into
its own header and use it at the appropriate places.

5 years agorc.d/{initrandom,random}: Remove unneeded output
Thomas Nikolajsen [Sat, 18 Jul 2009 14:25:31 +0000 (16:25 +0200)]
rc.d/{initrandom,random}: Remove unneeded output

5 years agolibexec/customcc: Set up the include paths a bit better.
Sascha Wildner [Tue, 6 Oct 2009 20:38:40 +0000 (22:38 +0200)]
libexec/customcc: Set up the include paths a bit better.

Only use /usr/include and /usr/libdata/gcc41 prefixed by
${USRDATA_PREFIX}. This requires r83302 of LLVM/clang or
higher for the -nostdclanginc option.

While here, remove an 'else' I put in for debugging purposes
which is now useless.

5 years agoMake padlock(4) compileable into the kernel and add it to LINT.
Sascha Wildner [Tue, 6 Oct 2009 09:28:39 +0000 (11:28 +0200)]
Make padlock(4) compileable into the kernel and add it to LINT.

5 years agoAdd a glxsb(4) manual page.
Sascha Wildner [Tue, 6 Oct 2009 06:58:49 +0000 (08:58 +0200)]
Add a glxsb(4) manual page.

Taken-from: FreeBSD

5 years agoAdd final newline.
Sascha Wildner [Mon, 5 Oct 2009 08:45:34 +0000 (10:45 +0200)]
Add final newline.

5 years agoamd64 - mpt(4) should use {,u}int32_t for S32/U32
YONETANI Tomokazu [Mon, 5 Oct 2009 01:04:20 +0000 (10:04 +0900)]
amd64 - mpt(4) should use {,u}int32_t for S32/U32
or else it uses {,un}signed long type which is of 64bits on 64-bit platforms.

5 years agomd.4: Remove an unnecessary .Pp
Sascha Wildner [Sun, 4 Oct 2009 19:44:27 +0000 (21:44 +0200)]
md.4: Remove an unnecessary .Pp

5 years agosyscalls.master: Fix typo in comment.
Stathis Kamperis [Sun, 4 Oct 2009 19:27:56 +0000 (19:27 +0000)]
syscalls.master: Fix typo in comment.

5 years agobsd-family-tree: Update for DragonFly 2.4.
Sascha Wildner [Sun, 4 Oct 2009 15:07:53 +0000 (17:07 +0200)]
bsd-family-tree: Update for DragonFly 2.4.

Taken-from: FreeBSD

5 years agoinclude/Makefile: Revert part of the previous commit. This doesn't work.
Sascha Wildner [Sun, 4 Oct 2009 14:07:43 +0000 (16:07 +0200)]
include/Makefile: Revert part of the previous commit. This doesn't work.

5 years agoetc: no need to upgrade dma configs
Simon Schubert [Sun, 4 Oct 2009 13:36:23 +0000 (15:36 +0200)]
etc: no need to upgrade dma configs

5 years ago<crypto/rijndael.h> is now taken from sys/crypto/rijndael/.
Sascha Wildner [Sun, 4 Oct 2009 11:34:30 +0000 (13:34 +0200)]
<crypto/rijndael.h> is now taken from sys/crypto/rijndael/.

5 years agoipsec/esp: Move #include to silence 2 warnings.
Sascha Wildner [Sun, 4 Oct 2009 10:57:33 +0000 (12:57 +0200)]
ipsec/esp: Move #include to silence 2 warnings.

5 years agoubsec(4): Silence some 'unused variable' warnings.
Sascha Wildner [Sun, 4 Oct 2009 10:19:55 +0000 (12:19 +0200)]
ubsec(4): Silence some 'unused variable' warnings.

5 years agoconfig - Add new SOEKRIS config, add options to LINT
Alex Hornung [Fri, 2 Oct 2009 21:12:57 +0000 (22:12 +0100)]
config - Add new SOEKRIS config, add options to LINT

* Add a new SOEKRIS config, mostly specific to soekris net5501 but good
  as an example for an embedded system.
* Also add all the new options to LINT config

5 years agowatchdogd - Adapt to our needs
Alex Hornung [Sun, 4 Oct 2009 10:53:15 +0000 (11:53 +0100)]
watchdogd - Adapt to our needs

5 years agowatchdogd - Import from OpenBSD
Alex Hornung [Sun, 4 Oct 2009 10:27:36 +0000 (11:27 +0100)]
watchdogd - Import from OpenBSD

* Because the wdog kernel part was designed to be mostly compatible with
  OpenBSD's API, we can import watchdogd from OpenBSD and just change a
  bunch of things.

Obtained-from: OpenBSD

5 years agopc32 files/options - Update glxsb, geode
Alex Hornung [Fri, 2 Oct 2009 21:09:10 +0000 (22:09 +0100)]
pc32 files/options - Update glxsb, geode

* Add glxsb and cpu_geode options support.

5 years agoglxsb/nsclpcsio - cleanup
Alex Hornung [Sat, 3 Oct 2009 15:35:00 +0000 (16:35 +0100)]
glxsb/nsclpcsio - cleanup

* Cleanup unused variables and incorrect includes.
* Add glxsb to sys/dev/crypto/Makefile.

5 years agoglxsb - Make it work for us
Alex Hornung [Fri, 2 Oct 2009 21:12:30 +0000 (22:12 +0100)]
glxsb - Make it work for us

5 years agoglxsb - Initial import from FreeBSD
Alex Hornung [Sat, 26 Sep 2009 19:48:20 +0000 (20:48 +0100)]
glxsb - Initial import from FreeBSD

Obtained-from: FreeBSD

5 years agokern_shutdown - Add led and wdog magic
Alex Hornung [Fri, 2 Oct 2009 21:14:01 +0000 (22:14 +0100)]
kern_shutdown - Add led and wdog magic

* If the relevant options are set, try to enable the 'error' led and
 disable the watchdog(s).

5 years agogeode/cs5536 - Add support for wdog/gpio/timers/identfication
Alex Hornung [Sun, 4 Oct 2009 12:09:57 +0000 (13:09 +0100)]
geode/cs5536 - Add support for wdog/gpio/timers/identfication

* Add drivers for geode lx and cs5536 chips to register watchdogs,
  timers and gpio these chips have.
* Add missing defines for the geode and cs5536 timers and pci device
  ids.

Partially-Obtained-from: OpenBSD
Partially-Obtained-from: FreeBSD

5 years agopc32 identcpu - Detect Geode LX
Alex Hornung [Fri, 2 Oct 2009 21:03:28 +0000 (22:03 +0100)]
pc32 identcpu - Detect Geode LX

* Add identification of Geode LX CPUs.

Obtained-from: FreeBSD

5 years agopc32 bios - Add bios_oem_strings from FreeBSD
Alex Hornung [Fri, 2 Oct 2009 21:02:19 +0000 (22:02 +0100)]
pc32 bios - Add bios_oem_strings from FreeBSD

* Import bios_oem_strings to search for specific strings in the BIOS to
  identify vendors.

Obtained-from: FreeBSD

5 years agooptions/files - Add support for wdog, gpio, nsclpcsio
Alex Hornung [Fri, 2 Oct 2009 21:10:14 +0000 (22:10 +0100)]
options/files - Add support for wdog, gpio, nsclpcsio

* Add options and files support for wdog, gpio and nsclpcsio

5 years agonsclpcsio - make it work for us
Alex Hornung [Fri, 2 Oct 2009 21:11:08 +0000 (22:11 +0100)]
nsclpcsio - make it work for us

5 years agonsclpcsio - Initial import from OpenBSD
Alex Hornung [Sat, 26 Sep 2009 16:21:23 +0000 (17:21 +0100)]
nsclpcsio - Initial import from OpenBSD

Obtained-from: OpenBSD

5 years agogpio - gpio framework, initial commit
Alex Hornung [Sun, 4 Oct 2009 12:09:33 +0000 (13:09 +0100)]
gpio - gpio framework, initial commit

* Initial commit of the new gpio framework,including a sample gpio
  consumer driver, gpio_led.
  While the framework is not directly based on OpenBSD's, some
  structures and other similarities have been taken over to ease porting
  of gpio drivers from OpenBSD.

Partially-Obtained-from: OpenBSD

5 years agowdog - Watchdog framework, initial commit
Alex Hornung [Fri, 2 Oct 2009 20:59:22 +0000 (21:59 +0100)]
wdog - Watchdog framework, initial commit

* Initial commit of the new watchdog (wdog) framework.

5 years agodma: move config files to source directory
Simon Schubert [Sun, 4 Oct 2009 00:55:32 +0000 (02:55 +0200)]
dma: move config files to source directory

5 years agorelease engineering: DragonFly 2.5.1 v2.5.1
Simon Schubert [Sat, 3 Oct 2009 22:06:49 +0000 (00:06 +0200)]
release engineering: DragonFly 2.5.1

5 years agolarn(6): Remove some dead SYSV code.
Sascha Wildner [Sat, 3 Oct 2009 21:21:28 +0000 (23:21 +0200)]
larn(6): Remove some dead SYSV code.

Submitted-by: Ulrich Spoerlein <uqs@spoerlein.net>
Dragonfly-bug: <http://bugs.dragonflybsd.org/issue1550>

5 years agodma: add a plain Makefile for other systems
Simon Schubert [Sat, 3 Oct 2009 19:38:06 +0000 (21:38 +0200)]
dma: add a plain Makefile for other systems

Submitted-by: Michel Salim <salimma@fedoraproject.org>
5 years agodma: add DragonFly compat files
Simon Schubert [Sat, 3 Oct 2009 19:37:22 +0000 (21:37 +0200)]
dma: add DragonFly compat files

These are not used in DragonFly, but for compilation on other systems.

5 years agodma: don't use sockaddr_storage.ss_len
Simon Schubert [Sat, 3 Oct 2009 19:35:29 +0000 (21:35 +0200)]
dma: don't use sockaddr_storage.ss_len

sockaddr_storage.ss_len is not mandated by POSIX, so we shouldn't use
it.  Instead, use addrinfo.ai_addrlen.

5 years agodma: don't use __unused
Simon Schubert [Sat, 3 Oct 2009 19:32:07 +0000 (21:32 +0200)]
dma: don't use __unused

__unused avoids a gcc warning that the parameter is not being used, but
this does not exist in other systems or is overloaded with a different
meaning.

Instead simply use a cast to (void) to silence gcc.

5 years agodma: sort includes
Simon Schubert [Sat, 3 Oct 2009 19:31:26 +0000 (21:31 +0200)]
dma: sort includes

5 years agodma: use st_mtim to make source more POSIXy
Simon Schubert [Sat, 3 Oct 2009 19:18:45 +0000 (21:18 +0200)]
dma: use st_mtim to make source more POSIXy

5 years agosys/stat.h: implement st_atim et al
Simon Schubert [Sat, 3 Oct 2009 19:41:51 +0000 (21:41 +0200)]
sys/stat.h: implement st_atim et al

SUS Issue 7 requires st_atim and friends, which were called st_atimespec
in BSD.  Rename the fields to match SUS and provide compat defines for
both st_atimespec etc (for BSD) and st_atime (for old SUS/POSIX).

Discussed-with:  beket@

5 years agoBring in a padlock(4) manual page and also sync crypto.4.
Sascha Wildner [Sat, 3 Oct 2009 20:22:30 +0000 (22:22 +0200)]
Bring in a padlock(4) manual page and also sync crypto.4.

Taken-from: FreeBSD

5 years agogcc44 warnings: Shift in order to fit in 8 bits.
Sascha Wildner [Sat, 3 Oct 2009 18:53:32 +0000 (20:53 +0200)]
gcc44 warnings: Shift in order to fit in 8 bits.

5 years agoamd64 - Add missing AMD64_CPU_FAMILY/MODEL
Alex Hornung [Sat, 3 Oct 2009 18:42:02 +0000 (19:42 +0100)]
amd64 - Add missing AMD64_CPU_FAMILY/MODEL

* Add missing AMD64_CPU_FAMILY and AMD64_CPU_MODEL and related stuff,
  requred by the recent identcpu magic for VIA processors.

Reported-by: YONETANI Tomokazu
Obtained-from: FreeBSD

5 years agotools/tools/crypto - Update from FreeBSD
Alex Hornung [Sat, 3 Oct 2009 15:56:41 +0000 (16:56 +0100)]
tools/tools/crypto - Update from FreeBSD

Obtained-from: FreeBSD

5 years agoamd64 - add kvtop and add back ed(4) to AMD64_GENERIC
YONETANI Tomokazu [Sat, 3 Oct 2009 10:19:08 +0000 (19:19 +0900)]
amd64 - add kvtop and add back ed(4) to AMD64_GENERIC

5 years agoamd64 - Add via variable decls to md_var.h
Alex Hornung [Sat, 3 Oct 2009 15:12:58 +0000 (16:12 +0100)]
amd64 - Add via variable decls to md_var.h

* Add extern decls of via_feature_rng and via_feature_xcrypt to pc64
  md_var.h.
  This should solve an issue when building crypto/via/padlock on amd64.

Dragonfly-bug: http://bugs.dragonflybsd.org/issue1553
Reported-By: Simon "corecode" Schubert
5 years agoMerge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly
Matthew Dillon [Sat, 3 Oct 2009 00:16:52 +0000 (17:16 -0700)]
Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly

5 years agoNFS - Fix BIO size panics
Matthew Dillon [Sat, 3 Oct 2009 00:09:13 +0000 (17:09 -0700)]
NFS - Fix BIO size panics

* NFS calculates the BIO block size and stores it in mnt_stat.f_iosize.
  This field was getting overwritten with default values by STATFS
  being passing &mp->mnt_stat from the kernel.

  Conditionalize the field so it no longer gets overwritten, and also
  correct nm_rsize/nm_wsize tests to use the smaller of the two
  specifications for the BIO block size.

* Fixes diskless NFS root mounts, and NFS mounts which use smaller
  blocksizes.

Reported-by: Rumko <rumcic@gmail.com>, and others
5 years agohammer.sh: Adjust for devfs.
Sascha Wildner [Fri, 2 Oct 2009 23:23:12 +0000 (01:23 +0200)]
hammer.sh: Adjust for devfs.

5 years agovkernel - Fix build after recent crypto import when IPSEC is defined.
Matthew Dillon [Fri, 2 Oct 2009 22:59:51 +0000 (15:59 -0700)]
vkernel - Fix build after recent crypto import when IPSEC is defined.

5 years agoMerge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly
Matthew Dillon [Fri, 2 Oct 2009 22:58:47 +0000 (15:58 -0700)]
Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly

5 years agovkernel - Fix FP corruption from preemptive thread switch
Matthew Dillon [Fri, 2 Oct 2009 22:53:17 +0000 (15:53 -0700)]
vkernel - Fix FP corruption from preemptive thread switch

* Recent work on the vkernel enabled preemptive interrupt thread switching.
  This introduced a race where the floating point state could change
  out from under the vkernel's go_user() function, causing the FP state
  in the virtual user process to become corrupt.

* Fixed by introducing a critical section which essentially defers any
  preemptive thread switches inside go_user().

Reported-by: YONETANI Tomokazu <qhwt+dfly@les.ath.cx>
Test-cases-by: YONETANI Tomokazu <qhwt+dfly@les.ath.cx>
5 years agocrypto.9: Sync with FreeBSD's crypto(9) manual page.
Sascha Wildner [Fri, 2 Oct 2009 22:38:29 +0000 (00:38 +0200)]
crypto.9: Sync with FreeBSD's crypto(9) manual page.

Also fix prototypes and MLINKS.

Various parts of the page are still outdated, though.

5 years agotaskqueue - Beautify thread names
Alex Hornung [Fri, 2 Oct 2009 18:36:30 +0000 (19:36 +0100)]
taskqueue - Beautify thread names

* Beautify thread names by not printing _0 if only one thread for that
  taskqueue is being started/created.

5 years agotaskqueue - Mark taskq threads MPSAFE again
Alex Hornung [Fri, 2 Oct 2009 17:56:28 +0000 (18:56 +0100)]
taskqueue - Mark taskq threads MPSAFE again

5 years agotaskq - Make consumer tasks MPALMOSTSAFE
Alex Hornung [Fri, 2 Oct 2009 17:49:50 +0000 (18:49 +0100)]
taskq - Make consumer tasks MPALMOSTSAFE

* All consumers of taskqueue_thread[cpu] have to be at least
  MPALMOSTSAFE as they won't be called with the mplock held.

5 years agoktrace - Add kern.ktrace_suid, allowing suid/sgid execs to be ktraced.
Matthew Dillon [Fri, 2 Oct 2009 18:16:30 +0000 (11:16 -0700)]
ktrace - Add kern.ktrace_suid, allowing suid/sgid execs to be ktraced.

* Defaults to off (secure).  May be set to non-zero to allow ktraces to
  ktrace through an suid/sgid exec, for debugging purposes only.

5 years agotaskq - Fix SMP spinlock recursion
Matthew Dillon [Fri, 2 Oct 2009 18:15:46 +0000 (11:15 -0700)]
taskq - Fix SMP spinlock recursion

5 years agotaskq - Fix SMP panic due to incorrect lwkt_setpri() call.
Matthew Dillon [Fri, 2 Oct 2009 18:05:39 +0000 (11:05 -0700)]
taskq - Fix SMP panic due to incorrect lwkt_setpri() call.

5 years agolwkt - Add lwkt_setpri_initial()
Matthew Dillon [Fri, 2 Oct 2009 18:04:46 +0000 (11:04 -0700)]
lwkt - Add lwkt_setpri_initial()

* Add a lwkt_setpri_initial() call which has no cpu restriction but which
  requires the thread to not be scheduled.

5 years agoMerge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly
Matthew Dillon [Fri, 2 Oct 2009 16:14:30 +0000 (09:14 -0700)]
Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly

5 years agoHAMMER - Fix root inode creation for slave.
Matthew Dillon [Fri, 2 Oct 2009 16:11:44 +0000 (09:11 -0700)]
HAMMER - Fix root inode creation for slave.

* The root inode for a PFS is only supposed to be created for PFS masters.
  PFS slaves get their root inode from the mirroring operation.  No longer
  create the root inode for a PFS slave.

  The root inode was being incorrectly created for slaves as well as
  masters, causing the root inode from the mirroring operation to be
  ignored.

  This caused the root directory for a slave to show up as empty when
  doing a mirror-copy from a HAMMER version 1 filesystem to a HAMMER
  version 2 filesystem.

Reported-by: "Simon 'corecode' Schubert" <corecode@fs.ei.tum.de>
5 years agoopencrypto - Finish porting
Alex Hornung [Fri, 2 Oct 2009 13:24:19 +0000 (14:24 +0100)]
opencrypto - Finish porting

* Fix all remaining porting issues from the original opencrypto WIP
  commit.
* Remove clashes due to rebase.

5 years agombuf - Add m_apply and m_getptr
Alex Hornung [Mon, 28 Sep 2009 09:52:32 +0000 (10:52 +0100)]
mbuf - Add m_apply and m_getptr

* Import m_apply and m_getptr from FreeBSD.

Obtained-from: FreeBSD

5 years agoWIP crypto/opencrypto update
Sascha Wildner [Sun, 27 Sep 2009 12:49:00 +0000 (14:49 +0200)]
WIP crypto/opencrypto update

5 years agoVIA CPU support: Detect and enable CPU features (RNG, ACE etc.).
Sascha Wildner [Sat, 5 Sep 2009 06:36:27 +0000 (08:36 +0200)]
VIA CPU support: Detect and enable CPU features (RNG, ACE etc.).

Taken from: FreeBSD

5 years agokern_descrip - Remove leftover debug from devfs
Alex Hornung [Fri, 2 Oct 2009 13:55:25 +0000 (14:55 +0100)]
kern_descrip - Remove leftover debug from devfs

* Remove a leftover kprintf from the initial devfs development cycle.

5 years agotaskqueue.9 - Update to reflect ncpu changes
Alex Hornung [Fri, 2 Oct 2009 12:48:22 +0000 (13:48 +0100)]
taskqueue.9 - Update to reflect ncpu changes

5 years agotaskqueue - Improve _start_threads, refactor code
Alex Hornung [Fri, 2 Oct 2009 12:20:30 +0000 (13:20 +0100)]
taskqueue - Improve _start_threads, refactor code

* Change taskqueue_start_threads to take another argument, ncpu, which
  specifies on what cpu the thread(s) should be created.
  If ncpu is <= -1 and count is > 1, then each of the count threads is
  allocated in a round robin fashion to each cpu.

* Switch the per-cpu taskqueues to use the new taskqueue threads API.

Discussed-with: Simon "corecode" Schubert

5 years agoMerge branch 'master' of /repository/git/dragonfly
Peter Avalos [Thu, 1 Oct 2009 19:32:00 +0000 (19:32 +0000)]
Merge branch 'master' of /repository/git/dragonfly

5 years agoUpdate build for libarchive-2.7.1 import.
Peter Avalos [Thu, 1 Oct 2009 19:20:28 +0000 (19:20 +0000)]
Update build for libarchive-2.7.1 import.

5 years agoMerge branch 'vendor/LIBARCHIVE'
Peter Avalos [Thu, 1 Oct 2009 19:13:32 +0000 (19:13 +0000)]
Merge branch 'vendor/LIBARCHIVE'

5 years agoAHCI - Minor fixes
Matthew Dillon [Thu, 1 Oct 2009 19:12:45 +0000 (12:12 -0700)]
AHCI - Minor fixes

* Fix a conditional testing for hot plug removal.  This is mostly
  cosmetic but prevents a bogus "Device removed" message when plugging
  IN devices on ports which do not support hot-plug.

* Print the port capabilities out for each port during device probe.
  This makes it easier to diagnose bug reports if people try to use
  hot-plug on devices (usually old AHCI 1.0 chipsets) which do not
  support hot-plug.  These chipsets do not do device detection on
  the port change event and also usually do not implement CLO, so
  there isn't much the driver can do.

5 years agoImport libarchive-2.7.1.
Peter Avalos [Thu, 1 Oct 2009 19:02:36 +0000 (19:02 +0000)]
Import libarchive-2.7.1.

* Suppress bogus warning about unxz
* Support lzma/xz files compressed with larger buffer sizes.
* Handle gzip files signed with OpenBSD "gzsig" program.
* Avoid false failures when reading from pipe.

5 years agoSync zoneinfo database with tzdata2009n from elsie.
Sascha Wildner [Thu, 1 Oct 2009 09:35:51 +0000 (11:35 +0200)]
Sync zoneinfo database with tzdata2009n from elsie.

asia:           8.40 -> 8.41
southamerica:   8.36 -> 8.37

* Pakistan ends DST on Oct 1, 2009

* Add some comments about Argentinian provinces oppsing 2009/10 DST.

5 years agoCAM - Fix missing SIM lock in cam_periph_release()
Matthew Dillon [Wed, 30 Sep 2009 22:26:05 +0000 (15:26 -0700)]
CAM - Fix missing SIM lock in cam_periph_release()

* When releasing the last reference on a CAM peripheral which has been
  marked invalid, the peripheral is then freed.  Freeing the peripheral
  requires the SIM lock.

  Go through necessary tribulations to acquire the SIM lock.  The lock order
  is important (SIM lock first, XPT lock second), and the SIM lock may or
  may not already be held by the thread.

* The bug could cause a crash after burning a CD as the CD becomes invalid
  after the burn completes in order to reload its state.

5 years agokernel - add missing header commit to interrupt config hooks changes
Matthew Dillon [Wed, 30 Sep 2009 19:57:50 +0000 (12:57 -0700)]
kernel - add missing header commit to interrupt config hooks changes

5 years agokernel - close holes in autoconf's run_interrupt_driven_config_hooks()
Matthew Dillon [Wed, 30 Sep 2009 18:47:25 +0000 (11:47 -0700)]
kernel - close holes in autoconf's run_interrupt_driven_config_hooks()

* Interlock with a ran_config_hooks static variable instead of 'cold'

* Get rid of list races which might occur due to hooks being removed
  while the hooks are being run.

* Use a finer 1-second sleep interval instead of a 10-second sleep.

5 years agokernel - CAM - track busses for configuration
Matthew Dillon [Wed, 30 Sep 2009 18:45:53 +0000 (11:45 -0700)]
kernel - CAM - track busses for configuration

* To prevent an underflow of the busses_to_config variable, track
  which busses were counted towards the busses we are waiting for.

* Add kprintfs for verbose operation plus one or two for normal booting.

5 years agokernel - add missing M_ZERO in taskqueue_create()
Matthew Dillon [Wed, 30 Sep 2009 18:38:53 +0000 (11:38 -0700)]
kernel - add missing M_ZERO in taskqueue_create()

* taskqueue_create() was not ensuring a zero'd task queue structure,
  resulting in a situation where the flags and other fields could end
  up as garbage and prevent the taskqueue from being signaled on enqueue.

* This bug was responsible for situations where CAM fails to complete
  its configuration, generating warnings for 60 seconds and then giving
  up.

5 years agonrelease - gui build www/firefox3 -> www/firefox
Matthew Dillon [Wed, 30 Sep 2009 16:39:52 +0000 (09:39 -0700)]
nrelease - gui build www/firefox3 -> www/firefox

* The www/firefox3 directory was removed from pkgsrc and
  is now just www/firefox.

5 years agoMerge commit 'crater/master'
Simon 'corecode' Schubert [Wed, 30 Sep 2009 15:05:55 +0000 (17:05 +0200)]
Merge commit 'crater/master'

5 years agoacpi_thermal: add sensors framework support
Alexander Polakov [Wed, 30 Sep 2009 16:07:00 +0000 (16:07 +0000)]
acpi_thermal: add sensors framework support

5 years agoFix chdir/fchdir for setuid/setgid binaries
Simon 'corecode' Schubert [Wed, 30 Sep 2009 15:02:24 +0000 (17:02 +0200)]
Fix chdir/fchdir for setuid/setgid binaries

Access checks for a directory have to be done using the euid/egid, not
the ruid/rgid.

5 years agodevelopment.7: clarify vendor import section
Simon 'corecode' Schubert [Wed, 30 Sep 2009 14:38:20 +0000 (16:38 +0200)]
development.7: clarify vendor import section

Vendor imports on branches that already exist have to be handled a bit
differently, so document this.