Commit Graph

2202 Commits

Author SHA1 Message Date
Kevin Lo
9aae28359d Fix typos 2012-02-28 15:07:05 +00:00
Glen Barber
3102cfe2e2 Fix various typos in manual pages.
Submitted by:	amdmi3
PR:		165431
MFC after:	1 week
2012-02-25 14:31:25 +00:00
Christian Brueffer
6bdc1841a9 Catch up with r195837 (2.5 years ago) which renamed net_add_domain() to domain_add().
PR:		165424
Submitted by:	Lachlan Kang
MFC after:	1 week
2012-02-23 17:47:19 +00:00
Ed Schouten
6b99842ada Globally replace u_int*_t from (non-contributed) man pages.
The reasoning behind this, is that if we are consistent in our
documentation about the uint*_t stuff, people will be less tempted to
write new code that uses the non-standard types.

I am not going to bump the man page dates, as these changes can be
considered style nits. The meaning of the man pages is unaffected.

MFC after:	1 month
2012-02-12 18:29:56 +00:00
Ed Schouten
b5d1ccb470 Remove outdated piece of information.
devtoname() always returns a pathname to the device. It will never
return a #major/minor string.

MFC after:	2 weeks
2012-02-10 11:20:13 +00:00
Glen Barber
814b16ba92 Fix some Xr references:
- ada(4): ad(4) - removed, ada(4) would be a self-referencing entry
- cd(4): ad(4) -> ada(4)
- da(4): ad(4) -> ada(4)
- DEVICE_PROBE(9):  ugen(5) -> ugen(4)
- ed(4): dhclinet(8) -> dhclient(8) (typo)
- lmc(4): Netgraph(4) -> netgraph(4)
- security(7): rc.conf(8) -> rc.conf(5)
- sfxge(4): cpuset(8) -> cpuset(1)
- sbp(4): sysctl(1) -> sysctl(8)
- portindex(5): build(1) -> build(7)
- u3g(4): usbconfig(5) -> usbconfig(8)
- usb_quirk(4): usbconfig(5) -> usbconfig(8)

Found with:	textproc/igor
MFC after:	3 days
2012-02-09 04:37:30 +00:00
Christian Brueffer
35f8bc5f64 Manpages for the buf_ring and drbr interfaces.
Submitted by:	kmacy (aeons ago)
MFC after:	1 week
2012-01-30 21:02:25 +00:00
Kip Macy
c3bd46fe5b update .Dd 2012-01-28 23:30:39 +00:00
Kip Macy
e013216e41 alphabetically sort optional flags and add documentation for VM_ALLOC_NODUMP 2012-01-28 17:27:58 +00:00
Kip Macy
986e5ec7af document M_NODUMP flag 2012-01-28 17:21:12 +00:00
Gleb Smirnoff
2930db16a0 List supported ioctl commands instead of old one. 2012-01-26 11:08:55 +00:00
Ed Schouten
5dc6c3a38a Remove remnants of dev_t.
These functions take a `struct cdev *' -- not a dev_t. Inside the
kernel, dev_t has the same use as in userspace, namely to store a device
identifier.

MFC after:	2 weeks
2012-01-19 09:51:07 +00:00
Kevin Lo
1dc8fb4d77 NOOBJ is long time dead
Reviewed by:	kib
2012-01-18 02:29:11 +00:00
Kevin Lo
0ad9a4f449 vfs_object_create() function is obsolete. Use vnode_create_vobject()
to create the backing object.

Reviewed by:	kib
2012-01-18 02:27:09 +00:00
Ed Schouten
194cef3114 Fix sloppyness in memcchr() man page.
I was considering adding it to libc as well, but last minute I thought
it would be good enough to add it to libkern exclusively. I forgot to
rename the man page and hook it up.
2012-01-01 20:59:42 +00:00
Ed Schouten
a4ec012311 Fix typo; return -> returns. 2012-01-01 20:30:48 +00:00
Ed Schouten
de85bfc508 Introducing memcchr(3).
It seems two of the file system drivers we have in the tree, namely ufs
and ext3, use a function called `skpc()'. The meaning of this function
does not seem to be documented in FreeBSD, but it turns out one needs to
be a VAX programmer to understand what it does.

SPKC is an instruction on the VAX that does the opposite of memchr(). It
searches for the non-equal character. Add a new function called
memcchr() to the tree that has the following advantages over skpc():

- It has a name that makes more sense than skpc(). Just like strcspn()
  matches the complement of strspn(), memcchr() is the complement of
  memchr().

- It is faster than skpc(). Similar to our strlen() in libc, it compares
  entire words, instead of single bytes. It seems that for this routine
  this yields a sixfold performance increase on amd64.

- It has a man page.
2012-01-01 20:26:11 +00:00
Jaakko Heinonen
c5a0813d43 Follow style(9) more closely in the example. 2011-12-21 17:03:30 +00:00
Alexander Motin
f42acd0f79 Add eventtimers(9) man page, describing related KPIs.
Sponsored by:	iXsystems, Inc.
MFC after:	1 month
2011-12-20 11:40:22 +00:00
John Baldwin
a7f5f7948b Add a TASK_INITIALIZER() macro that can be used to statically
initialize a task structure.

Reviewed by:	gj
MFC after:	2 weeks
2011-12-19 18:55:13 +00:00
Ruslan Ermilov
e9a2004460 Fixed some of markup.
Reviewed by:	jhb
2011-12-17 06:57:35 +00:00
John Baldwin
fb680e16f4 Add a helper API to allow in-kernel code to map portions of shared memory
objects created by shm_open(2) into the kernel's address space.  This
provides a convenient way for creating shared memory buffers between
userland and the kernel without requiring custom character devices.
2011-12-14 22:22:19 +00:00
Gleb Smirnoff
c62cf1f7fe More MLINKS for rtalloc.9 2011-12-14 14:55:19 +00:00
Gleb Smirnoff
9aa3cab968 Update this page to describe modern interfaces. 2011-12-14 14:52:50 +00:00
Jaakko Heinonen
569dd0f3be sbuf_data() hasn't returned NULL for overflowed buffers since r71721. 2011-12-09 13:28:41 +00:00
Jaakko Heinonen
c0825cd535 - Fix markup.
- Remove trailing whitespace.
2011-12-09 13:15:19 +00:00
Marius Strobl
788a85e884 - Add a DEVMETHOD_END alias for KOBJMETHOD_END so that along with 'driver_t'
and DEVMETHOD() we can fully hide the explicit mention of kobj(9) from
  device drivers.
- Update the example in driver.9 to use DEVMETHOD_END.

Submitted by:	jhb
MFC after:	3 days
2011-11-22 19:31:43 +00:00
Konstantin Belousov
46154a3b3b Update the manpage for r227697.
MFC after:	3 weeks
2011-11-19 07:52:39 +00:00
Pawel Jakub Dawidek
d576deedb5 Constify arguments for locking KPIs where possible.
This enables locking consumers to pass their own structures around as const and
be able to assert locks embedded into those structures.

Reviewed by:	ed, kib, jhb
2011-11-16 21:51:17 +00:00
Pawel Jakub Dawidek
a20358302f Constify stack argument for functions that don't modify it.
Reviewed by:	ed, kib, jhb
2011-11-16 19:06:55 +00:00
Marius Strobl
d7ecd801ed As it turns out, r186347 actually is insufficient to avoid the use of the
curthread-accessing part of mtx_{,un}lock(9) when using a r210623-style
curthread implementation on sparc64, crashing the kernel in its early
cycles as PCPU isn't set up, yet (and can't be set up as OFW is one of the
things we need for that, which leads to a chicken-and-egg problem). What
happens is that due to the fact that the idea of r210623 actually is to
allow the compiler to cache invocations of curthread, it factors out
obtaining curthread needed for both mtx_lock(9) and mtx_unlock(9) to
before the branch based on kobj_mutex_inited when compiling the kernel
without the debugging options. So change kobj_class_compile_static(9)
to just never acquire kobj_mtx, effectively restricting it to its
documented use, and add a kobj_init_static(9) for initializing objects
using a class compiled with the former and that also avoids using mutex(9)
(and malloc(9)). Also assert in both of these functions that they are
used in their intended way only.
While at it, inline kobj_register_method() and kobj_unregister_method()
as there wasn't much point for factoring them out in the first place
and so that a reader of the code has to figure out the locking for
fewer functions missing a KOBJ_ASSERT.
Tested on powerpc{,64} by andreast.

Reviewed by:	nwhitehorn (earlier version), jhb
MFC after:	3 days
2011-11-15 20:11:03 +00:00
John-Mark Gurney
4ce04b3d91 group functions together by function...
document knlist_delete, and better document what knlist_clear does...  Note
that both of these functions may sleep, and also unlock/relock the list
lock...

document knlist_init_mtx (forgotten by kib)...

other minor improvements

