]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/log
FreeBSD/FreeBSD.git
13 years ago- When disabling ktracing on a process, free any pending requests that
jhb [Thu, 21 Oct 2010 19:17:40 +0000 (19:17 +0000)]
- When disabling ktracing on a process, free any pending requests that
  may be left.  This fixes a memory leak that can occur when tracing is
  disabled on a process via disabling tracing of a specific file (or if
  an I/O error occurs with the tracefile) if the process's next system
  call is exit().  The trace disabling code clears p_traceflag, so exit1()
  doesn't do any KTRACE-related cleanup leading to the leak.  I chose to
  make the free'ing of pending records synchronous rather than patching
  exit1().
- Move KTRACE-specific logic out of kern_(exec|exit|fork).c and into
  kern_ktrace.c instead.  Make ktrace_mtx private to kern_ktrace.c as a
  result.

MFC after: 1 month

13 years agoAdd Cambridge/Google tag since the copyright has been updated.
rwatson [Thu, 21 Oct 2010 19:03:24 +0000 (19:03 +0000)]
Add Cambridge/Google tag since the copyright has been updated.

MFC after: 2 weeks

13 years agoFurther syscall_timing improvements: allow an arbitrary "path" string
rwatson [Thu, 21 Oct 2010 19:01:59 +0000 (19:01 +0000)]
Further syscall_timing improvements: allow an arbitrary "path" string
argument to be passed on the command line, allowing file-related tests
to be pointed at wherever desired.

Sponsored by: Google, Inc.
MFC after: 2 weeks

13 years agoModify the experimental NFS server in a manner analagous to
rmacklem [Thu, 21 Oct 2010 18:49:12 +0000 (18:49 +0000)]
Modify the experimental NFS server in a manner analagous to
r214049 for the regular NFS server, so that it will not do
a VOP_LOOKUP() of ".." when at the root of a file system
when performing a ReaddirPlus RPC.

MFC after: 10 days

13 years agoDocument strtonum()s behavior of setting errno to 0 when no error is found.
bcr [Thu, 21 Oct 2010 18:30:48 +0000 (18:30 +0000)]
Document strtonum()s behavior of setting errno to 0 when no error is found.

PR:             docs/143330
Submitted by:   Efstratios Karatzas (gpf dot kira at gmail dot com)
Discussed with: ru@
MFC after:      7 days

13 years agoSync with OpenBSD rev. 1.13:
bcr [Thu, 21 Oct 2010 18:21:19 +0000 (18:21 +0000)]
Sync with OpenBSD rev. 1.13:
strtonum does not require limits.h

Obtained from:  OpenBSD
Discussed with: ru@
MFC after:      5 days

13 years agoClarify a misleading comment. The test in pci_reserve_map() was meant to
jhb [Thu, 21 Oct 2010 17:46:23 +0000 (17:46 +0000)]
Clarify a misleading comment.  The test in pci_reserve_map() was meant to
ignore BARs that are invalid due to having a size of zero, not to ignore
BARs with an existing base of zero.  While here, reorganize the code
slightly to make the intent clearer.

Reported by: avg
MFC after: 1 week

13 years agoFix bug in recent syscall_timing change: measure the number of iterations
rwatson [Thu, 21 Oct 2010 17:35:08 +0000 (17:35 +0000)]
Fix bug in recent syscall_timing change: measure the number of iterations
each loop, rather than once up front.  The distinction is unimportant
when doing a fix iteration count, but when using a timer, it should vary.

Sponsored by: Google, Inc.
MFC after: 2 weeks

13 years ago- Make 'vm_refcnt' volatile so that compilers won't be tempted to treat
jhb [Thu, 21 Oct 2010 17:29:32 +0000 (17:29 +0000)]
- Make 'vm_refcnt' volatile so that compilers won't be tempted to treat
  its value as a loop invariant.  Currently this is a no-op because
  'atomic_cmpset_int()' clobbers all memory on current architectures.
- Use atomic_fetchadd_int() instead of an atomic_cmpset_int() loop to drop
  a reference in vmspace_free().

Reviewed by: alc
MFC after: 1 month

13 years agoLeft over from prior patch removed.
imp [Thu, 21 Oct 2010 17:29:18 +0000 (17:29 +0000)]
Left over from prior patch removed.

Submitted by: John Hixon
PR: 151442 (but the patch was backwards there)

13 years agoFurther enhancements to syscall_timing:
rwatson [Thu, 21 Oct 2010 17:27:39 +0000 (17:27 +0000)]
Further enhancements to syscall_timing:

- Use getopt rather than hand-parsed arguments
- Allow iterations to be specified and/or a new number of seconds bound
  on the number of iterations
- Fix printout of timer resolution
- Add new tests, such as TCP and UDP socket creation, and open/read/close
  of /dev/zero and /dev/null.

Sponsored by: Google, Inc.
MFC after: 2 weeks

13 years agoThis patch will only list components if the directory exists. The
imp [Thu, 21 Oct 2010 17:23:48 +0000 (17:23 +0000)]
This patch will only list components if the directory exists. The
directory exist on PC-BSD but not FreeBSD, so an extra check is made.

Submitted by: John Hixson
PR: 151461

13 years agoDocument possibility to read from stdin.
glebius [Thu, 21 Oct 2010 17:23:09 +0000 (17:23 +0000)]
Document possibility to read from stdin.

13 years agoThis is an updated patch to the last patch to do this which fixes a
imp [Thu, 21 Oct 2010 17:20:37 +0000 (17:20 +0000)]
This is an updated patch to the last patch to do this which fixes a
local variable issue. This patch decompresses compressed images to the
stdout when writing to a device to avoid running out of space issues.

Submitted by: John Hixson
Pr: 151049

13 years agoThis small patch updates the "geli setkey" flags pc-sysinstall uses
imp [Thu, 21 Oct 2010 17:14:44 +0000 (17:14 +0000)]
This small patch updates the "geli setkey" flags pc-sysinstall uses
when saving a users passphrase, to make it work in HEAD with recent
geli improvements.

Submitted by: Kris Moore
PR: 151002

13 years agoMake it possible to read input from stdin.
glebius [Thu, 21 Oct 2010 17:05:15 +0000 (17:05 +0000)]
Make it possible to read input from stdin.

Without this change I don't see a way to
unpack a multivolume archive without wasting
disk space for a temporary file.

