summaryrefslogtreecommitdiffstats
path: root/sys
Commit message (Collapse)AuthorAgeFilesLines
* o Add vm_map_unwire() for unwiring contiguous regions of either kernelalc2002-06-072-1/+167
| | | | | | | | | | | | | | | or user vm_maps. In accordance with the standards for munlock(2), and in contrast to vm_map_user_pageable(), this implementation does not allow holes in the specified region. This implementation uses the "in transition" flag described below. o Introduce a new flag, "in transition," to the vm_map_entry. Eventually, vm_map_delete() and vm_map_simplify_entry() will respect this flag by deallocating in-transition vm_map_entrys, allowing the vm_map lock to be safely released in vm_map_unwire() and (the forthcoming) vm_map_wire(). o Modify vm_map_simplify_entry() to respect the in-transition flag. In collaboration with: tegge
* Comment out options SMP for now until I figure out what's going on.jake2002-06-071-1/+1
|
* 0 is not an invalid interrupt in the PCI world (just in the ia32imp2002-06-071-2/+4
| | | | | | world), do not treat it as such. This fixes the alpha boot problem. Reviewed by: drew, des
* Renamed the idempotency identifier to match the file name.bde2002-06-071-3/+3
|
* According to Bruce, this file shouldn't have comments to describe whatjhb2002-06-071-1/+1
| | | | | | | | options do. Comments should be in NOTES and having the comments in two places usually means that one place will just bitrot. Thus, remove the comment for KTRACE_REQUEST_POOL from the previous revision. Requested by: bde
* Uncomment some bits that we now need.benno2002-06-072-12/+12
|
* Fix up the DMA buffer allocation call.benno2002-06-071-1/+2
|
* Commit changes that happened in IPFilter versions 3.4.27 - 3.4.28darrenr2002-06-0710-24/+67
|
* - Fixup / remove obsolete comments.jhb2002-06-077-195/+139
| | | | | | | | | | | - ktrace no longer requires Giant so do ktrace syscall events before and after acquiring and releasing Giant, respectively. - For i386, ia32 syscalls on ia64, powerpc, and sparc64, get rid of the goto bad hack and instead use the model on ia64 and alpha were we skip the actual syscall invocation if error != 0. This fixes a bug where if we the copyin() of the arguments failed for a syscall that was not marked MP safe, we would try to release Giant when we had not acquired it.
* We no longer need to acqure Giant in ast() for ktrpsig() in postsig() nowjhb2002-06-071-2/+0
| | | | that ktrace no longer needs Giant.
* - trapsignal() no longer needs to acquire Giant for ktrpsig().jhb2002-06-071-7/+5
| | | | - Catch up to new ktrace API.
* - Proper locking for p_tracep and p_traceflag.jhb2002-06-071-7/+7
| | | | - Catch up to new ktrace API.
* Properly lock accesses to p_tracep and p_traceflag. Also make a fewjhb2002-06-073-3/+27
| | | | ktrace-only things #ifdef KTRACE that were not before.
* - Catch up to new ktrace API.jhb2002-06-072-28/+23
| | | | - ktrace trace points in msleep() and cv_wait() no longer need Giant.
* Catch up to changes in ktrace API.jhb2002-06-074-22/+23
|
* Overhaul the ktrace subsystem a bit. For the most part, the actual vnodejhb2002-06-074-239/+472
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | operations to dump a ktrace event out to an output file are now handled asychronously by a ktrace worker thread. This enables most ktrace events to not need Giant once p_tracep and p_traceflag are suitably protected by the new ktrace_lock. There is a single todo list of pending ktrace requests. The various ktrace tracepoints allocate a ktrace request object and tack it onto the end of the queue. The ktrace kernel thread grabs requests off the head of the queue and processes them using the trace vnode and credentials of the thread triggering the event. Since we cannot assume that the user memory referenced when doing a ktrgenio() will be valid and since we can't access it from the ktrace worker thread without a bit of hassle anyways, ktrgenio() requests are still handled synchronously. However, in order to ensure that the requests from a given thread still maintain relative order to one another, when a synchronous ktrace event (such as a genio event) is triggered, we still put the request object on the todo list to synchronize with the worker thread. The original thread blocks atomically with putting the item on the queue. When the worker thread comes across an asynchronous request, it wakes up the original thread and then blocks to ensure it doesn't manage to write a later event before the original thread has a chance to write out the synchronous event. When the original thread wakes up, it writes out the synchronous using its own context and then finally wakes the worker thread back up. Yuck. The sychronous events aren't pretty but they do work. Since ktrace events can be triggered in fairly low-level areas (msleep() and cv_wait() for example) the ktrace code is designed to use very few locks when posting an event (currently just the ktrace_mtx lock and the vnode interlock to bump the refcoun on the trace vnode). This also means that we can't allocate a ktrace request object when an event is triggered. Instead, ktrace request objects are allocated from a pre-allocated pool and returned to the pool after a request is serviced. The size of this pool defaults to 100 objects, which is about 13k on an i386 kernel. The size of the pool can be adjusted at compile time via the KTRACE_REQUEST_POOL kernel option, at boot time via the kern.ktrace_request_pool loader tunable, or at runtime via the kern.ktrace_request_pool sysctl. If the pool of request objects is exhausted, then a warning message is printed to the console. The message is rate-limited in that it is only printed once until the size of the pool is adjusted via the sysctl. I have tested all kernel traces but have not tested user traces submitted by utrace(2), though they should work fine in theory. Since a ktrace request has several properties (content of event, trace vnode, details of originating process, credentials for I/O, etc.), I chose to drop the first argument to the various ktrfoo() functions. Currently the functions just assume the event is posted from curthread. If there is a great desire to do so, I suppose I could instead put back the first argument but this time make it a thread pointer instead of a vnode pointer. Also, KTRPOINT() now takes a thread as its first argument instead of a process. This is because the check for a recursive ktrace event is now per-thread instead of process-wide. Tested on: i386 Compiles on: sparc64, alpha
* Use a larger data type to prevent counters wrapping so quickly.mdodd2002-06-072-14/+14
| | | | Silence a warning.
* Recognize Adaptec ANA-5910/30/40[A] boards.mdodd2002-06-073-19/+65
| | | | | | Read the MAC address from Adaptec boards correctly. Bits borrowed from sys/pci/if_en_pci.c.
* Add a new SYSINIT subsystem for KTRACE.jhb2002-06-071-0/+1
|
* - Add a per-thread member 'td_inktrace' to be used by ktrace to detectjhb2002-06-071-2/+4
| | | | | | | when a thread is in the ktrace subsystem to avoid ktrace'ing internal ktrace events. - Update the locking notes for p_traceflag and p_tracep taking into account the new ktrace_lock mutex.
* 'device hea' is no longer broken.mdodd2002-06-072-4/+4
| | | | Add 'nowerror' to a few 'hea' files to ignore warnings on volatiles.
* Move some code around.mdodd2002-06-074-16/+18
| | | | Minor whitespace changes.
* Work around a bug in the Linux version of ski, that's specific tomarcel2002-06-061-0/+11
| | | | | | | SSC_GET_RTC. This fixes the panic seen shortly after mounting the root file system. Thanks to: "K.Sumitani" <ksumitani@mui.biglobe.ne.jp>
* Change the all locks list from a STAILQ to a TAILQ. This bloats structjhb2002-06-062-7/+7
| | | | | | | | | | lock_object by another pointer (though all of lock_object should be conditional on LOCK_DEBUG anyways) in exchange for an O(1) TAILQ_REMOVE() in witness_destroy() (called for every mtx_destroy() and sx_destroy()) instead of an O(n) STAILQ_REMOVE. Since WITNESS is so dog slow as it is, the speed-up is worth the space cost. Suggested by: iedowse
* Fix a typo in my recently added comment: s/beleived/believed/semenu2002-06-061-1/+1
| | | | Submitted by: keramida
* s/!SIGNOTEMPY/SIGISEMPTY/davidc2002-06-061-1/+1
| | | | Reviewed by: marcel, jhb, alfred
* Handle "dead" witnesses better in the situation of several short term locksjhb2002-06-061-13/+11
| | | | | | | | | | | | | | being created and destroyed without a single long-term one around to ensure the witness associated with that group of locks stays alive. The pipe mutexes are an example of this group. For a dead witness we no longer clear the witness name. Instead, when looking up the witness for a lock, if a dead witness' (a witness with a refcount of 0) w_name pointer is identical to the witness name of the lock then we revive that witness instead of using a new witness for the lock. This results in far fewer dead witness objects and also better preserves locking orders over the long term resulting in more correct lock order checking. Note that we can't ever derefence w_name of a dead witness since we don't know if the string it is pointing to has been free()'d or kldunload()'d out from under us.
* fix typo in _SYS_SYSPROTO_H_ case: s/mlockall_args/munlockall_argsalfred2002-06-061-1/+1
| | | | Submitted by: Mark Santcroos <marks@ripe.net>
* Gratuitous whitespace cleanup.des2002-06-065-88/+88
|
* Hook up the ahd driver.gibbs2002-06-0612-27/+37
|
* Remove one more multi-line string literal.gibbs2002-06-061-5/+5
|
* Move some sysctls from the debug tree to the vfs tree.des2002-06-061-3/+3
|
* Gratuitous whitespace cleanup.des2002-06-061-28/+27
|
* Use "bwrbg" as description when we sleep for background writing,phk2002-06-061-1/+1
| | | | "biord" was misleading in every possible way.
* Make sc_saver_keyb_only (sceen saver interrupted by keyboard input only)alfred2002-06-061-1/+1
| | | | the default.
* Fixed overflow in the bounds checking in dscheck(). It assumed thatbde2002-06-061-4/+4
| | | | | | | | daadr_t is no larger than a long, and some other relatively harmless things (*blush*). Overflow for subtracting a daddr_t from a u_long caused "truncation" of the i/o for attempts to access blocks beyond the end of the actually cause expansion of the i/o to a preposterous size.
* Const'ify variables to make it clear we're not writing to the mbuf data.archie2002-06-055-49/+53
| | | | | Reviewed by: julian, brian MFC after: 1 week
* Fix bug where an mbuf was being written to without checking M_WRITABLE().archie2002-06-051-57/+24
| | | | | | | | Eliminate some of the unnecessary complexity of ng_ether_glueback_header(). Simplify two functions a bit by doing the NG_FREE_META(meta) earlier. Reviewed by: julian, brian MFC after: 1 week
* Fix bugs where mbuf data was being accessed without m_pullup().archie2002-06-051-7/+43
| | | | | Reviewed by: julian, brian MFC after: 1 week
* Silence GCC warnings about multi-line strings.gibbs2002-06-057-48/+48
| | | | Sync Perforce IDs.
* Add some PCI-X register definitions.gibbs2002-06-051-1/+18
| | | | | PCIM_CMD_SERREN -> PCIM_CMD_SERRESPEN to be consistent with the PERR definition.
* Change the registration of magic spaces so it does its own memory management.phk2002-06-055-36/+43
| | | | Sponsored by: DARPA & NAI Labs.
* Enter the ahd driver which supports the Adaptec AIC7902 Ultra320, PCI-Xgibbs2002-06-059-0/+19742
| | | | SCSI Controller chip.
* Add the 160MHz syncrate to scsi_calc_syncrate() sync period exception table.gibbs2002-06-051-6/+7
|
* scsi_message.h:gibbs2002-06-052-6/+43
| | | | | | | | Include PPR option bits defined in SPI4. scsi_iu.h: Add data structures releated to parallel SCSI information units for use in SPI4 packetized protocol.
* Allow DB_SET() to set all fields in the ddb command structure. Thisgibbs2002-06-051-5/+5
| | | | | allows external ddb commands to do anyting an internal command can do, including non-standard argument parsing if desired.
* Add device id. for fxp chip on Intel D845EPT2L boards. This seems toambrisko2002-06-051-0/+1
| | | | | | | make the onboard NIC work. Sponsored by: Vernier Networks MFC after: 1 day
* Use pmap_map instead of pmap_kenter to map the message buffer. Its toojake2002-06-051-3/+3
| | | | early for pmap_kenter.
* Don't treat statistics counter wrap-overs as errors.tmm2002-06-051-10/+3
|
* Add explicit dependency on ufsread.cphk2002-06-053-2/+4
|
OpenPOWER on IntegriCloud