Reviewed by:	ru (previous rev)
MFC after:	1 week
2011-11-05 17:55:49 +00:00
Gleb Smirnoff
19b5c7c246 Spelling.
Submitted by:	dougb
2011-10-21 20:23:40 +00:00
Gleb Smirnoff
93ecaabdcb Note that it is still not possible to guard special kind of allocations, those
that have special relationships with uma(9). Currently only mbuf clusters.
2011-10-21 13:54:17 +00:00
Eitan Adler
36daf0495a - change "is is" to "is" or "it is"
- change "the the" to "the"

Approved by:	lstewart
Approved by:	sahil (mentor)
MFC after:	3 days
2011-10-16 14:30:28 +00:00
Gleb Smirnoff
0e775b6d17 Document that memguard(9) now can guard uma(9) allocations. 2011-10-12 18:46:48 +00:00
Dag-Erling Smørgrav
4c7ad48309 Mention tdsignal(9).
MFC after:	1 week
2011-10-07 22:14:18 +00:00
Sergey Kandaurov
06dafde167 Fix typo in OSIOCGIFADDR.
MFC after:	3 days
2011-09-27 07:05:41 +00:00
Lawrence Stewart
f772f9fe43 Rename the cc.4 and cc.9 modular congestion control related man pages to
mod_cc.4 and mod_cc.9 respectively to avoid any possible confusion with the cc.1
gcc man page. Update references to these man pages where required.

Requested by:	Grenville Armitage
Approved by:	re (kib)
MFC after:	3 days
2011-09-15 12:15:36 +00:00
Adrian Chadd
d2849f27bc Ensure that ta_pending doesn't overflow u_short by capping its value at USHRT_MAX.
If it overflows before the taskqueue can run, the task will be
re-added to the taskqueue and cause a loop in the task list.

Reported by:	Arnaud Lacombe <lacombar@gmail.com>
Submitted by:	Ryan Stone <rysto32@gmail.com>
Reviewed by:	jhb
Approved by:	re (kib)
MFC after:	1 day
2011-09-15 08:42:06 +00:00
Konstantin Belousov
43fae19e34 Document vm_page_aflag_set(9), vm_page_aflag_clear(9) and vm_page_reference(9).
Retire vm_page_flag_set() and vm_page_flag_clear() functions.

Reviewed by:	alc
Approved by:	re (bz)
2011-09-06 10:40:21 +00:00
Christian Brueffer
04114c5ee3 Remove information and MLINK for MULTI_DRIVER_MODULE().
The macro was removed in r121129 almost 8 years ago.

PR:		150244
Submitted by:	Gireesh Nagabhushana <dngireesh@avrita.com>
Approved by:	re (kib)
2011-08-27 22:08:01 +00:00
Attilio Rao
1c93fd20a0 Fix an error in the generation of the manpage after r225177.
Sponsored by:	Sandvine Incorporated
Submitted by:	jkim
Approved by:	re (bz)
MFC after:	3 weeks
X-MFC:		r225177
2011-08-25 17:42:27 +00:00
Attilio Rao
6aba400a70 Fix a deficiency in the selinfo interface:
If a selinfo object is recorded (via selrecord()) and then it is
quickly destroyed, with the waiters missing the opportunity to awake,
at the next iteration they will find the selinfo object destroyed,
causing a PF#.

That happens because the selinfo interface has no way to drain the
waiters before to destroy the registered selinfo object. Also this
race is quite rare to get in practice, because it would require a
selrecord(), a poll request by another thread and a quick destruction
of the selrecord()'ed selinfo object.

Fix this by adding the seldrain() routine which should be called
before to destroy the selinfo objects (in order to avoid such case),
and fix the present cases where it might have already been called.
Sometimes, the context is safe enough to prevent this type of race,
like it happens in device drivers which installs selinfo objects on
poll callbacks. There, the destruction of the selinfo object happens
at driver detach time, when all the filedescriptors should be already
closed, thus there cannot be a race.
For this case, mfi(4) device driver can be set as an example, as it
implements a full correct logic for preventing this from happening.

Sponsored by:	Sandvine Incorporated
Reported by:	rstone
Tested by:	pluknet
Reviewed by:	jhb, kib
Approved by:	re (bz)
MFC after:	3 weeks
2011-08-25 15:51:54 +00:00
Konstantin Belousov
4d066e4519 Fix markup.
Approved by:	re (hrs)
2011-08-01 08:52:05 +00:00
Glen Barber
fa53ff8858 Update vfs_getopt(9) to reflect 32-bit to 64-bit change from
r224290.

PR:		159324
Submitted by:	Brandon Gooch (jamesbrandongooch % gmail ! com)
Approved by:	re (kib)
2011-07-31 21:04:47 +00:00
Alan Cox
6a34e6cea1 Remove the old vm_map_clean man page. 2011-07-09 19:09:20 +00:00
Alan Cox
1794df1f44 vm_map_clean() was long ago renamed to vm_map_sync(). Also, it no longer
acquires Giant.

MFC after:	1 week
2011-07-09 19:05:28 +00:00
Alan Cox
d5a9ee9fb0 Oops. These changes should have been included in r223891.
MFC after:	1 week
2011-07-09 18:09:57 +00:00
Alan Cox
fdbf90bc50 Remove manual pages for functions that no longer exist.
MFC after:	1 week
2011-07-09 18:05:27 +00:00
Konstantin Belousov
6847f7cfb3 Document copyin_nofault, copyout_nofault, uiomove_nofault.
Submitted by:	alc
2011-07-09 15:24:12 +00:00
Matthew D Fleming
b5bd50ae40 Add an option to have a fail point term only execute when run by a
specified pid.  This is helpful for automated testing involving a global
knob that would otherwise be executed by many other threads.

MFC after: 1 week
2011-07-08 20:41:12 +00:00
Bjoern A. Zeeb
35fd7bc020 Add infrastructure to allow all frames/packets received on an interface
to be assigned to a non-default FIB instance.

You may need to recompile world or ports due to the change of struct ifnet.

Submitted by:	cjsp
Submitted by:	Alexander V. Chernikov (melifaro ipfw.ru)
		(original versions)
Reviewed by:	julian
Reviewed by:	Alexander V. Chernikov (melifaro ipfw.ru)
MFC after:	2 weeks
X-MFC:		use spare in struct ifnet
2011-07-03 12:22:02 +00:00
Bjoern A. Zeeb
930c182a06 Install symlinks for m_tag_* mbuf tag functions to the mbuf_tags.9 man page.
MFC after:	1 week
2011-06-18 13:08:46 +00:00
Bjoern A. Zeeb
dabc7ac21a Correct a typo in the function name.
MFC after:	1 week
2011-06-18 13:03:06 +00:00
Ulrich Spörlein
135bce2a9e mdoc: reorder sections consistently 2011-06-02 09:56:53 +00:00
Ruslan Ermilov
a6d11f7139 [mdoc] Fixed .Dt call. 2011-05-25 14:13:53 +00:00
Ulrich Spörlein
6e18fca127 Re-encode files from ISO-8859-1 to UTF-8 2011-05-22 14:03:30 +00:00
Poul-Henning Kamp
c920aa7a9d When adding examples to man-pages, try to make them at least
look like they might work.

Prodded by:	Vadim Goncharov
2011-05-19 13:42:19 +00:00
Poul-Henning Kamp
6ab7244a4d Try to explain what sbufs do and add an example to show it.
Clarify return values.
2011-05-17 18:24:59 +00:00
Andrey V. Elsukov
35bb01624e Add make_dev_alias_p to MLINKS.
Pointed out by:	pjd
MFC after:	2 weeks
2011-05-05 14:13:08 +00:00
Andrey V. Elsukov
580a458787 Formatting fixes:
o Fix date
 o Break sentences
 o Remove trailing whitespaces
 o Sort xrefs by section number

Requested by:	ru
MFC after:	2 weeks
2011-05-05 09:55:55 +00:00
Glen Barber
c19b8489b8 Remove unneeded tab after .Ed to make manlint happy.
Reported by:	manlint
2011-05-04 18:16:05 +00:00
Andrey V. Elsukov
8137364f6e Document make_dev_alias_p().
MFC after:	2 weeks
2011-05-03 18:55:16 +00:00
John Baldwin
85ee63c923 Add a new bus method, BUS_ADJUST_RESOURCE() that is intended to be a
wrapper around rman_adjust_resource().  Include a generic implementation,
bus_generic_adjust_resource() which passes the request up to the parent
bus.  There is currently no default implementation.  A
bus_adjust_resource() wrapper is provided for use in drivers.
2011-04-29 21:36:45 +00:00
John Baldwin
bb82622c3e Extend the rman(9) API to support altering an existing resource.
Specifically, these changes allow a resource to back a relocatable and
resizable resource such as the I/O window decoders in PCI-PCI bridges.
- rman_adjust_resource() can adjust the start and end address of an
  existing resource.  It only succeeds if the newly requested address
  space is already free.  It also supports shrinking a resource in
  which case the freed space will be marked unallocated in the rman.