13 years agoReshuffle SIOCGIFCONF32 handler from r155224.
pluknet [Thu, 21 Oct 2010 16:20:48 +0000 (16:20 +0000)]
Reshuffle SIOCGIFCONF32 handler from r155224.

- move all the chunks into one file, which allows to hide SIOCGIFCONF32
  global definition as well.
- replace __amd64__ with proper COMPAT_FREEBSD32 around.
- handle 32bit capacity before going into the handler itself instead of
  doing internal 32bit specific changes within it (e.g. as it's done for
  SIOCGDEFIFACE32_IN6).
- use explicitely sized types for ABI compat.

Approved by: kib (mentor)
MFC after: 2 weeks

13 years agoImprove the structure and implementation of the syscall_timing
rwatson [Thu, 21 Oct 2010 16:08:31 +0000 (16:08 +0000)]
Improve the structure and implementation of the syscall_timing
microbenchmark suite:

- Use common benchmark_start/benchmark_stop routines to simplify
  individual benchmarks.
- Add a central table of tests with names, where new tests can be
  hooked in easily.
- Add new benchmarks for dup, shm_open, shm_open + fstat, fork,
  vfork, vfork + exec, chroot, setuid.
- Accept a number of loops, not just a number of iterations.
- Report results more usefully in a table.

Sponsored by: Google, Inc.
MFC after: 2 weeks

13 years agoFix error handling logic of pututxline(3).
ed [Thu, 21 Oct 2010 15:10:35 +0000 (15:10 +0000)]
Fix error handling logic of pututxline(3).

Instead of only returning NULL when the entry is invalid and can't be
matched against the current database, also return it when it cannot open
the log files properly.

13 years agoFix a bug introduced in r213067 where we use authentication key before
pjd [Thu, 21 Oct 2010 12:58:26 +0000 (12:58 +0000)]
Fix a bug introduced in r213067 where we use authentication key before
initializing it.

13 years agomdoc: make pages render with mandoc
uqs [Thu, 21 Oct 2010 12:27:13 +0000 (12:27 +0000)]
mdoc: make pages render with mandoc

It's a bit more pedantic regarding .Bl list elements. This has an added
benefit of unbreaking the ipfw(8) manpage, where groff was silently
skipping one list element.

13 years agoEnable copyback and system PD states.
pluknet [Thu, 21 Oct 2010 10:46:18 +0000 (10:46 +0000)]
Enable copyback and system PD states.

Reviewed by: jhb
Approved by: avg (mentor)
MFC after: 1 week
X-MFC-After: r214130

13 years agoUpdate PD state firmware definitions: add copyback, system.
pluknet [Thu, 21 Oct 2010 10:38:52 +0000 (10:38 +0000)]
Update PD state firmware definitions: add copyback, system.

Reviewed by: jhb
Approved by: avg (mentor)
MFC after: 1 week

13 years agoRemove code duplication by introducing static gctl_param_add() function which
pjd [Thu, 21 Oct 2010 10:38:14 +0000 (10:38 +0000)]
Remove code duplication by introducing static gctl_param_add() function which
is now used by both gctl_ro_param() and gctl_rw_param().

13 years ago- Simplify gctl_get_handle() a bit.
pjd [Thu, 21 Oct 2010 10:36:36 +0000 (10:36 +0000)]
- Simplify gctl_get_handle() a bit.
- Prefer 'unsigned int' over 'u_int' in userland code.

13 years agoIn syscall_module_handler(): all switch branches return, remove
delphij [Thu, 21 Oct 2010 08:57:25 +0000 (08:57 +0000)]
In syscall_module_handler(): all switch branches return, remove
unreached code as pointed out in a Chinese forum [1].

[1] http://www.freebsdchina.org/forum/viewtopic.php?t=50619

Pointed out by: btw616 <btw s qq com>
MFC after: 1 month

13 years agoFix printing of files located on ZFS filesystem with an st_dev or
edwin [Thu, 21 Oct 2010 06:52:14 +0000 (06:52 +0000)]
Fix printing of files located on ZFS filesystem with an st_dev or
st_ino larger than 2**31.

From the PR:

   Printing from a ZFS filesystem using 'lp' fails and returns an
   email reporting "Your printer job was not printed because it was
   not linked to the original file".

   In order to protect against files being switched when files
   are printed using 'lp' or 'lpr -s', the st_dev and st_ino
   values for the original file are saved by lpr and verified
   by lpd before the file is printed. Unfortunately, lpr prints
   both values using '%d' (although both fields are unsigned)
   and lpd(8) assumes a string of decimal digits.

   ZFS (at least) generates st_dev values greater than 2^31-1,
   resulting in negative values being printed - which lpd cannot
   parse, leading it to report that the file has been switched.

   A similar problem would occur with large inode numbers.

   How-To-Repeat:

   Find a file with either st_dev or st_ino greater than 2^31-1
   (stat(1) will report both numbers) and print it with 'lpq -s'.
   This should generate an email reporting that the file could
   not be printed because it was not linked to the original file

PR: bin/151567
Submitted by: Peter Jeremy <Peter.Jeremy@alcatel-lucent.com>
MFC after: 1 week

13 years agoUpdate PCI power management registers per PCI Bus Power Management Interface
jkim [Wed, 20 Oct 2010 23:41:16 +0000 (23:41 +0000)]
Update PCI power management registers per PCI Bus Power Management Interface
Specification Rev. 1.2.  Rename pp_pcmcsr field of PM capabilities to pp_bse
to avoid further confusions and adjust some comments accordingly.  The real
PMCSR (Power Management Control/Status Register) is PCIR_POWER_STATUS and
it is actually BSE (PCI-to-PCI Bridge Support Extensions) register.

13 years agoUse closefrom(2) instead of close(2) in a loop.
pjd [Wed, 20 Oct 2010 21:10:01 +0000 (21:10 +0000)]
Use closefrom(2) instead of close(2) in a loop.

MFC after: 1 week

13 years agoBring in geli suspend/resume functionality (finally).
pjd [Wed, 20 Oct 2010 20:50:55 +0000 (20:50 +0000)]
Bring in geli suspend/resume functionality (finally).

Before this change if you wanted to suspend your laptop and be sure that your
encryption keys are safe, you had to stop all processes that use file system
stored on encrypted device, unmount the file system and detach geli provider.

