summaryrefslogtreecommitdiffstats
path: root/share/man/man9
Commit message (Collapse)AuthorAgeFilesLines
* Add description of bounded sleep vs unbounded sleep (aka blocking). Movetrasz2010-01-281-80/+61
| | | | rules into their own section.
* Improve descriptions, remove turnstiles (since, from what I understand,trasz2010-01-281-61/+92
| | | | | they are only used to implement other synchronization primitives), tweak formatting.
* - Fix the kthread_{suspend, resume, suspend_check}() locking.attilio2010-01-241-7/+4
| | | | | | | | | | | | | | | | | | | | | | | 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
* Sort NDHASGIANT.9 link properly.jhb2010-01-191-2/+2
|
* Xref sysctl(3)gavin2010-01-161-1/+2
| | | | Approved by: ed (mentor)
* Use the newly brought %U macro.ru2010-01-152-2/+2
|
* - Note that if_xname, if_dname, and if_dunit are usually initialized viajhb2010-01-141-16/+40
| | | | | | | | | | | | 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
* - Update required headers for namei() to add <sys/fcntl.h> and removejhb2010-01-142-2/+31
| | | | | | | | | | <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
* Introduce the new kernel thread called "deadlock resolver".attilio2010-01-091-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Catch up with the VFS_VPTOFH(9) -> VOP_VPTOFH(9) repocopy that happenedbrueffer2010-01-043-6/+6
| | | | | | | | almost three years ago in r166794. PR: 140989 Submitted by: Lachlan Kang MFC after: 1 week
* PG_NOSYNC is called VPO_NOSYNC for long time.kib2010-01-041-1/+1
| | | | MFC after: 3 days
* Removed duplicate usbd_xfer_state(9) link.ru2009-12-222-2/+0
|
* Sort mlinks.ru2009-12-221-66/+66
|
* Make man page reflect the output columnsjulian2009-12-161-0/+2
| | | | MFC after: 1 week
* Document PBDRY and SLEEPQ_STOP_ON_BDRY.kib2009-12-122-3/+22
| | | | | Requested and reviewed by: attilio MFC after: 3 days
* In current code, threads performing an interruptible sleep (on bothattilio2009-12-121-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Add missing parameter description.trasz2009-12-021-1/+3
|
* Unbreak user space after if_timer/if_watchdog removal in r199975.bz2009-12-011-14/+2
| | | | Tested by: glebius
* Back in 2003, get_cyclecount() was changed to use binuptime() insteadru2009-10-291-10/+4
| | | | | | of nanotime(). Reflect this change in a manpage. Reviewed by: phk, markm
* Add link for callout_schedule(9).emaste2009-10-271-0/+1
|
* Sort SEE ALSO.brueffer2009-10-161-3/+3
|
* Add a facility for associating optional descriptions with active interruptjhb2009-10-152-0/+106
| | | | | | | | | | | | | | | | | | | | | | | | | 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
* Oops, add a return values section to note that these routines return an errorjhb2009-10-141-0/+2
| | | | on failure or zero on success.
* Add a manual page for BUS_BIND_INTR() and bus_bind_intr().jhb2009-10-142-0/+98
| | | | MFC after: 1 week
* Make fetch(9) and store(9) manual pages closer to reality.trasz2009-10-053-27/+52
|
* Add pieces of infrastructure required for NFSv4 ACL support in UFS.trasz2009-09-225-3/+136
| | | | Reviewed by: rwatson
* Fix mdoc, typos, contractions.brueffer2009-09-181-17/+13
| | | | | | | | This includes: PR: 135520 Submitted by: Nobuyuki Koganemaru Patch by: gavin MFC after: 3 days
* Various mdoc, spelling etc fixes.brueffer2009-09-1814-39/+38
| | | | MFC after: 3 days
* Add claraifications to the kproc and kthread manpages and linkjulian2009-08-233-0/+44
| | | | | | | 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
* This patch fixes two bugs in sglist(9) and improves robustness of the API viajhb2009-08-211-0/+4
| | | | | | | | | | | | | | | | 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)
* Change the 'resid' parameter to sglist_consume_uio() from an int to ajhb2009-08-201-1/+1
| | | | | | | size_t to match the recent type change of the uio_resid member of struct uio. Approved by: re (kib)
* Remove unused taskqueue_find() function.pjd2009-08-181-10/+2
| | | | | Reviewed by: dfr Approved by: re (kib)
* Correct typo in the previous commit.pjd2009-08-171-1/+1
| | | | | Noticed by: pluknet <pluknet@gmail.com> Approved by: re (kib, implicit)
* Remove OpenSolaris taskq port (it performs very poorly in our kernel) andpjd2009-08-171-1/+15
| | | | | | | | 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)
* First (early) draft of net80211 documentation. Note this issam2009-08-1216-986/+2727
| | | | | | | focused on driver writers (as opposed to folks adding to net80211). Reviewed by: wkoszek Approved by: re (rwatson)
* Update epair(4) to the new netisr implementation and polishbz2009-07-261-1/+3
| | | | | | | | | | | | | | | | 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)
* Fix typo: kproc_resume,.9 -> kproc_resume.9.cperciva2009-07-111-1/+1
| | | | Approved by: re (kib)
* Move programming info from usb(4) to usbdi(9) and update for the usb stackthompsa2009-06-242-1237/+625
| | | | changeover. Needs much more content still.
* Add stack_print_short() and stack_print_short_ddb() interfaces torwatson2009-06-241-3/+11
| | | | | | | stack(9), which generate a more compact rendition of a stack trace via the kernel's printf. MFC after: 1 week
* Usermode portion of the support for swap allocation accounting:kib2009-06-231-0/+4
| | | | | | | | | | | - 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)
* Document crcopysafe() and crsetgroups().brooks2009-06-191-5/+37
| | | | Reminded by: julian
* Introduce support for adaptive spinning in lockmgr.attilio2009-06-171-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Add an optional callback function that will be invoked when a per-CPUbz2009-06-141-1/+8
| | | | | | | | | | 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
* Remove a line break leaving a function return type attached to the oldbz2009-06-141-2/+1
| | | | | function declaration bottom rather than the new function declaration start.
* These are no longer public, so remove the man page.imp2009-06-092-61/+0
|
* Add support for multiple passes of the device tree during the boot-timejhb2009-06-094-0/+170
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)
* Try again to add beginnings of netisr(8) man page: this time addrwatson2009-06-071-0/+210
| | | | netisr.9.
* Add beginnings of a netisr(9) man page.rwatson2009-06-071-0/+1
|
* Add a simple API to manage scatter/gather lists of phyiscal addresses.jhb2009-06-012-0/+522
| | | | | | | | | | | | | 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
* Use the "flag" word consistently.trasz2009-06-011-2/+2
| | | | Submitted by: Ben Kaduk <minimarmot at gmail.com>
OpenPOWER on IntegriCloud