- rman_first_free_region() and rman_last_free_region() return the
  start and end addresses for the first or last unallocated region in
  an rman, respectively.  This can be used to determine by how much
  the resource backing an rman must be adjusted to accomodate an
  allocation request that does not fit into the existing rman.

While here, document the rm_start and rm_end fields in struct rman,
rman_is_region_manager(), the bound argument to
rman_reserve_resource_bound(), and rman_init_from_resource().
2011-04-29 20:05:19 +00:00
Dag-Erling Smørgrav
5d80bf64c1 Rename alloc_unr(9) to unr(9) and adjust the links accordingly.
MFC after:	3 weeks
2011-04-27 01:10:15 +00:00
Konstantin Belousov
c3bd10b434 Document timeout_task.
While there, fix the type of the func argument of INIT_TASK macro,
and use the modern name of the analogous facility from Linux kernel.

Sponsored by:	The FreeBSD Foundation
MFC after:	1 month
2011-04-26 11:43:57 +00:00
Gleb Smirnoff
fa05d2156e It is already seven years since mbuf allocator uses same
M_WAITOK/M_NOWAIT flags as malloc(9). Update manual page.

Submitted by:	Vadim Goncharov <vadimnuclight tpu.ru>
2011-04-18 15:30:25 +00:00
Lawrence Stewart
891b8ed467 Use the full and proper company name for Swinburne University of Technology
throughout the source tree.

Requested by:	Grenville Armitage, Director of CAIA at Swinburne University of
			Technology
MFC after:	3 days
2011-04-12 08:13:18 +00:00
Andrey V. Elsukov
95d4707398 Remove duplicate sentence. 2011-03-30 11:34:40 +00:00
Jung-uk Kim
c26c38740d Fix a typo in the previous commit. AMD64 and Intel 64 are two brand names. 2011-03-15 17:59:30 +00:00
Jung-uk Kim
d8ea2a492e Unconditionally use binuptime(9) for get_cyclecount(9) on i386. Since this
function is almost exclusively used for random harvesting, there is no need
for micro-optimization.  Adjust the manual page accordingly.
2011-03-15 17:14:26 +00:00
Hans Petter Selasky
1c49736857 - Add support for software pre-scaling of ISOCHRONOUS transfers.
MFC after:	14 days
Approved by:	thompsa (mentor)
2011-02-28 17:23:15 +00:00
Lawrence Stewart
29f269dc1f Final commit to round out the "Five New TCP Congestion Control Algorithms for
FreeBSD" FreeBSD Foundation funded project.

- Add new man pages for the modular congestion control, Khelp and Hhook
  frameworks (cc.4, cc.9, khelp.9 and hhook.9).

- Add new man pages for each available congestion control algorithm (cc_chd.4,
  cc_cubic.4, cc_hd.4, cc_htcp.4, cc_newreno.4 and cc_vegas.4).

- Add a new man page for the Enhanced Round Trip Time (ERTT) Khelp module
  (h_ertt.4).

- Update the TCP (tcp.4) man page to mention the TCP_CONGESTION socket option,
  cross reference to cc.4 and remove references to the retired
  "net.inet.tcp.newreno" sysctl MIB variable.

In collaboration with:	David Hayes <dahayes at swin edu au> and
				Grenville Armitage <garmitage at swin edu au>
Sponsored by:	FreeBSD Foundation
MFC after:	3 months
2011-02-21 11:56:11 +00:00
Warner Losh
9f6985c483 Document requirement that sys/types.h be included before rman.h.
Submitted by:	Raphael Kubo da Costa
MFC after:	2 weeks
2011-02-10 04:55:51 +00:00
Matthew D Fleming
00f0e671ff Explicitly wire the user buffer rather than doing it implicitly in
sbuf_new_for_sysctl(9).  This allows using an sbuf with a SYSCTL_OUT
drain for extremely large amounts of data where the caller knows that
appropriate references are held, and sleeping is not an issue.

Inspired by:	rwatson
2011-01-27 00:34:12 +00:00
Matthew D Fleming
7c2dd57bdb Document sbuf_new_for_sysctl(9).
Pointed out by:	lstewart
2011-01-25 17:39:52 +00:00
Jaakko Heinonen
353429bfd2 Fix typos. 2011-01-22 15:19:25 +00:00
Matthew D Fleming
cbc134ad03 Introduce signed and unsigned version of CTLTYPE_QUAD, renaming
existing uses.  Rename sysctl_handle_quad() to sysctl_handle_64().
2011-01-19 23:00:25 +00:00
John-Mark Gurney
2634879bbb document that even when wakeup_one is used to wakeup, msleep and friends
may still return a non-zero value... You are not guaranteed to get a one
to one mapping between wakeup_one and zero return values...

Reviewed by:	kib
MFC after:	3 days
2011-01-19 22:16:42 +00:00
Matthew D Fleming
f8e4b4ef49 sysctl(8) should use the CTLTYPE to determine the type of data when
reading.  (This was already done for writing to a sysctl).  This
requires all SYSCTL setups to specify a type.  Most of them are now
checked at compile-time.

Remove SYSCTL_*X* sysctl additions as the print being in hex should be
controlled by the -x flag to sysctl(8).

Succested by:	bde
2011-01-19 17:04:07 +00:00
Edward Tomasz Napierala
102f2f352f Restore comment describing /* NOTREACHED */, updated to match reality. 2011-01-07 08:34:12 +00:00
John Baldwin
49fe354a54 Retire the INTR_FAST flag as it was obsoleted by the introduction of the
filter argument to bus_setup_intr().
2011-01-06 21:14:34 +00:00
Edward Tomasz Napierala
0b13dbc38b Get rid of bad advice regarding /* NOTREACHED */. Compilers don't
really need it (one can use __dead2 instead), and style(9) was not
even consistent with itself in this regard.
2011-01-06 08:33:48 +00:00
Lawrence Stewart
61f8e2a786 Fix a whitespace nit.
MFC after:	1 week
X-MFC with:	r216995
2011-01-06 04:05:25 +00:00
Lawrence Stewart
4a2b56eb8a Add a man page for the Object Specific Data (OSD) KPI.
Although not directly related the FreeBSD Foundation funded "Five New TCP
Congestion Control Algorithms for FreeBSD" project, the understanding and
inspiration required to write this documentation was significantly bolstered
by the Foundation's support.

Reviewed by:	pjd
MFC after:	1 week
2011-01-05 11:49:23 +00:00
Pawel Jakub Dawidek
24e75069cd Correct cookie type to match reality. 2010-12-19 18:07:10 +00:00
John Baldwin
c529e287e5 Add a manpage for SYSINIT() and SYSUNINIT().
PR:		docs/132884
Submitted by:	pluknet, hmp
2010-12-06 15:19:03 +00:00
Rebecca Cran
01688065e7 Document the fact that passing in a count of zero to the bus_space functions
will result in undefined behaviour.
Taken from NetBSD's bus_space(9).
2010-12-03 18:30:55 +00:00
Rebecca Cran
c90f7d9b44 Revert r216134. This checkin broke platforms where bus_space are macros:
they need to be a single statement, and do { } while (0) doesn't work in this
situation so revert until a solution can be devised.
2010-12-03 07:09:23 +00:00
Rebecca Cran
15b4888a24 Disallow passing in a count of zero bytes to the bus_space(9) functions.
Passing a count of zero on i386 and amd64 for [I386|AMD64]_BUS_SPACE_MEM
causes a crash/hang since the 'loop' instruction decrements the counter
before checking if it's zero.

PR:	kern/80980
Discussed with:	jhb
2010-12-02 22:19:30 +00:00
Konstantin Belousov
2e88da356c Remove the note about possible unlocking during vunref(9). It might
only happen if VOP_INACTIVATE() drops the vnode lock, which is quite
unreasonable behaviour for filesystem, and should not be mentioned
in the description of VFS primitives.

MFC after:	1 week
2010-11-24 12:34:25 +00:00
Sergey Kandaurov
396a7f5025 Stop documenting vgonel() after its converting to the static function:
svn r147332 (by jeff): "Don't make vgonel() globally visible".
While here, specify the vnode locking scheme for vgone().

Discussed on:	freebsd-hackers@
Approved by:	kib (mentor)
MFC after:	10 days
2010-11-12 12:07:36 +00:00
Matthew D Fleming
f46276a9b0 Add a taskqueue_cancel(9) to cancel a pending task without waiting for
it to run as taskqueue_drain(9) does.