This isn't very handy. If you are a lucky user of a laptop where suspend/resume
actually works with FreeBSD (I'm not!) you most likely want to suspend your
laptop, because you don't want to start everything over again when you turn
your laptop back on.

And this is where geli suspend/resume steps in. When you execute:

# geli suspend -a

geli will wait for all in-flight I/O requests, suspend new I/O requests, remove
all geli sensitive data from the kernel memory (like encryption keys) and will
wait for either 'geli resume' or 'geli detach'.

Now with no keys in memory you can suspend your laptop without stopping any
processes or unmounting any file systems.

When you resume your laptop you have to resume geli devices using 'geli resume'
command. You need to provide your passphrase, etc. again so the keys can be
restored and suspended I/O requests released.

Of course you need to remember that 'geli suspend' won't clear file system
cache and other places where data from your geli-encrypted file system might be
present. But to get rid of those stopping processes and unmounting file system
won't help either - you have to turn your laptop off. Be warned.

Also note, that suspending geli device which contains file system with geli
utility (or anything used by 'geli resume') is not very good idea, as you won't
be able to resume it - when you execute geli(8), the kernel will try to read it
and this read I/O request will be suspended.

13 years ago- Add missing comments.
pjd [Wed, 20 Oct 2010 20:01:45 +0000 (20:01 +0000)]
- Add missing comments.
- Make a comment consistent with others.

13 years agoGet rid of hand-rolled closefrom(3).
ed [Wed, 20 Oct 2010 19:53:29 +0000 (19:53 +0000)]
Get rid of hand-rolled closefrom(3).

13 years agoCorrect typos.
pjd [Wed, 20 Oct 2010 19:52:27 +0000 (19:52 +0000)]
Correct typos.

13 years agoIntroduce a new tunable 'hw.pci.do_power_suspend'. This tunable lets you
jkim [Wed, 20 Oct 2010 16:47:09 +0000 (16:47 +0000)]
Introduce a new tunable 'hw.pci.do_power_suspend'.  This tunable lets you
avoid PCI power state transition from D0 to D3 for suspending case.  Default
is 1 or enabled.

13 years agoDo not apply do_power_resume for suspending P2P bridge as we did in r214064.
jkim [Wed, 20 Oct 2010 16:40:14 +0000 (16:40 +0000)]
Do not apply do_power_resume for suspending P2P bridge as we did in r214064.

13 years agoNetwork driver updates
jchandra [Wed, 20 Oct 2010 09:50:11 +0000 (09:50 +0000)]
Network driver updates
- Fix network driver issue on a XLS eval board (major# 8).
- Fix issue uncovered by r213475 in check for XGMII

Submitted by: Sriram Gorti (srgorti at netlogicmicro dot com)

13 years agoOn uniprocessor, warn and fixup hardware cpu mask if more than on CPU
jchandra [Wed, 20 Oct 2010 09:41:36 +0000 (09:41 +0000)]
On uniprocessor, warn and fixup hardware cpu mask if more than on CPU
is enabled by the bootloader.

13 years agoRemove setpgid() call before executing child process.
ed [Wed, 20 Oct 2010 09:35:20 +0000 (09:35 +0000)]
Remove setpgid() call before executing child process.

Using a separate process group here is bad, since (for example) job
control in the TTY layer prevents interaction with the TTY, causing the
child process to hang.

Mentioned on: current@
MFC after: 2 weeks

13 years agoWorkaround strange situation when EDMA_RESQIP register returns zero instead
mav [Wed, 20 Oct 2010 07:47:31 +0000 (07:47 +0000)]
Workaround strange situation when EDMA_RESQIP register returns zero instead
of proper value. It caused bunch of "EMPTY CRPB" messages and potentially
may cause premature requests completion, which could cause data corruption.
For most cases it seems enough to just reread register to get proper value.
To protect against worse cases - erase processed queue entries with
impossible values and ignore them if problem still happen.

13 years agoSome style cleanup:
mav [Wed, 20 Oct 2010 07:22:34 +0000 (07:22 +0000)]
Some style cleanup:
- remove commented debugging code;
- wrap long lines.

13 years agocatch up manual pages with rename of vm_page_sleep_busy to vm_page_sleep_if_busy
avg [Wed, 20 Oct 2010 06:29:11 +0000 (06:29 +0000)]
catch up manual pages with rename of vm_page_sleep_busy to vm_page_sleep_if_busy

Suggested by: alc
MFC after: 4 days

13 years agoVOP_GETPAGES.9: clarify and correct description of parameters and requirements
avg [Wed, 20 Oct 2010 05:57:54 +0000 (05:57 +0000)]
VOP_GETPAGES.9: clarify and correct description of parameters and requirements

In cooperation with alc and kib, who provided valuable insights and
suggestions.

Reviewed by: alc, kib (earlier version)
MFC after: 4 days

13 years agoPG_BUSY -> VPO_BUSY, PG_WANTED -> VPO_WANTED in manual pages and comments
avg [Wed, 20 Oct 2010 05:17:23 +0000 (05:17 +0000)]
PG_BUSY -> VPO_BUSY, PG_WANTED -> VPO_WANTED in manual pages and comments

Reviewed by: alc
MFC after: 4 days

13 years agoo Put missed w/space back.
maxim [Wed, 20 Oct 2010 04:53:03 +0000 (04:53 +0000)]
o Put missed w/space back.

Submitted by: Garrett Cooper
MFC after: 3 days

13 years agoRevert revision 214007, I realized that MySQL wants to resolve
davidxu [Wed, 20 Oct 2010 02:34:02 +0000 (02:34 +0000)]
Revert revision 214007, I realized that MySQL wants to resolve
a silly rwlock deadlock problem, the deadlock is caused by writer
waiters, if a thread has already locked a reader lock, and wants to
acquire another reader lock, it will be blocked by writer waiters,
but we had already fixed it years ago.

13 years ago- Don't include sx.h, it is not needed.
davidxu [Wed, 20 Oct 2010 00:41:38 +0000 (00:41 +0000)]
- Don't include sx.h, it is not needed.
- Check NULL pointer, move timeout calculation code outside of
  process lock.

13 years agoCorrect handling of shared interrupt in sis_intr(). r212116 incorrectly
yongari [Wed, 20 Oct 2010 00:19:25 +0000 (00:19 +0000)]
Correct handling of shared interrupt in sis_intr(). r212116 incorrectly
released a drver lock for shared interrupt case such that it caused
panic. While I'm here check whether driver is still running before
serving TX/RX handler.

Reported by: Jerahmy Pocott < QUAKENET1 <> optusnet dot com dot au >
Tested by: Jerahmy Pocott < QUAKENET1 <> optusnet dot com dot au >
MFC after: 3 days

13 years agoAdd workaround for BCM5906 controller silicon bug. If device
yongari [Tue, 19 Oct 2010 23:04:23 +0000 (23:04 +0000)]
Add workaround for BCM5906 controller silicon bug. If device
receive two back-to-back send BDs with less than or equal to 8
total bytes then the device may hang. The two back-to-back send
BDs must be in the same frame for this failure to occur.
Thanks to davidch for detailed errata information.

Reviewed by: davidch

13 years agoImprove the Xen para-virtualized device infrastructure of FreeBSD:
gibbs [Tue, 19 Oct 2010 20:53:30 +0000 (20:53 +0000)]
Improve the Xen para-virtualized device infrastructure of FreeBSD:

 o Add support for backend devices (e.g. blkback)
 o Implement extensions to the Xen para-virtualized block API to allow
   for larger and more outstanding I/Os.
 o Import a completely rewritten block back driver with support for fronting
   I/O to both raw devices and files.
 o General cleanup and documentation of the XenBus and XenStore support code.
 o Robustness and performance updates for the block front driver.
 o Fixes to the netfront driver.

Sponsored by: Spectra Logic Corporation

sys/xen/xenbus/init.txt:
Deleted: This file explains the Linux method for XenBus device
enumeration and thus does not apply to FreeBSD's NewBus approach.

sys/xen/xenbus/xenbus_probe_backend.c:
Deleted: Linux version of backend XenBus service routines.  It
was never ported to FreeBSD.  See xenbusb.c, xenbusb_if.m,
xenbusb_front.c xenbusb_back.c for details of FreeBSD's XenBus
support.

sys/xen/xenbus/xenbusvar.h:
sys/xen/xenbus/xenbus_xs.c:
sys/xen/xenbus/xenbus_comms.c:
sys/xen/xenbus/xenbus_comms.h:
sys/xen/xenstore/xenstorevar.h:
sys/xen/xenstore/xenstore.c:
Split XenStore into its own tree.  XenBus is a software layer built
on top of XenStore.  The old arrangement and the naming of some
structures and functions blurred these lines making it difficult to
discern what services are provided by which layer and at what times
these services are available (e.g. during system startup and shutdown).

sys/xen/xenbus/xenbus_client.c:
sys/xen/xenbus/xenbus.c:
sys/xen/xenbus/xenbus_probe.c:
sys/xen/xenbus/xenbusb.c:
sys/xen/xenbus/xenbusb.h:
Split up XenBus code into methods available for use by client
drivers (xenbus.c) and code used by the XenBus "bus code" to
enumerate, attach, detach, and service bus drivers.

sys/xen/reboot.c:
sys/dev/xen/control/control.c:
Add a XenBus front driver for handling shutdown, reboot, suspend, and
resume events published in the XenStore.  Move all PV suspend/reboot
support from reboot.c into this driver.

sys/xen/blkif.h:
New file from Xen vendor with macros and structures used by
a block back driver to service requests from a VM running a
different ABI (e.g. amd64 back with i386 front).

sys/conf/files:
Adjust kernel build spec for new XenBus/XenStore layout and added
Xen functionality.

sys/dev/xen/balloon/balloon.c:
sys/dev/xen/netfront/netfront.c:
sys/dev/xen/blkfront/blkfront.c:
sys/xen/xenbus/...
sys/xen/xenstore/...
o Rename XenStore APIs and structures from xenbus_* to xs_*.
o Adjust to use of M_XENBUS and M_XENSTORE malloc types for allocation
  of objects returned by these APIs.
o Adjust for changes in the bus interface for Xen drivers.

sys/xen/xenbus/...
sys/xen/xenstore/...
Add Doxygen comments for these interfaces and the code that
implements them.

sys/dev/xen/blkback/blkback.c:
o Rewrite the Block Back driver to attach properly via newbus,
  operate correctly in both PV and HVM mode regardless of domain
  (e.g. can be in a DOM other than 0), and to deal with the latest
  metadata available in XenStore for block devices.

o Allow users to specify a file as a backend to blkback, in addition
  to character devices.  Use the namei lookup of the backend path
  to automatically configure, based on file type, the appropriate
  backend method.

The current implementation is limited to a single outstanding I/O
at a time to file backed storage.

sys/dev/xen/blkback/blkback.c:
sys/xen/interface/io/blkif.h:
sys/xen/blkif.h:
sys/dev/xen/blkfront/blkfront.c:
sys/dev/xen/blkfront/block.h:
Extend the Xen blkif API: Negotiable request size and number of
requests.

This change extends the information recorded in the XenStore
allowing block front/back devices to negotiate for optimal I/O
parameters.  This has been achieved without sacrificing backward
compatibility with drivers that are unaware of these protocol
enhancements.  The extensions center around the connection protocol
which now includes these additions:

o The back-end device publishes its maximum supported values for,
  request I/O size, the number of page segments that can be
  associated with a request, the maximum number of requests that
  can be concurrently active, and the maximum number of pages that
  can be in the shared request ring.  These values are published
  before the back-end enters the XenbusStateInitWait state.

o The front-end waits for the back-end to enter either the InitWait
  or Initialize state.  At this point, the front end limits it's
  own capabilities to the lesser of the values it finds published
  by the backend, it's own maximums, or, should any back-end data
  be missing in the store, the values supported by the original
  protocol.  It then initializes it's internal data structures
  including allocation of the shared ring, publishes its maximum
  capabilities to the XenStore and transitions to the Initialized
  state.

o The back-end waits for the front-end to enter the Initalized
  state.  At this point, the back end limits it's own capabilities
  to the lesser of the values it finds published by the frontend,
  it's own maximums, or, should any front-end data be missing in
  the store, the values supported by the original protocol.  It
  then initializes it's internal data structures, attaches to the
  shared ring and transitions to the Connected state.

o The front-end waits for the back-end to enter the Connnected
  state, transitions itself to the connected state, and can
  commence I/O.

Although an updated front-end driver must be aware of the back-end's
InitWait state, the back-end has been coded such that it can
tolerate a front-end that skips this step and transitions directly
to the Initialized state without waiting for the back-end.

sys/xen/interface/io/blkif.h:
o Increase BLKIF_MAX_SEGMENTS_PER_REQUEST to 255.  This is
  the maximum number possible without changing the blkif
  request header structure (nr_segs is a uint8_t).

o Add two new constants:
  BLKIF_MAX_SEGMENTS_PER_HEADER_BLOCK, and
  BLKIF_MAX_SEGMENTS_PER_SEGMENT_BLOCK.  These respectively
  indicate the number of segments that can fit in the first
  ring-buffer entry of a request, and for each subsequent
  (sg element only) ring-buffer entry associated with the
          "header" ring-buffer entry of the request.

o Add the blkif_request_segment_t typedef for segment
  elements.

o Add the BLKRING_GET_SG_REQUEST() macro which wraps the
  RING_GET_REQUEST() macro and returns a properly cast
  pointer to an array of blkif_request_segment_ts.

o Add the BLKIF_SEGS_TO_BLOCKS() macro which calculates the
  number of ring entries that will be consumed by a blkif
  request with the given number of segments.

sys/xen/blkif.h:
o Update for changes in interface/io/blkif.h macros.

o Update the BLKIF_MAX_RING_REQUESTS() macro to take the
  ring size as an argument to allow this calculation on
  multi-page rings.

o Add a companion macro to BLKIF_MAX_RING_REQUESTS(),
  BLKIF_RING_PAGES().  This macro determines the number of
  ring pages required in order to support a ring with the
  supplied number of request blocks.

sys/dev/xen/blkback/blkback.c:
sys/dev/xen/blkfront/blkfront.c:
sys/dev/xen/blkfront/block.h:
o Negotiate with the other-end with the following limits:
      Reqeust Size:   MAXPHYS
      Max Segments:   (MAXPHYS/PAGE_SIZE) + 1
      Max Requests:   256
      Max Ring Pages: Sufficient to support Max Requests with
                      Max Segments.

o Dynamically allocate request pools and segemnts-per-request.

o Update ring allocation/attachment code to support a
  multi-page shared ring.

o Update routines that access the shared ring to handle
  multi-block requests.

sys/dev/xen/blkfront/blkfront.c:
o Track blkfront allocations in a blkfront driver specific
  malloc pool.

o Strip out XenStore transaction retry logic in the
  connection code.  Transactions only need to be used when
  the update to multiple XenStore nodes must be atomic.
  That is not the case here.

o Fully disable blkif_resume() until it can be fixed
  properly (it didn't work before this change).

o Destroy bus-dma objects during device instance tear-down.

o Properly handle backend devices with powef-of-2 sector
  sizes larger than 512b.

sys/dev/xen/blkback/blkback.c:
Advertise support for and implement the BLKIF_OP_WRITE_BARRIER
and BLKIF_OP_FLUSH_DISKCACHE blkif opcodes using BIO_FLUSH and
the BIO_ORDERED attribute of bios.

sys/dev/xen/blkfront/blkfront.c:
sys/dev/xen/blkfront/block.h:
Fix various bugs in blkfront.

       o gnttab_alloc_grant_references() returns 0 for success and
 non-zero for failure.  The check for < 0 is a leftover
 Linuxism.

       o When we negotiate with blkback and have to reduce some of our
 capabilities, print out the original and reduced capability before
 changing the local capability.  So the user now gets the correct
 information.

o Fix blkif_restart_queue_callback() formatting.  Make sure we hold
  the mutex in that function before calling xb_startio().

o Fix a couple of KASSERT()s.

        o Fix a check in the xb_remove_* macro to be a little more specific.

sys/xen/gnttab.h:
sys/xen/gnttab.c:
Define GNTTAB_LIST_END publicly as GRANT_REF_INVALID.

sys/dev/xen/netfront/netfront.c:
Use GRANT_REF_INVALID instead of driver private definitions of the
same constant.

sys/xen/gnttab.h:
sys/xen/gnttab.c:
Add the gnttab_end_foreign_access_references() API.

This API allows a client to batch the release of an array of grant
references, instead of coding a private for loop.  The implementation
takes advantage of this batching to reduce lock overhead to one
acquisition and release per-batch instead of per-freed grant reference.

While here, reduce the duration the gnttab_list_lock is held during
gnttab_free_grant_references() operations.  The search to find the
tail of the incoming free list does not rely on global state and so
can be performed without holding the lock.

sys/dev/xen/xenpci/evtchn.c:
sys/dev/xen/evtchn/evtchn.c:
sys/xen/xen_intr.h:
o Implement the bind_interdomain_evtchn_to_irqhandler API for HVM mode.
  This allows an HVM domain to serve back end devices to other domains.
  This API is already implemented for PV mode.

o Synchronize the API between HVM and PV.

sys/dev/xen/xenpci/xenpci.c:
o Scan the full region of CPUID space in which the Xen VMM interface
  may be implemented.  On systems using SuSE as a Dom0 where the
  Viridian API is also exported, the VMM interface is above the region
  we used to search.

o Pass through bus_alloc_resource() calls so that XenBus drivers
  attaching on an HVM system can allocate unused physical address
  space from the nexus.  The block back driver makes use of this
  facility.

sys/i386/xen/xen_machdep.c:
Use the correct type for accessing the statically mapped xenstore
metadata.

sys/xen/interface/hvm/params.h:
sys/xen/xenstore/xenstore.c:
Move hvm_get_parameter() to the correct global header file instead
of as a private method to the XenStore.

sys/xen/interface/io/protocols.h:
Sync with vendor.

sys/xeninterface/io/ring.h:
Add macro for calculating the number of ring pages needed for an N
deep ring.

To avoid duplication within the macros, create and use the new
__RING_HEADER_SIZE() macro.  This macro calculates the size of the
ring book keeping struct (producer/consumer indexes, etc.) that
resides at the head of the ring.

Add the __RING_PAGES() macro which calculates the number of shared
ring pages required to support a ring with the given number of
requests.

These APIs are used to support the multi-page ring version of the
Xen block API.

sys/xeninterface/io/xenbus.h:
Add Comments.

sys/xen/xenbus/...
o Refactor the FreeBSD XenBus support code to allow for both front and
  backend device attachments.

o Make use of new config_intr_hook capabilities to allow front and back
  devices to be probed/attached in parallel.

o Fix bugs in probe/attach state machine that could cause the system to
  hang when confronted with a failure either in the local domain or in
  a remote domain to which one of our driver instances is attaching.

o Publish all required state to the XenStore on device detach and
  failure.  The majority of the missing functionality was for serving
  as a back end since the typical "hot-plug" scripts in Dom0 don't
  handle the case of cleaning up for a "service domain" that is not
  itself.

o Add dynamic sysctl nodes exposing the generic ivars of
  XenBus devices.

o Add doxygen style comments to the majority of the code.

o Cleanup types, formatting, etc.

sys/xen/xenbus/xenbusb.c:
Common code used by both front and back XenBus busses.

sys/xen/xenbus/xenbusb_if.m:
Method definitions for a XenBus bus.

sys/xen/xenbus/xenbusb_front.c:
sys/xen/xenbus/xenbusb_back.c:
XenBus bus specialization for front and back devices.

MFC after: 1 month

13 years agoRemove undocumented and stale debug.acpi.do_powerstate tunable. It was
jkim [Tue, 19 Oct 2010 20:38:21 +0000 (20:38 +0000)]
Remove undocumented and stale debug.acpi.do_powerstate tunable.  It was
added with hw.pci.do_powerstate but the PCI version was splitted into two
separate tunables later and now this is completely stale.  To make it worse,
PCI devices enumerated in ACPI tree ignore this tunable as it is handled by
a function in acpi_pci.c instead.

13 years agoStop disallowing device nodes to be passed to camcontrol(8) since libcam
brucec [Tue, 19 Oct 2010 20:05:25 +0000 (20:05 +0000)]
Stop disallowing device nodes to be passed to camcontrol(8) since libcam
already allows both device names and nodes to be specified.

Reviewed by: avg

13 years agoRemove PCI_SET_POWERSTATE method from acpi.c and eradicate all PCI-specific
jkim [Tue, 19 Oct 2010 19:53:06 +0000 (19:53 +0000)]
Remove PCI_SET_POWERSTATE method from acpi.c and eradicate all PCI-specific
knowledges from the file.  All PCI devices enumerated in ACPI tree must use
correct one from acpi_pci.c any way.  Reduce duplicate codes as we did for
pci.c in r213905.  Do not return ESRCH from PCIB_POWER_FOR_SLEEP method.
When the method is not found, just return zero without modifying the given
default value as it is completely optional.  As a side effect, the return
state must not be NULL.  Note there is actually no functional change by
removing ESRCH because acpi_pcib_power_for_sleep() always returns zero.
Adjust debugging messages and add new ones under bootverbose to help
debugging device power state related issues.

Reviewed by: jhb, imp (earlier versions)

13 years ago- Wrap exchanging td_intr_frame and calling the event timer callback in
marius [Tue, 19 Oct 2010 19:44:05 +0000 (19:44 +0000)]
- Wrap exchanging td_intr_frame and calling the event timer callback in
  a critical section as apparently required by both. I don't think either
  belongs in the event timer front-ends but the callback should handle
  this as necessary instead just like for example intr_event_handle()
  does but this is how the other architectures currently handle it, either
  explicitly or implicitly.
- Further rename and reword references to hardclock as this front-end no
  longer has a notion of actually calling it.

13 years agoThere is no reason to call rt_ifmsg(), remove it.
bschmidt [Tue, 19 Oct 2010 19:11:36 +0000 (19:11 +0000)]
There is no reason to call rt_ifmsg(), remove it.

Submitted by: Paul B Mahol <onemda at gmail.com>
MFC after: 1 week

13 years agoFix an undefined behaviour if the desired ratectl algo is not available.
bschmidt [Tue, 19 Oct 2010 18:49:26 +0000 (18:49 +0000)]
Fix an undefined behaviour if the desired ratectl algo is not available.
This can happen if the algos are built as modules but are not loaded. If
the selected ratectl algo is not available, try to load it (The load
module functions does nothing currently). Add a dummy ratectl algo which
always selects the first available rate. Use that one if the desired algo
is not available.

MFC after: 1 week

13 years agoMake any PCI devices enumerated in ACPI tree honor do_power_resume as well.
jkim [Tue, 19 Oct 2010 18:43:11 +0000 (18:43 +0000)]
Make any PCI devices enumerated in ACPI tree honor do_power_resume as well.

13 years agoZFS pool name is not a real device in devfs. Do not wait for
ae [Tue, 19 Oct 2010 18:32:01 +0000 (18:32 +0000)]
ZFS pool name is not a real device in devfs. Do not wait for
device appear when mounting root from ZFS.

Reviewed by: marcel
Approved by: mav (mentor)

13 years agoClarify that lagg(4) sends/receives on active port, not the master port.
delphij [Tue, 19 Oct 2010 17:49:55 +0000 (17:49 +0000)]
Clarify that lagg(4) sends/receives on active port, not the master port.

Note that this still seems to be a little bit confusing as the concept of
"master" is different from what people would expect on a networking
equipment.

13 years agoRemove PCI header type 0 restriction from power state changes. PCI config.
jkim [Tue, 19 Oct 2010 17:15:22 +0000 (17:15 +0000)]
Remove PCI header type 0 restriction from power state changes.  PCI config.
registers for bridges are saved and restored since r200341.

OK'ed by: imp, jhb

13 years agoDo not apply do_power_resume for suspending case. When do_powerstate was
jkim [Tue, 19 Oct 2010 17:05:51 +0000 (17:05 +0000)]
Do not apply do_power_resume for suspending case.  When do_powerstate was
splitted into do_power_resume and do_power_nodriver, it became stale.

13 years agoUse make_dev_p(9) with the MAKEDEV_CHECKNAME flag instead of make_dev(9)
jh [Tue, 19 Oct 2010 16:48:49 +0000 (16:48 +0000)]
Use make_dev_p(9) with the MAKEDEV_CHECKNAME flag instead of make_dev(9)
and print a diagnostic if the call fails.

This avoids a panic when a device with an invalid name is attempted to
be registered. For example the label class gets device names from
untrusted input.

Reviewed by: freebsd-geom

13 years agouma_zfree(zone, NULL) should do nothing, to match free(9).
mdf [Tue, 19 Oct 2010 16:06:00 +0000 (16:06 +0000)]
uma_zfree(zone, NULL) should do nothing, to match free(9).

Noticed by: Ron Steinke <rsteinke at isilon dot com>
MFC after: 3 days

13 years agomdoc: fix markup typo
uqs [Tue, 19 Oct 2010 15:26:08 +0000 (15:26 +0000)]
mdoc: fix markup typo

MFC after: 1 week (together with r213983)

13 years agoSimplify and significantly speed up the timezone listing backend script.
emaste [Tue, 19 Oct 2010 15:18:40 +0000 (15:18 +0000)]
Simplify and significantly speed up the timezone listing backend script.

Reviewed by: imp

13 years agoMinor cleanup, including sysctl -n instead of sed to remove the sysctl
emaste [Tue, 19 Oct 2010 15:12:16 +0000 (15:12 +0000)]
Minor cleanup, including sysctl -n instead of sed to remove the sysctl
name.

Reviewed by: imp

13 years agoRevert r206418
rpaulo [Tue, 19 Oct 2010 13:31:43 +0000 (13:31 +0000)]
Revert r206418

13 years agomdoc: drop even more redundant .Pp calls
uqs [Tue, 19 Oct 2010 12:35:40 +0000 (12:35 +0000)]
mdoc: drop even more redundant .Pp calls

No change in rendered output, less mandoc lint warnings.

Tool provided by: Nobuyuki Koganemaru n-kogane at syd.odn.ne.jp

13 years agoFix the type of the 3rd argument for nm_getinfo so that it works
rmacklem [Tue, 19 Oct 2010 11:55:58 +0000 (11:55 +0000)]
Fix the type of the 3rd argument for nm_getinfo so that it works
for architectures like sparc64.

Suggested by: kib
MFC after: 2 weeks

13 years agoWhen readdirplus() is handled on the exported filesystem that does
kib [Tue, 19 Oct 2010 08:55:31 +0000 (08:55 +0000)]
When readdirplus() is handled on the exported filesystem that does
not support VFS_VGET, like msdosfs, do not call VOP_LOOKUP() for
dotdot on the root directory. Our filesystems expect that VFS handles
dotdot lookups on root on its own.

Reported and tested by: kevlo
MFC after:   2 weeks

13 years agoModify the NFS clients and the NLM so that the NLM can be used
rmacklem [Tue, 19 Oct 2010 00:20:00 +0000 (00:20 +0000)]
Modify the NFS clients and the NLM so that the NLM can be used
by both clients. Since the NLM uses various fields of the
nfsmount structure, those fields were extracted and put in a
separate nfs_mountcommon structure stored in sys/nfs/nfs_mountcommon.h.
This structure also has a function pointer for a function that
extracts the required information from the mount point and nfs vnode
for that particular client, for information stored differently by the
clients.

Reviewed by: jhb
MFC after: 2 weeks

13 years agoMFV: nc(1) from OpenBSD 4.8.
delphij [Tue, 19 Oct 2010 00:01:53 +0000 (00:01 +0000)]
MFV: nc(1) from OpenBSD 4.8.

While I'm there, bump WARNS level to 2 as the vendor
have the right printf format string now.

MFC after: 1 month
Obtained from: OpenBSD

13 years agoSet default type to PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, this
davidxu [Mon, 18 Oct 2010 23:37:56 +0000 (23:37 +0000)]
Set default type to PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, this
is the type we are using.

13 years agoReplace spaces by a tab after the date.
culot [Mon, 18 Oct 2010 19:14:59 +0000 (19:14 +0000)]
Replace spaces by a tab after the date.

Reported by: gavin@, brucec@
Approved by: sahil@ (mentor)

13 years agoDo not synchronously start the nfsiod threads at all. The r212506
kib [Mon, 18 Oct 2010 19:06:46 +0000 (19:06 +0000)]
Do not synchronously start the nfsiod threads at all. The r212506
fixed the issues with file descriptor locks, but the same problems are
present for vnode lock/user map lock.

If the nfs_asyncio() cannot find the free nfsiod, schedule task to
create new nfsiod and return error. This causes fall back to the
synchronous i/o for nfs_strategy(), or does not start read at all in
the case of readahead. The caller that holds vnode and potentially
user map lock does not wait for kproc_create() to finish, preventing
the LORs.

The change effectively reverts r203072, because we never hand off the
request to newly created nfsiod thread anymore.

Reviewed by: jhb
Tested by: jhb, pluknet
MFC after: 3 weeks

13 years agoWe've already set p = td->td_proc, so use it.
emaste [Mon, 18 Oct 2010 15:46:58 +0000 (15:46 +0000)]
We've already set p = td->td_proc, so use it.

13 years agoRemove extra word, which looks like a left-over from a deleted sentence.
brucec [Mon, 18 Oct 2010 14:35:21 +0000 (14:35 +0000)]
Remove extra word, which looks like a left-over from a deleted sentence.

13 years agoFix grammar.
brucec [Mon, 18 Oct 2010 14:26:29 +0000 (14:26 +0000)]
Fix grammar.

13 years agoFix typo: Offlaod -> Offload.
pluknet [Mon, 18 Oct 2010 14:13:19 +0000 (14:13 +0000)]
Fix typo: Offlaod -> Offload.

PR: docs/150756
Approved by: avg (mentor)
MFC after: 3 days

13 years agoUpdate links for taskqueue(9) functions.
pjd [Mon, 18 Oct 2010 12:35:48 +0000 (12:35 +0000)]
Update links for taskqueue(9) functions.

13 years agoAdd links for libradius(3) functions.
pjd [Mon, 18 Oct 2010 12:35:10 +0000 (12:35 +0000)]
Add links for libradius(3) functions.

13 years agoSet of legacy mode SATA enchancements:
mav [Mon, 18 Oct 2010 11:30:13 +0000 (11:30 +0000)]
Set of legacy mode SATA enchancements:
- Implement proper combined mode decoding for Intel controllers to properly
identify SATA and PATA channels and associate ATA channels with SATA ports.
This fixes wrong reporting and in some cases hard resets to wrong SATA ports.
- Improve SATA registers support to handle hot-plug events and potentially
interface errors. For ICH5/6300ESB chipsets these registers accessible via
PCI config space. For later ones they may be accessible via PCI BAR(5).
- For controllers not generating interrupts on hot-plug events, implement
periodic status polling. Use it to detect hot-plug on Intel and VIA
controllers. Same probably could also be used for Serverworks and SIS.

13 years agoUnbreak buildworld by including pthread_rwlockattr_setkind_np and
davidxu [Mon, 18 Oct 2010 09:44:21 +0000 (09:44 +0000)]
Unbreak buildworld by including pthread_rwlockattr_setkind_np and
pthread_rwlockattr_getkind_np.

13 years agoRevert r213867; while this driver really doesn't use any of the generic
marius [Mon, 18 Oct 2010 08:36:03 +0000 (08:36 +0000)]
Revert r213867; while this driver really doesn't use any of the generic
subroutines, at least mii_capabilities is used within itself.

13 years agoLog if fopen() fails.
glebius [Mon, 18 Oct 2010 07:28:53 +0000 (07:28 +0000)]
Log if fopen() fails.

Reviewed by: brian

13 years ago"b64decode -r" did not handle arbitary breaks in base64 encoded
edwin [Mon, 18 Oct 2010 05:44:11 +0000 (05:44 +0000)]
"b64decode -r" did not handle arbitary breaks in base64 encoded
data. White space should be accepted anywhere in a base64 encoded
stream, not just after every chunk (4 characters).

Test-scenario:

VmVsb2NpdHkgUmV3YXJkcw==

and

VmVsb2NpdHkgUmV3YXJkcw
==

should both produce "Velocity Rewards"

PR: bin/124739
Submitted by: Mark Andrews <marka@isc.org>
MFC after: 2 weeks

13 years agosort function name.
davidxu [Mon, 18 Oct 2010 05:16:44 +0000 (05:16 +0000)]
sort function name.

13 years agos/||/&&
davidxu [Mon, 18 Oct 2010 05:15:26 +0000 (05:15 +0000)]
s/||/&&

13 years agoAdd pthread_rwlockattr_setkind_np and pthread_rwlockattr_getkind_np, the
davidxu [Mon, 18 Oct 2010 05:09:22 +0000 (05:09 +0000)]
Add pthread_rwlockattr_setkind_np and pthread_rwlockattr_getkind_np, the
functions set or get pthread_rwlock type, current supported types are:
   PTHREAD_RWLOCK_PREFER_READER_NP,
   PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,
   PTHREAD_RWLOCK_PREFER_WRITER_NP,
default is PTHREAD_RWLOCK_PREFER_WRITER_NONCECURSIVE_NP, this maintains
binary compatible with old code.

13 years agoRe-implement the root mount logic using a recursive approach, whereby each
marcel [Mon, 18 Oct 2010 05:01:53 +0000 (05:01 +0000)]
Re-implement the root mount logic using a recursive approach, whereby each
root file system (starting with devfs and a synthesized configuration) can
contain directives for mounting another file system as root. The old root
file system is re-mounted under the new root file system (with /.mount or
/mnt as the mount point) to allow access to the underlying file system.

The configuration allows for creating vnode-backed memory disks that can
subsequently be mounted as root. This allows for an efficient and low-
cost way to distribute and boot FreeBSD software images that reside on
some storage media.

When trying a mount, the kernel will wait for the device in question to
arrive. The timeout is configurable and is part of the configuration.
This allows arbitrarily complex GEOM configurations to be constructed
on the fly.

A side-effect of this change is that all root specifications, whether
compiled into the kernel or typed at the prompt can contain root mount
options.

13 years agoIn vfs_filteropt(), only print the errmsg when there's no errmsg
marcel [Mon, 18 Oct 2010 04:34:42 +0000 (04:34 +0000)]
In vfs_filteropt(), only print the errmsg when there's no errmsg
mount option. Otherwise errors tend to get printed multiple times.

13 years agoRename boot() to kern_reboot() and make it visible outside of
marcel [Mon, 18 Oct 2010 04:30:27 +0000 (04:30 +0000)]
Rename boot() to kern_reboot() and make it visible outside of
kern_shutdown.c. This makes it easier for emulators and other
parts of the kernel to initiate a reboot.

13 years agoAllow the MDIOCATTACH ioctl operation to originate from within the kernel.
marcel [Mon, 18 Oct 2010 04:26:32 +0000 (04:26 +0000)]
Allow the MDIOCATTACH ioctl operation to originate from within the kernel.
To protect against malicious software, we demand that the file name is at
a particular location (i.e. appended to the mdio structure) for it to be
treated as in-kernel.

13 years agoStylify of uudecode(1)
edwin [Mon, 18 Oct 2010 03:59:55 +0000 (03:59 +0000)]
Stylify of uudecode(1)
Part of PR bin/124739.

PR: bin/124739
Submitted by: Mark Andrews <marka@isc.org>

13 years agoFix a possible race where the directory dirent is moved to the location
kevlo [Mon, 18 Oct 2010 03:34:33 +0000 (03:34 +0000)]
Fix a possible race where the directory dirent is moved to the location
that was used by ".." entry.
This change seems fixed panic during attempt to access msdosfs data
over nfs.

Reviewed by: kib
MFC after: 1 week

13 years agoRe-add opt_mps.h and opt_cam.h, lost in the previous rev.
scottl [Sun, 17 Oct 2010 20:01:56 +0000 (20:01 +0000)]
Re-add opt_mps.h and opt_cam.h, lost in the previous rev.

13 years agoAdd myself to calendar.freebsd.
culot [Sun, 17 Oct 2010 19:02:42 +0000 (19:02 +0000)]
Add myself to calendar.freebsd.

Approved by: sahil@ (mentor)

13 years agoAdd an entry for myself to committers-ports.dot.
culot [Sun, 17 Oct 2010 18:48:51 +0000 (18:48 +0000)]
Add an entry for myself to committers-ports.dot.

Approved by: sahil@ (mentor)

13 years agoFix an XXX comment by answering 'no'. OS X does not set the day-of-week
nwhitehorn [Sun, 17 Oct 2010 17:31:49 +0000 (17:31 +0000)]
Fix an XXX comment by answering 'no'. OS X does not set the day-of-week
counter on SMU-based systems, which causes FreeBSD to reject the RTC time
when used in a dual-boot environment. Since we don't use the day-of-week
counter anyway, solve this by just not checking that it matches.

MFC after: 3 weeks

13 years ago- In oneshot-mode it doesn't make sense to try to compensate the clock
marius [Sun, 17 Oct 2010 16:46:54 +0000 (16:46 +0000)]
- In oneshot-mode it doesn't make sense to try to compensate the clock
  drift in order to achieve a more stable clock as the tick intervals may
  vary in the first place. In fact I haven't seen this code kick in when
  in oneshot-mode so just skip it in that case.
- There's no need to explicitly stop the (S)TICK counter in oneshot-mode
  with every tick as it just won't trigger again with the (S)TICK compare
  register set to a value in the past (with a wrap-around once every ~195
  years of uptime at 1.5 GHz this isn't something we have to worry about
  in practice).
- Given that we'll disable interrupts completely anyway there's no
  need to enter critical sections.

13 years agoDocument vunref(9), add some important notes for vrele(9) and vput(9).
kib [Sun, 17 Oct 2010 16:30:33 +0000 (16:30 +0000)]
Document vunref(9), add some important notes for vrele(9) and vput(9).
Merge all three manpages to one, removing separate file for vput(9).

MFC after: 1 week