Requested by:	hselasky
Original code:	jeff
Reviewed by:	jhb
MFC after:	2 weeks
2010-11-08 20:56:31 +00:00
Edward Tomasz Napierala
8de599ec35 Xref BUS_SETUP_INTR(9) and locking(9). 2010-11-03 18:49:50 +00:00
John Baldwin
bd19a23baa Fix a few typos and style nits in the example code.
Submitted by:	Arnaud Lacombe  lacombar of gmail
MFC after:	3 days
2010-11-02 12:40:13 +00:00
Jaakko Heinonen
95adbc959b Use .Dv with NULL. 2010-10-24 16:10:32 +00:00
Jaakko Heinonen
f36575b51c Document make_dev_p(9).
Reviewed by:	brueffer, kib
2010-10-24 15:56:21 +00:00
Ulrich Spörlein
2914feeb7e 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.
2010-10-21 12:27:13 +00:00
Andriy Gapon
7f0ab7f026 catch up manual pages with rename of vm_page_sleep_busy to vm_page_sleep_if_busy
Suggested by:	alc
MFC after:	4 days
2010-10-20 06:29:11 +00:00
Andriy Gapon
c3fdd2de24 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
2010-10-20 05:57:54 +00:00
Andriy Gapon
55144670c2 PG_BUSY -> VPO_BUSY, PG_WANTED -> VPO_WANTED in manual pages and comments
Reviewed by:	alc
MFC after:	4 days
2010-10-20 05:17:23 +00:00
Matthew D Fleming
20ed0cb0c6 uma_zfree(zone, NULL) should do nothing, to match free(9).
Noticed by:	Ron Steinke <rsteinke at isilon dot com>
MFC after:	3 days
2010-10-19 16:06:00 +00:00
Ulrich Spörlein
52e9e8dcca mdoc: fix markup typo
MFC after:	1 week (together with r213983)
2010-10-19 15:26:08 +00:00
Pawel Jakub Dawidek
ad4f4b2be8 Update links for taskqueue(9) functions. 2010-10-18 12:35:48 +00:00
Konstantin Belousov
251e7dbf42 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
2010-10-17 16:30:33 +00:00
Lawrence Stewart
1c6cae9711 Change uma_zone_set_max to return the effective value of "nitems" after
rounding. The same value can also be obtained with uma_zone_get_max, but this
change avoids a caller having to make two back-to-back calls.

Sponsored by:	FreeBSD Foundation
Reviewed by:	gnn, jhb
2010-10-16 04:41:45 +00:00
Lawrence Stewart
c4ae7908a7 - Simplify implementation of uma_zone_get_max.
- Add uma_zone_get_cur which returns the current approximate occupancy of
  a zone. This is useful for providing stats via sysctl amongst other things.

Sponsored by:	FreeBSD Foundation
Reviewed by:	gnn, jhb
MFC after:	2 weeks
2010-10-16 04:14:45 +00:00
Matthew D Fleming
bf73d4d28e Use a safer mechanism for determining if a task is currently running,
that does not rely on the lifetime of pointers being the same. This also
restores the task KBI.

Suggested by:	jhb
MFC after:	1 month
2010-10-13 22:59:04 +00:00
Matthew D Fleming
a92f0ee866 Re-expose and briefly document taskqueue_run(9). The function is used
in at least one 3rd party driver.

Requested by:	jhb
2010-10-12 18:36:03 +00:00
Ulrich Spörlein
0d9deed52c mdoc: drop redundant .Pp and .LP calls
They have no effect when coming in pairs, or before .Bl/.Bd
2010-10-08 12:40:16 +00:00
Jaakko Heinonen
68f7a01392 Check the device name validity on device registration.
A new function prep_devname() sanitizes a device name by removing
leading and redundant sequential slashes. The function returns an error
for names which already exist or are considered invalid.

A new flag MAKEDEV_CHECKNAME for make_dev_p(9) and make_dev_credf(9)
indicates that the caller is prepared to handle an error related to the
device name. An invalid name triggers a panic if the flag is not
specified.

Document the MAKEDEV_CHECKNAME flag in the make_dev(9) manual page.

Idea from:	kib
Reviewed by:	kib
2010-10-07 18:00:55 +00:00
Glen Barber
8d89b8f2a2 I believe the majority of Gregorian calendars would agree the current
year is 2010, not 2005.

Approved by:	keramida (mentor)
Pointy hat to:	gjb
MFC after:	1 week
2010-09-12 17:53:36 +00:00
Glen Barber
f3f9858578 Bump date from r212440.
Approved by:	keramida (mentor)
MFC after:	1 week
2010-09-12 14:04:54 +00:00
Glen Barber
9d839c44c1 Add RETURN VALUES section to devclass_get_maxunit(9).
PR:		149979
Submitted by:	gcooper
Patch by:	gcooper
Approved by:	keramida (mentor)
MFC after:	1 week
2010-09-10 23:22:01 +00:00
Matthew D Fleming
4d369413e1 Replace sbuf_overflowed() with sbuf_error(), which returns any error
code associated with overflow or with the drain function.  While this
function is not expected to be used often, it produces more information
in the form of an errno that sbuf_overflowed() did.
2010-09-10 16:42:16 +00:00
Matthew D Fleming
4351ba272c Add drain functionality to sbufs. The drain is a function that is
called when the sbuf internal buffer is filled.  For kernel sbufs with a
drain, the internal buffer will never be expanded.  For userland sbufs
with a drain, the internal buffer may still be expanded by
sbuf_[v]printf(3).

Sbufs now have three basic uses:
1) static string manipulation.  Overflow is marked.
2) dynamic string manipulation.  Overflow triggers string growth.
3) drained string manipulation.  Overflow triggers draining.

In all cases the manipulation is 'safe' in that overflow is detected and
managed.

Reviewed by:	phk (the previous version)
2010-09-09 17:49:18 +00:00
Matthew D Fleming
db960cf00a Fix small errors in the sbuf(9) man page. 2010-09-09 16:27:02 +00:00
Konstantin Belousov
5e9cd1dbf8 Document MAKEDEV_ETERNAL.
MFC after:	3 days
2010-09-05 14:47:46 +00:00
Max Laier
36058c09e4 rmlock(9) two additions and one change/fix:
- add rm_try_rlock().
 - add RM_SLEEPABLE to use sx(9) as the back-end lock in order to sleep while
   holding the write lock.
 - change rm_noreadtoken to a cpu bitmask to indicate which CPUs need to go
   through the lock/unlock in order to synchronize.  As a side effect, this
   also avoids IPI to CPUs without any readers during rm_wlock.

Discussed with:		ups@, rwatson@ on arch@
Sponsored by:		Isilon Systems, Inc.
2010-09-01 19:50:03 +00:00
Rebecca Cran
e7f8dd75b3 Fix incorrect usage of 'assure' and 'insure'.
Approved by: rrs (mentor)
2010-08-28 16:32:01 +00:00
Edward Tomasz Napierala
6b85cd6ddc s/ithread/interrupt thread/ 2010-08-24 21:38:44 +00:00
Ed Schouten
cd1c27af36 Add missing mlink for insmntque1().
MFC after:	1 week
2010-08-22 16:42:46 +00:00
Joel Dahl
c2025a7660 Fix typos, spelling, formatting and mdoc mistakes found by Nobuyuki while
translating these manual pages.  Minor corrections by me.

Submitted by:	Nobuyuki Koganemaru <n-kogane@syd.odn.ne.jp>
2010-08-16 15:18:30 +00:00
Christian Brueffer
0f7e249192 Fixed a typo.
PR:		148701
Submitted by:	Glen Barber <glen.j.barber@gmail.com>
MFC after:	1 week
2010-08-15 21:37:30 +00:00
Christian Brueffer
6a8d8aa193 Tie up some loose ends r88509 left behind:
- chooseproc() is long gone, MLINK choosethread instead
- Update NAME section for choosethread
- Mark chooseproc.9 for removal

PR:             149549
Submitted by:   pluknet
MFC after:	1 week
2010-08-15 21:25:52 +00:00
Matthew D Fleming
e3813573bd Rework memguard(9) to reserve significantly more KVA to detect
use-after-free over a longer time.  Also release the backing pages of
a guarded allocation at free(9) time to reduce the overhead of using
memguard(9).  Allow setting and varying the malloc type at run-time.
Add knobs to allow:

 - randomly guarding memory
 - adding un-backed KVA guard pages to detect underflow and overflow
 - a lower limit on the size of allocations that are guarded

Reviewed by:    alc
Reviewed by:    brueffer, Ulrich Spörlein <uqs spoerlein net> (man page)
Silence from:   -arch
Approved by:    zml (mentor)
MFC after:      1 month
2010-08-11 22:10:37 +00:00
Dag-Erling Smørgrav
c3a2dbe9e5 Document the MEXTADD macro.
MFC after:	2 weeks
2010-08-07 13:26:08 +00:00
Stefan Farfeleder
6da339ce79 Add links for destroy_dev_drain, destroy_dev_sched, destroy_dev_sched_cb,
make_dev_cred and make_dev_credf.
2010-08-06 16:50:48 +00:00
Joel Dahl
f6ac23919b Fix typos and spelling mistakes. 2010-08-06 14:33:42 +00:00
Pawel Jakub Dawidek
3035649e73 Correct function name.
MFC after:	3 days
2010-08-01 21:54:25 +00:00
Joel Dahl
b06cfd40f9 Fix a bunch of typos and spelling mistakes. 2010-07-31 12:14:28 +00:00
Joel Dahl
9ba4735280 Spelling fixes. 2010-07-31 10:01:15 +00:00
Simon L. B. Nielsen
74aed54846 Missing IFCAP_* macro descriptions in ifnet(9).
PR:		docs/148952
Submitted by:	Lars Hartmann <lars@chaotika.org>
MFC after:	2 weeks
2010-07-27 08:45:29 +00:00
Matthew D Fleming
242ed5d96c Fix taskqueue_drain(9) to not have false negatives. For threaded
taskqueues, more than one task can be running simultaneously.

Also make taskqueue_run(9) static to the file, since there are no
consumers in the base kernel and the function signature needs to change
with this fix.

Remove mention of taskqueue_run(9) and taskqueue_run_fast(9) from the
taskqueue(9) man page.

Reviewed by:    jhb
Approved by:    zml (mentor)
2010-07-22 16:41:09 +00:00
Jaakko Heinonen
13c02cbb18 Extend the kernel unit number allocator for allocating specific unit
numbers. This change adds a new function alloc_unr_specific() which
returns the requested unit number if it is free. If the number is
already allocated or out of the range, -1 is returned.

Update alloc_unr(9) manual page accordingly and add a MLINK for
alloc_unr_specific(9).

Discussed on:	freebsd-hackers
2010-07-05 16:23:55 +00:00
Alan Cox
b64400a03f Improve the comment and man page for vm_page_alloc(). Specifically,
document one of the optional flags; clarify which of the flags are
optional (and which are not), and remove mention of a restriction on
the reclamation of cached pages that no longer holds since version 7.

MFC after:	1 week
2010-07-03 18:25:37 +00:00
Colin Percival
bb48785424 Note that internal_underscores should be used in identifier names rather
than camelCase or TitleCase.

According to grep and my checked-out source tree, we're currently at
3733379 internal_underscores, 93024 camelCases, and 80831 TitleCases;
so this commit is merely documenting existing practice.
2010-06-27 02:30:19 +00:00
Jaakko Heinonen
3141712daa Update vfs_busy(9) and vfs_unbusy(9) manual pages to better match the
current behaviour of the functions.

Discussed with:	attilio
2010-06-14 17:31:46 +00:00
Ulrich Spörlein
134d45e8c6 mdoc nitpicking: the title argument shall be uppercase 2010-06-11 06:03:47 +00:00
Ulrich Spörlein
e10c1be450 mdoc cleanup
Garbage collect unused sections, macros and arguments. Fix prologue and
remove empty lines.

Found by: mdocml
2010-06-02 10:20:23 +00:00
Ulrich Spörlein
25c8b07fc2 mdoc: Garbage collect unused/unneeded macros 2010-05-27 13:56:27 +00:00
Ulrich Spörlein
668d8dd3c8 These features will first appear in 8.1, soon to be released
MFC after:	3 days
2010-05-24 11:14:40 +00:00
Ulrich Spörlein
62486687ed mdoc: consistently spell our email addresses <foo@FreeBSD.org>
Reviewed by:	ru
2010-05-19 08:57:53 +00:00
Ulrich Spörlein
0b31f1f731 mdoc: move remaining sections into consistent order
This pertains mostly to FILES, HISTORY, EXIT STATUS and AUTHORS sections.

Found by:	mdocml lint run
Reviewed by:	ru
2010-05-13 12:08:11 +00:00
Ulrich Spörlein
0afc94c17a mdoc: move CAVEATS, BUGS and SECURITY CONSIDERATIONS sections to the
bottom of the manpages and order them consistently.

GNU groff doesn't care about the ordering, and doesn't even mention
CAVEATS and SECURITY CONSIDERATIONS as common sections and where to put
them.

Found by:	mdocml lint run
Reviewed by:	ru
2010-05-13 12:07:55 +00:00
Konstantin Belousov
2b848cb1f5 Document MAKEDEV_NOWAIT flag for make_dev_credf(9).
Reviewed by:	jh
MFC after:	2 weeks
2010-05-06 19:23:49 +00:00
Rui Paulo
54862540ba Couple of fixes from DragonFly (typos).
Obtained from:	DragonFlyBSD
2010-04-28 13:29:48 +00:00
Lawrence Stewart
7d11e744c1 - Rework the underlying ALQ storage to be a circular buffer, which amongst other
things allows variable length messages to be easily supported.

- Extend KPI with alq_writen() and alq_getn() to support variable length
  messages, which is enabled at ALQ creation time depending on the
  arguments passed to alq_open(). Also add variants of alq_open() and
  alq_post() that accept a flags argument. The KPI is still fully
  backwards compatible and shouldn't require any change in ALQ consumers
  unless they wish to utilise the new features.

- Introduce the ALQ_NOACTIVATE and ALQ_ORDERED flags to allow ALQ consumers
  to have more control over IO scheduling and resource acquisition
  respectively.

- Strengthen invariants checking.

- Document ALQ changes in ALQ(9) man page.

Sponsored by:	FreeBSD Foundation
Reviewed by:	gnn, jeff, rpaulo, rwatson
MFC after:	1 month
2010-04-26 13:48:22 +00:00
Ulrich Spörlein
aa12cea2cc mdoc: order prologue macros consistently by Dd/Dt/Os
Although groff_mdoc(7) gives another impression, this is the ordering
most widely used and also required by mdocml/mandoc.

Reviewed by:	ru
Approved by:	philip, ed (mentors)
2010-04-14 19:08:06 +00:00
Ed Maste
a69a51149e Remove extraneous '>'. 2010-04-07 19:13:31 +00:00
Edward Tomasz Napierala
11b168b80e Fix references. 2010-03-29 17:39:38 +00:00
Konstantin Belousov
40c05da5e0 Correct the type for uio_resid.
MFC after:	3 days
2010-03-21 16:14:19 +00:00
Andriy Gapon
212909cc32 vfs_mount.9: drop cross-reference to a removed manual
MFC after:	3 days
2010-03-19 14:35:38 +00:00
Ulrich Spörlein
63d46d1d5e Fix several typos in macros or macro misusage.
Found by:	make manlint
Reviewed by:	ru
Approved by:	philip (mentor)
2010-03-12 10:01:06 +00:00
Gleb Smirnoff
20e26ae67a Remove C99 initializer, since dominant style is to use non-C99 initializers.
Requested by:	jhb
2010-03-03 18:49:15 +00:00
Joel Dahl
c0de7d2f15 The NetBSD Foundation has granted permission to remove clause 3 and 4 from
their software.

Obtained from:	NetBSD
2010-03-02 21:50:36 +00:00
Gleb Smirnoff
0884cae17b - Add missing includes to make example "compilable".
- Use C99 initializer just in case if driver_t may change in future.
- Use NULL for pointer arguments instead of 0.
2010-03-02 21:10:44 +00:00
Konstantin Belousov
c46221d700 Update man page for vm_page_alloc(9).
Based on the submission by:	Giovanni Trematerra <giovanni.trematerra gmail com>
MFC after:	3 days
2010-02-27 17:11:15 +00:00
Xin LI
0a431e0795 Add several necessary .El's.
MFC after:	2 weeks
2010-02-27 01:17:44 +00:00
John Baldwin
1d800a676e Fix spelling of EACCES.
PR:		docs/144112
Submitted by:	Alexander Best
MFC after:	3 days
2010-02-24 13:13:29 +00:00
Bernhard Schmidt
69699faa81 Fix some typos.
Approved by:	rpaulo (mentor)
MFC after:	1 week
2010-02-22 17:03:26 +00:00
Robert Watson
497c391c9b Cross-reference netstat(1) from netisr(9) since you can now use it to
monitor netisr status.

MFC after:	1 week
Sponsored by:	Juniper Networks
2010-02-22 16:02:17 +00:00
Edward Tomasz Napierala
88238a0805 Some rewording and language fixes.
PR:		docs/136918, docs/134074
Submitted by:	Ben Kaduk <kaduk at mit dot edu>, Haven Hash <havenster at gmail dot com>
2010-02-15 17:41:59 +00:00
Edward Tomasz Napierala
ddcd2bc9ec Remove list of locking primitives, which is kind of redundant, move
information about witness(9) to the section about interactions, and
expand 'contexts' table.
2010-02-13 12:03:03 +00:00
Edward Tomasz Napierala
a26a657cd2 Fix VBAD description. 2010-02-13 11:54:01 +00:00
Edward Tomasz Napierala
b132183383 Start sentences with a new line.
Submitted by:	brueffer
2010-02-10 19:03:48 +00:00
Edward Tomasz Napierala
0b0b48c06a Improve description for Giant and mention blocking inside interrupt threads. 2010-02-10 17:02:06 +00:00
Edward Tomasz Napierala
13d034bf5d Remove VOP_VPTOFH(9) from references in VFS(9), as it's a VOP,
not VFS operation.
2010-02-09 21:01:18 +00:00
Edward Tomasz Napierala
8e20a412b1 Add references to VOP_* man pages to vnode(9). 2010-02-09 20:58:39 +00:00
Gavin Atkinson
7ee901ef6b Correct arguments to free_unr(), "item" was missing.
MFC after:	1 week
2010-02-07 20:36:23 +00:00
Edward Tomasz Napierala
6e53c1bb55 Add missing coma. 2010-02-06 14:10:45 +00:00
Edward Tomasz Napierala
4ff467dc65 Cosmetic fixes. 2010-01-28 21:14:12 +00:00
Edward Tomasz Napierala
561205dff6 Add description of bounded sleep vs unbounded sleep (aka blocking). Move
rules into their own section.
2010-01-28 19:57:24 +00:00
Edward Tomasz Napierala
815e47727e Improve descriptions, remove turnstiles (since, from what I understand,
they are only used to implement other synchronization primitives), tweak
formatting.
2010-01-28 17:09:47 +00:00
Attilio Rao
a50e80dcdd - Fix the kthread_{suspend, resume, suspend_check}() locking.
In the current code, the locking is completely broken and may lead
  easilly to deadlocks. Fix it by using the proc_mtx, linked to the
  suspending thread, as lock for the operation.  Keep using the
  thread_lock for setting and reading the flag even if it is not entirely
  necessary (atomic ops may do it as well, but this way the code is more
  readable).
- Fix a deadlock within kthread_suspend().
  The suspender should not sleep on a different channel wrt the suspended
  thread, or, otherwise, the awaker should wakeup both. Uniform the
  interface to what the kproc_* counterparts do (sleeping on the same
  channel).
- Change the kthread_suspend_check() prototype.
  kthread_suspend_check() always assumes curthread and must only refer to
  it, so skip the thread pointer as it may be easilly mistaken.
  If curthread is not a kthread, the system will panic.

In collabouration with:	jhb
Tested by:		Giovanni Trematerra
			<giovanni dot trematerra at gmail dot com>
MFC:			2 weeks
2010-01-24 15:07:00 +00:00
John Baldwin
6849f8d790 Sort NDHASGIANT.9 link properly. 2010-01-19 20:36:15 +00:00
Gavin Atkinson
f3066f2be7 Xref sysctl(3)
Approved by:	ed (mentor)
2010-01-16 14:31:01 +00:00
Ruslan Ermilov
aa4a335bae Use the newly brought %U macro. 2010-01-15 16:01:22 +00:00
John Baldwin
54721dc9f4 - Note that if_xname, if_dname, and if_dunit are usually initialized via
if_initname().
- Document if_drv_flags and replace references to IFF_(RUNNING|OACTIVE)
  with references to IFF_DRV_(RUNNING|OACTIVE).
- Complete truncated sentence in the description of if_transmit by copying
  from the description in if_qflush.
- Add missing line breaks for translators.

Reviewed by:	brooks (1)
MFC after:	3 days
2010-01-14 14:43:16 +00:00
John Baldwin
94fa222a96 - Update required headers for namei() to add <sys/fcntl.h> and remove
<sys/proc.h>.
- Add RETURN VALUES and ERROR sections for namei()'s error return values.
- Add a missing link to NDHASGIANT.9.

PR:		docs/142815, docs/142816
Submitted by:	Lachlan Kang (1, 2)
MFC after:	3 days
2010-01-14 14:36:39 +00:00
Attilio Rao
f7829d0d5c Introduce the new kernel thread called "deadlock resolver".
While the name is pretentious, a good explanation of its targets is
reported in this 17 months old presentation e-mail:
http://lists.freebsd.org/pipermail/freebsd-arch/2008-August/008452.html

In order to implement it, the sq_type in sleepqueues is mandatory and not
only compiled along with INVARIANTS option. Additively, a new sleepqueue
function, sleepq_type() is added, returning the type of the sleepqueue
linked to a wchan.
Three new sysctls are added in order to configure the thread:
debug.deadlkres.slptime_threshold
debug.deadlkres.blktime_threshold
debug.deadlkres.sleepfreq

rappresenting the thresholds for sleep and block time that will lead to
a deadlock matching (when exceeded), while the sleepfreq rappresents the
number of seconds between 2 consecutive thread runnings.
In order to enable the deadlock resolver thread recompile your kernel
with the option DEADLKRES.

Reviewed by:	jeff
Tested by:	pho, Giovanni Trematerra
Sponsored by:	Nokia Incorporated, Sandvine Incorporated
MFC after:	2 weeks
2010-01-09 01:46:38 +00:00
Christian Brueffer
37d3a10d84 Catch up with the VFS_VPTOFH(9) -> VOP_VPTOFH(9) repocopy that happened
almost three years ago in r166794.

PR:		140989
Submitted by:	Lachlan Kang
MFC after:	1 week
2010-01-04 22:22:00 +00:00
Konstantin Belousov
ed12757873 PG_NOSYNC is called VPO_NOSYNC for long time.
MFC after:	3 days
2010-01-04 14:58:41 +00:00
Ruslan Ermilov
7f3c22be14 Removed duplicate usbd_xfer_state(9) link. 2009-12-22 16:05:28 +00:00
Ruslan Ermilov
b4dfd2d9cd Sort mlinks. 2009-12-22 16:02:08 +00:00
Julian Elischer
84bc0aa3b0 Make man page reflect the output columns
MFC after:	1 week
2009-12-16 19:37:38 +00:00
Konstantin Belousov
ec897c886d Document PBDRY and SLEEPQ_STOP_ON_BDRY.
Requested and reviewed by:	attilio
MFC after:	3 days
2009-12-12 22:08:37 +00:00
Attilio Rao
2028867def In current code, threads performing an interruptible sleep (on both
sxlock, via the sx_{s, x}lock_sig() interface, or plain lockmgr), will
leave the waiters flag on forcing the owner to do a wakeup even when if
the waiter queue is empty.
That operation may lead to a deadlock in the case of doing a fake wakeup
on the "preferred" (based on the wakeup algorithm) queue while the other
queue has real waiters on it, because nobody is going to wakeup the 2nd
queue waiters and they will sleep indefinitively.

A similar bug, is present, for lockmgr in the case the waiters are
sleeping with LK_SLEEPFAIL on.  In this case, even if the waiters queue
is not empty, the waiters won't progress after being awake but they will
just fail, still not taking care of the 2nd queue waiters (as instead the
lock owned doing the wakeup would expect).

In order to fix this bug in a cheap way (without adding too much locking
and complicating too much the semantic) add a sleepqueue interface which
does report the actual number of waiters on a specified queue of a
waitchannel (sleepq_sleepcnt()) and use it in order to determine if the
exclusive waiters (or shared waiters) are actually present on the lockmgr
(or sx) before to give them precedence in the wakeup algorithm.
This fix alone, however doesn't solve the LK_SLEEPFAIL bug. In order to
cope with it, add the tracking of how many exclusive LK_SLEEPFAIL waiters
a lockmgr has and if all the waiters on the exclusive waiters queue are
LK_SLEEPFAIL just wake both queues.

The sleepq_sleepcnt() introduction and ABI breakage require
__FreeBSD_version bumping.

Reported by:	avg, kib, pho
Reviewed by:	kib
Tested by:	pho
2009-12-12 21:31:07 +00:00
Edward Tomasz Napierala
4cbe4bf979 Add missing parameter description. 2009-12-02 18:11:14 +00:00
Bjoern A. Zeeb
aaae58c491 Unbreak user space after if_timer/if_watchdog removal in r199975.
Tested by:	glebius
2009-12-01 14:56:00 +00:00
Ruslan Ermilov
9589412053 Back in 2003, get_cyclecount() was changed to use binuptime() instead
of nanotime().  Reflect this change in a manpage.

Reviewed by:	phk, markm
2009-10-29 09:45:05 +00:00
Ed Maste
e04cb6afe4 Add link for callout_schedule(9). 2009-10-27 14:37:25 +00:00
Christian Brueffer
7024354df3 Sort SEE ALSO. 2009-10-16 12:32:07 +00:00
John Baldwin
37b8ef16cd Add a facility for associating optional descriptions with active interrupt
handlers.  This is primarily intended as a way to allow devices that use
multiple interrupts (e.g. MSI) to meaningfully distinguish the various
interrupt handlers.
- Add a new BUS_DESCRIBE_INTR() method to the bus interface to associate
  a description with an active interrupt handler setup by BUS_SETUP_INTR.
  It has a default method (bus_generic_describe_intr()) which simply passes
  the request up to the parent device.
- Add a bus_describe_intr() wrapper around BUS_DESCRIBE_INTR() that supports
  printf(9) style formatting using var args.
- Reserve MAXCOMLEN bytes in the intr_handler structure to hold the name of
  an interrupt handler and copy the name passed to intr_event_add_handler()
  into that buffer instead of just saving the pointer to the name.
- Add a new intr_event_describe_handler() which appends a description string
  to an interrupt handler's name.
- Implement support for interrupt descriptions on amd64 and i386 by having
  the nexus(4) driver supply a custom bus_describe_intr method that invokes
  a new intr_describe() MD routine which in turn looks up the associated
  interrupt event and invokes intr_event_describe_handler().

Requested by:	many
Reviewed by:	scottl
MFC after:	2 weeks
2009-10-15 14:54:35 +00:00
John Baldwin
38d3501a8e Oops, add a return values section to note that these routines return an error
on failure or zero on success.
2009-10-14 16:00:20 +00:00
John Baldwin
2783151570 Add a manual page for BUS_BIND_INTR() and bus_bind_intr().
MFC after:	1 week
2009-10-14 15:58:59 +00:00
Edward Tomasz Napierala
55b95b33ed Make fetch(9) and store(9) manual pages closer to reality. 2009-10-05 15:16:28 +00:00
Edward Tomasz Napierala
a9315dded6 Add pieces of infrastructure required for NFSv4 ACL support in UFS.
Reviewed by:	rwatson
2009-09-22 15:15:03 +00:00
Christian Brueffer
aa8775c640 Fix mdoc, typos, contractions.
This includes:
PR:		135520
Submitted by:	Nobuyuki Koganemaru
Patch by:	gavin
MFC after:	3 days
2009-09-18 14:05:56 +00:00
Christian Brueffer
ace02a6d46 Various mdoc, spelling etc fixes.
MFC after:	3 days
2009-09-18 00:33:47 +00:00
Julian Elischer
58cf5c84e0 Add claraifications to the kproc and kthread manpages and link
the kthread_create(9) man page to the kproc(9) page as it had migrated and
people looking for it may need a hand to find its new name.

MFC after:	1 week
2009-08-23 07:48:11 +00:00
John Baldwin
eb5a1e8f38 This patch fixes two bugs in sglist(9) and improves robustness of the API via
better semantics if a request to append an address range to an existing list
fails.
- When cloning an sglist, properly set the length in the new sglist instead of
  leaving the new list empty.
- Properly compute the amount of data added to an sglist via
  _sglist_append_buf().  This allows sglist_consume_uio() to properly update
  uio_resid.
- When a request to append an address range to a scatter/gather list fails,
  restore the sglist to the state it had at the start of the function call
  instead of resetting it to an empty list.

Requested by:	np (3)
Approved by:	re (kib)
2009-08-21 02:59:07 +00:00
John Baldwin
0cef25aeb2 Change the 'resid' parameter to sglist_consume_uio() from an int to a
size_t to match the recent type change of the uio_resid member of struct
uio.

Approved by:	re (kib)
2009-08-20 19:23:58 +00:00
Pawel Jakub Dawidek
e477e4fe8e Remove unused taskqueue_find() function.
Reviewed by:	dfr
Approved by:	re (kib)
2009-08-18 13:55:48 +00:00
Pawel Jakub Dawidek
9c1a8ce494 Correct typo in the previous commit.
Noticed by:	pluknet <pluknet@gmail.com>
Approved by:	re (kib, implicit)
2009-08-17 10:20:22 +00:00
Pawel Jakub Dawidek
159ef108e1 Remove OpenSolaris taskq port (it performs very poorly in our kernel) and
replace it with wrappers around our taskqueue(9).
To make it possible implement taskqueue_member() function which returns 1
if the given thread was created by the given taskqueue.

Approved by:	re (kib)
2009-08-17 09:01:20 +00:00
Sam Leffler
692eebe092 First (early) draft of net80211 documentation. Note this is
focused on driver writers (as opposed to folks adding to net80211).

Reviewed by:	wkoszek
Approved by:	re (rwatson)
2009-08-12 21:03:16 +00:00
Bjoern A. Zeeb
d0ea47437a Update epair(4) to the new netisr implementation and polish
things a bit:
- use dpcpu data to track the ifps with packets queued up,
- per-cpu locking and driver flags
- along with .nh_drainedcpu and NETISR_POLICY_CPU.
- Put the mbufs in flight reference count, preventing interfaces
  from going away, under INVARIANTS as this is a general problem
  of the stack and should be solved in if.c/netisr but still good
  to verify the internal queuing logic.
- Permit changing the MTU to virtually everythinkg like we do for loopback.

Hook epair(4) up to the build.

Approved by:	re (kib)
2009-07-26 12:20:07 +00:00
Colin Percival
383334b383 Fix typo: kproc_resume,.9 -> kproc_resume.9.
Approved by:	re (kib)
2009-07-11 17:36:59 +00:00
Andrew Thompson
b35f050eb2 Move programming info from usb(4) to usbdi(9) and update for the usb stack
changeover. Needs much more content still.
2009-06-24 17:01:17 +00:00
Robert Watson
36fecbf302 Add stack_print_short() and stack_print_short_ddb() interfaces to
stack(9), which generate a more compact rendition of a stack trace
via the kernel's printf.

MFC after:	1 week
2009-06-24 12:06:15 +00:00
Konstantin Belousov
c9253e931d Usermode portion of the support for swap allocation accounting:
- update for getrlimit(2) manpage;
- support for setting RLIMIT_SWAP in login class;
- addition to the limits(1) and sh and csh limit-setting builtins;
- tuning(7) documentation on the sysctls controlling overcommit.

In collaboration with:	pho
Reviewed by:	alc
Approved by:	re (kensmith)
2009-06-23 20:57:27 +00:00
Brooks Davis
e8477da212 Document crcopysafe() and crsetgroups().
Reminded by:	julian
2009-06-19 19:16:35 +00:00
Attilio Rao
651175c9db Introduce support for adaptive spinning in lockmgr.
Actually, as it did receive few tuning, the support is disabled by
default, but it can opt-in with the option ADAPTIVE_LOCKMGRS.
Due to the nature of lockmgrs, adaptive spinning needs to be
selectively enabled for any interested lockmgr.
The support is bi-directional, or, in other ways, it will work in both
cases if the lock is held in read or write way.  In particular, the
read path is passible of further tunning using the sysctls
debug.lockmgr.retries and debug.lockmgr.loops .  Ideally, such sysctls
should be axed or compiled out before release.

Addictionally note that adaptive spinning doesn't cope well with
LK_SLEEPFAIL.  The reason is that many (and probabilly all) consumers
of LK_SLEEPFAIL are mainly interested in knowing if the interlock was
dropped or not in order to reacquire it and re-test initial conditions.
This directly interacts with adaptive spinning because lockmgr needs
to drop the interlock while spinning in order to avoid a deadlock
(further details in the comments inside the patch).

Final note: finding someone willing to help on tuning this with
relevant workloads would be either very important and appreciated.

Tested by:	jeff, pho
Requested by:	many
2009-06-17 01:55:42 +00:00
Bjoern A. Zeeb
ed655c8c07 Add an optional callback function that will be invoked when a per-CPU
queue was drained.  It will never fire for a directly dispatched packet.

You will most likely never want to use this for any ordinary netisr usage
and you will never blame netisr in case you try to use it and it does
not work as expected.

Reviewed by:	rwatson
2009-06-14 17:15:18 +00:00
Bjoern A. Zeeb
44549f1334 Remove a line break leaving a function return type attached to the old
function declaration bottom rather than the new function declaration
start.
2009-06-14 12:11:15 +00:00
Warner Losh
7adb51acc7 These are no longer public, so remove the man page. 2009-06-09 23:38:19 +00:00
John Baldwin
4ef60d2686 Add support for multiple passes of the device tree during the boot-time
probe.  The current device order is unchanged.  This commit just adds the
infrastructure and ABI changes so that it is easier to merge later changes
into 8.x.
- Driver attachments now have an associated pass level.  Attachments are
  not allowed to probe or attach to drivers until the system-wide pass level
  is >= the attachment's pass level.  By default driver attachments use the
  "last" pass level (BUS_PASS_DEFAULT).  Driver's that wish to probe during
  an earlier pass use EARLY_DRIVER_MODULE() instead of DRIVER_MODULE() which
  accepts the pass level as an additional parameter.
- A new method BUS_NEW_PASS has been added to the bus interface.  This
  method is invoked when the system-wide pass level is changed to kick off
  a rescan of the device tree so that drivers that have just been made
  "eligible" can probe and attach.
- The bus_generic_new_pass() function provides a default implementation of
  BUS_NEW_PASS().  It first allows drivers that were just made eligible for
  this pass to identify new child devices.  Then it propogates the rescan to
  child devices that already have an attached driver by invoking their
  BUS_NEW_PASS() method.  It also reprobes devices without a driver.
- BUS_PROBE_NOMATCH() is only invoked for devices that do not have
  an attached driver after being scanned during the final pass.
- The bus_set_pass() function is used during boot to raise the pass level.
  Currently it is only called once during root_bus_configure() to raise
  the pass level to BUS_PASS_DEFAULT.  This has the effect of probing all
  devices in a single pass identical to previous behavior.

Reviewed by:	imp
Approved by:	re (kib)
2009-06-09 14:26:23 +00:00
Robert Watson
6b8eb655fd Try again to add beginnings of netisr(8) man page: this time add
netisr.9.
2009-06-07 21:32:01 +00:00
Robert Watson
3c9c33bba1 Add beginnings of a netisr(9) man page. 2009-06-07 21:31:06 +00:00
John Baldwin
b36cfff75d Add a simple API to manage scatter/gather lists of phyiscal addresses.
Each list describes a logical memory object that is backed by one or more
physical address ranges.  To minimize locking, the sglist objects
themselves are immutable once they are shared.

These objects may be used in the future to facilitate I/O requests using
physically-addressed buffers.  For the immediate future I plan to use them
to implement a new type of VM object and pager.

Reviewed by:	jeff, scottl
MFC after:	1 month
2009-06-01 20:35:39 +00:00
Edward Tomasz Napierala
f0fa0e7faa Use the "flag" word consistently.
Submitted by:	Ben Kaduk <minimarmot at gmail.com>
2009-06-01 07:48:27 +00:00
Edward Tomasz Napierala
c97fcdba57 Add VOP_ACCESSX, which can be used to query for newly added V*
permissions, such as VWRITE_ACL.  For a filsystems that don't
implement it, there is a default implementation, which works
as a wrapper around VOP_ACCESS.

Reviewed by:	rwatson@
2009-05-30 13:59:05 +00:00
Robert Watson
1a109c1cb0 Make the rmlock(9) interface a bit more like the rwlock(9) interface:
- Add rm_init_flags() and accept extended options only for that variation.
- Add a flags space specifically for rm_init_flags(), rather than borrowing
  the lock_init() flag space.
- Define flag RM_RECURSE to use instead of LO_RECURSABLE.
- Define flag RM_NOWITNESS to allow an rmlock to be exempt from WITNESS
  checking; this wasn't possible previously as rm_init() always passed
  LO_WITNESS when initializing an rmlock's struct lock.
- Add RM_SYSINIT_FLAGS().
- Rename embedded mutex in rmlocks to make it more obvious what it is.
- Update consumers.
- Update man page.
2009-05-29 10:52:37 +00:00
Attilio Rao
1ae1c2a3bd Reverse the logic for ADAPTIVE_SX option and enable it by default.
Introduce for this operation the reverse NO_ADAPTIVE_SX option.
The flag SX_ADAPTIVESPIN to be passed to sx_init_flags(9) gets suppressed
and the new flag, offering the reversed logic, SX_NOADAPTIVE is added.

Additively implements adaptive spininning for sx held in shared mode.
The spinning limit can be handled through sysctls in order to be tuned
while the code doesn't reach the release, after which time they should
be dropped probabilly.

This change has made been necessary by recent benchmarks where it does
improve concurrency of workloads in presence of high contention
(ie. ZFS).

KPI breakage is documented by __FreeBSD_version bumping, manpage and
UPDATING updates.

Requested by:	jeff, kmacy
Reviewed by:	jeff
Tested by:	pho
2009-05-29 01:49:27 +00:00
Zachary Loafman
eae608ef4c Fix style/grammar issues in fail(9) man page.
Suggested by:       Ben Kaduk
Approved by:        dfr (mentor)
2009-05-28 15:02:52 +00:00
Zachary Loafman
cfeb7489c2 fail(9) support:
Add support for kernel fault injection using KFAIL_POINT_* macros and
fail_point_* infrastructure. Add example fail point in vfs_bio.c to
simulate VM buf pressure.

Approved by:        dfr (mentor)
2009-05-27 16:36:54 +00:00
Edward Tomasz Napierala
4a48670553 There are things too complex to be fixed in one commit.
Fix a typo in acl(9) manual page.

Submitted by:	avg
2009-05-24 20:34:29 +00:00
Tom McLaughlin
c327ec0021 Update man pages after VFS_* changes in r191990.
Approved by:	brueffer, attilio
2009-05-24 18:34:54 +00:00
Edward Tomasz Napierala
7070b4fc87 Fix typo in the manual page. 2009-05-24 17:08:00 +00:00
Edward Tomasz Napierala
3f8cd45f79 Add new constants to the acl(9) manual page. 2009-05-24 09:42:53 +00:00
John Baldwin
e6b089446b Attempt to clarify some confusing wording regarding atomic_load() and
atomic_store().
2009-05-21 13:39:46 +00:00
Christian Brueffer
72fba9d714 Document sbuf_new_auto().
While here, add a missing `-' in phk's name.

MFC after:	3 days
2009-05-17 21:28:37 +00:00
Marius Strobl
08390d3b63 Correct r190283 (partially reverting it) as on sparc64 BUS_DMA_NOCACHE
actually is only valid for bus_dmamap_load().

MFC after:	3 days
2009-05-12 20:56:34 +00:00
Robert Watson
78fc60e401 Garbage collect man page reference to IFF_NEEDSGIANT. 2009-04-18 20:09:43 +00:00
Edward Tomasz Napierala
d0d7c39c72 Remove 'IMPLEMENTATION NOTES' section from acl(9); it was just a copy/paste
from <sys/acl.h> and it would get out-of-date pretty soon.
2009-04-11 10:37:04 +00:00
Robert Watson
cd5213b94b Remove VOP_LEASE(9) man page, as we no longer have a VOP_LEASE() in the
kernel.
2009-04-10 10:59:48 +00:00
Tom Rhodes
cd5e62f992 Catch up with recent locking changes.
PR:		132546
Submitted by:	pluknet <pluknet@gmail.com>
Reviewed by:	alc
2009-04-03 23:52:47 +00:00
Edward Tomasz Napierala
6283502e20 Remove pseudocode from VOP_* manual pages. It was out of date anyway.
Reviewed by:	scottl
Approved by:	rwatson (mentor)
2009-03-30 20:56:37 +00:00
John Baldwin
497435aafd Add a simple manage for the refcount(9) API.
Requested by:	rwatson
2009-03-30 18:01:12 +00:00
Robert Noland
ba0b16188e Correct the documentation to reflect the fact that BUS_DMA_NOCACHE is a
flag to bus_dmamem_alloc() rather than bus_dmamap_load();

Discussed with:	kib
MFC after:	3 days
2009-03-22 21:00:58 +00:00
Joe Marcus Clarke
74999b4cf2 Document the new default implementation of VOP_VPTOCNP(9).
Approved by:	kib
2009-03-08 19:07:44 +00:00
Jamie Gritton
f86bce5ed0 Extend the "vfsopt" mount options for more general use. Make struct
vfsopt and the vfs_buildopts function public, and add some new fields
to struct vfsopt (pos and seen), and new functions vfs_getopt_pos and
vfs_opterror.

Further extend the interface to allow reading options from the kernel
in addition to sending them to the kernel, with vfs_setopt and related
functions.

While this allows the "name=value" option interface to be used for more
than just FS mounts (planned use is for jails), it retains the current
"vfsopt" name and <sys/mount.h> requirement.

Approved by:	bz (mentor)
2009-03-02 23:26:30 +00:00
Edward Tomasz Napierala
cbc1fff1f6 Mention disk_gone() in disk(9).
Approved by:	rwatson (mentor)
2009-02-22 13:38:16 +00:00
Attilio Rao
05fa71ba43 Remove the assertive KA_HELD and KA_UNHELD as long as they are dangerous,
and not really helpful.
2009-02-05 15:09:04 +00:00
Tom Rhodes
49b50876b6 Add ENOMEM to the return values.
Remove invalid return values.
Remove reference to non-existent manual pages.
Remove reference to rfork (it does not discuss RFSTOPPED).
Add sys/unistd.h to the list of includes (required for RFSTOPPED).

PR:		126227
Submitted by:	Mateusz Guzik <mjguzik@gmail.com> (based on, original version)
Reviewed by:	jhb, Christoph Mallon <christoph.mallon@gmx.de>
2009-01-27 00:22:16 +00:00
Christian Brueffer
b9a2c48954 DEBUG_REDZONE needs DDB which needs KDB.
PR:		130324
Submitted by:	Jaakko Heinonen <jh@saunalahti.fi>
MFC after:	3 days
2009-01-09 14:41:36 +00:00
Christian Brueffer
c62a048b6c Language cleanup. 2009-01-08 21:29:40 +00:00