summaryrefslogtreecommitdiffstats
path: root/sys
Commit message (Collapse)AuthorAgeFilesLines
* Protect the following with a lockmgr lock:jake2000-11-2220-15/+90
| | | | | | | | | | | | allproc zombproc pidhashtbl proc.p_list proc.p_hash nextpid Reviewed by: jhb Obtained from: BSD/OS and netbsd
* Protect the bounce page list with a mutex instead of using splhigh().dfr2000-11-221-14/+13
|
* Ahem, fix the disclaimer portion of the copyright so it disclaim's thejhb2000-11-211-2/+2
| | | | | | | voices in my head. You can sue the voices in Bill Paul's head all you want. Noticed by: jhb
* Devices that are running at splimp MUST use ng_queue_data()julian2000-11-211-2/+1
| | | | | | | | | instead of ng_send_data(). The latter could lead to running the IP stack at splimp instead of splnet, (among other problems) (that MAY be safe but I wouldn't count on it). Noticed while preparing a new set of netgraph stuff.
* Protect p_wchan with sched_lock in selwakeup().jlemon2000-11-211-0/+2
|
* Assembler fixes.markm2000-11-217-16/+16
| | | | | | Fix opcodes that were typed as ".byte 0xNN, 0xMM" when an older assembler could not recognise the newer Pentium instructions. Reviewed by: jhb
* Add a consistent API to a feature that most modern CPUs have; a fastmarkm2000-11-214-0/+62
| | | | | | | | | | | | | | counter register in-CPU. This is to be used as a fast "timer", where linearity is more important than time, and multiple lines in the linearity caused by multiple CPUs in an SMP machine is not a problem. This adds no code whatsoever to the FreeBSD kernel until it is actually used, and then as a single-instruction inline routine (except for the 80386 and 80486 where it is some more inline code around nanotime(9). Reviewed by: bde, kris, jhb
* Provide a new interface for the user of aio_read() and aio_write() to requestalc2000-11-213-31/+47
| | | | | | | | | | | | | | | a kevent upon completion of the I/O. Specifically, introduce a new type of sigevent notification, SIGEV_EVENT. If sigev_notify is SIGEV_EVENT, then sigev_notify_kqueue names the kqueue that should receive the event and sigev_value contains the "void *" is copied into the kevent's udata field. In contrast to the existing interface, this one: 1) works on the Alpha 2) avoids the extra copyin() call for the kevent because all of the information needed is in the sigevent and 3) could be applied to request a single kevent upon completion of an entire lio_listio(). Reviewed by: jlemon
* Stop handcoding a couple of instructions since gas 2.10 can properlyjhb2000-11-214-7/+4
| | | | | | assemble 16-bit code. Noticed by: markm
* Bump the buffersize from 0x1000 to 0x4000.julian2000-11-211-1/+1
| | | | | | 0x1000 gets underflows on my dell 7500 whenever I moved the mouse. (reported as "hwptr went backwards...", with jumpy sound) Sounds great now....
* Don't test the return value from the actual command when determiningmsmith2000-11-211-5/+0
| | | | | success/failure for submission of the command. The caller will want to deal with this itself.
* fix isa DMA on pyxis based machines:gallatin2000-11-211-7/+8
| | | | | | | | | | | | - move the call to cia_init_sgmap() to after we've determined if we're a pyxis - convert needed splhigh() in cia_sgmap_invalidate_pyxis() to disable_intr() Previously, any isa DMA on a pyxis based machine would cause a panic in cia_sgmap_invalidate_pyxis() because the pyxis workaround was never setup. - while i'm at it, convert needed splhigh() in cia_swiz_set_hae_mem to disable_intr()
* Make programs which still #include <machine/{mouse,console}.h> failphk2000-11-206-41/+6
| | | | | | | at compiletime, with an explanatory error message. Previously they would only get a warning. These files will be finally removed 2001-01-15
* mdoc(7) police: use the new features of the Nm macro.ru2000-11-206-13/+13
|
* Duh. These have been sitting in my tree since I committed this stuff.julian2000-11-204-0/+116
| | | | | Thes are identical to what I committed except that they had the correct copyright headers. This is what I was SUPPOSED to have checked in..
* Merged from sys/i386/i386/machdep.c revision 1.421.kato2000-11-202-0/+4
|
* More aggressively rate limit the growth of soft dependency structuresmckusick2000-11-201-33/+21
| | | | | | | | | | | in the face of multiple processes doing massive numbers of filesystem operations. While this patch will work in nearly all situations, there are still some perverse workloads that can overwhelm the system. Detecting and handling these perverse workloads will be the subject of another patch. Reviewed by: Paul Saab <ps@yahoo-inc.com> Obtained from: Ethan Solomita <ethan@geocast.com>
* Accept filters broke kernels compiled without options INET.alfred2000-11-202-7/+20
| | | | | | | Make accept filters conditional on INET support to fix. Pointed out by: bde Tested and assisted by: Stephen J. Kiernan <sab@vegamuse.org>
* o Export cp_time ("CPU time statistics") using SYSCTL_OPAQUE.rwatson2000-11-201-0/+3
| | | | | This removes a reason that systat requires setgid kmem. More to come.
* o Export nchstats ("VFS cache effectiveness statistics") usingrwatson2000-11-201-0/+4
| | | | | SYSCTL_OPAQUE. This removes a reason that systat requires setgid kmem. More to come.
* o Export dmmax ("Maximum size of a swap block") using SYSCTL_INT.rwatson2000-11-201-0/+3
| | | | | This removes a reason that systat requires setgid kmem. More to come.
* Disable calling timeout() when doing bio. It was causing more prolems thanscottl2000-11-191-2/+8
| | | | solving. This will be fixed for real soon.
* Make sbcompress use the new M_WRITABLE macro. Previously sbcompressdwmalone2000-11-192-4/+8
| | | | | | | | | | | | | | could not compress into clusters. This could result in lots of wasted clusters while recieving small packets from an interface that uses clusters for all it's packets. Patch is partially from BSDi (limiting the size of the copy) and based on a patch for 4.1 by Ian Dowse <iedowse@maths.tcd.ie> and myself. Reviewed by: bmilekic Obtained From: BSDi Submitted by: iedowse
* Convert various calls to splhigh() to disable_intr() since splhigh() isdfr2000-11-198-28/+34
| | | | now a no-op.
* We don't need <stddef.h> for offsetof() any more.dfr2000-11-192-4/+0
|
* - Protect the callout wheel with a separate spin mutex, callout_lock.jake2000-11-1911-20/+50
| | | | | | | | | | | - Use the mutex in hardclock to ensure no races between it and softclock. - Make softclock be INTR_MPSAFE and provide a flag, CALLOUT_MPSAFE, which specifies that a callout handler does not need giant. There is still no way to set this flag when regstering a callout. Reviewed by: -smp@, jlemon
* Implement a low-memory deadlock solution.dillon2000-11-1814-185/+315
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Removed most of the hacks that were trying to deal with low-memory situations prior to now. The new code is based on the concept that I/O must be able to function in a low memory situation. All major modules related to I/O (except networking) have been adjusted to allow allocation out of the system reserve memory pool. These modules now detect a low memory situation but rather then block they instead continue to operate, then return resources to the memory pool instead of cache them or leave them wired. Code has been added to stall in a low-memory situation prior to a vnode being locked. Thus situations where a process blocks in a low-memory condition while holding a locked vnode have been reduced to near nothing. Not only will I/O continue to operate, but many prior deadlock conditions simply no longer exist. Implement a number of VFS/BIO fixes (found by Ian): in biodone(), bogus-page replacement code, the loop was not properly incrementing loop variables prior to a continue statement. We do not believe this code can be hit anyway but we aren't taking any chances. We'll turn the whole section into a panic (as it already is in brelse()) after the release is rolled. In biodone(), the foff calculation was incorrectly clamped to the iosize, causing the wrong foff to be calculated for pages in the case of an I/O error or biodone() called without initiating I/O. The problem always caused a panic before. Now it doesn't. The problem is mainly an issue with NFS. Fixed casts for ~PAGE_MASK. This code worked properly before only because the calculations use signed arithmatic. Better to properly extend PAGE_MASK first before inverting it for the 64 bit masking op. In brelse(), the bogus_page fixup code was improperly throwing away the original contents of 'm' when it did the j-loop to fix the bogus pages. The result was that it would potentially invalidate parts of the *WRONG* page(!), leading to corruption. There may still be cases where a background bitmap write is being duplicated, causing potential corruption. We have identified a potentially serious bug related to this but the fix is still TBD. So instead this patch contains a KASSERT to detect the problem and panic the machine rather then continue to corrupt the filesystem. The problem does not occur very often.. it is very hard to reproduce, and it may or may not be the cause of the corruption people have reported. Review by: (VFS/BIO: mckusick, Ian Dowse <iedowse@maths.tcd.ie>) Testing by: (VM/Deadlock) Paul Saab <ps@yahoo-inc.com>
* Add the splvm()'s suggested in PR 20609 to protect vm_pager_page_unswapped().dillon2000-11-181-0/+3
| | | | | | The remainder of the PR is still open. PR: kern/20609 (partial fix)
* This patchset fixes a large number of file descriptor race conditions.dillon2000-11-1817-245/+1789
| | | | | | | | | | | | Pre-rfork code assumed inherent locking of a process's file descriptor array. However, with the advent of rfork() the file descriptor table could be shared between processes. This patch closes over a dozen serious race conditions related to one thread manipulating the table (e.g. closing or dup()ing a descriptor) while another is blocked in an open(), close(), fcntl(), read(), write(), etc... PR: kern/11629 Discussed with: Alexander Viro <viro@math.psu.edu>
* Further use of M_ZERO.dwmalone2000-11-185-13/+7
| | | | | | Submitted by: josh@zipperup.org Submitted by: Robert Drehmel <robd@gmx.net> Approved by: msmith
* Add the use of M_ZERO to netgraph.dwmalone2000-11-1823-66/+36
| | | | | | | Submitted by: josh@zipperup.org Submitted by: Robert Drehmel <robd@gmx.net> Submitted by: archie Approved by: archie
* Fix a braino ..sos2000-11-181-1/+1
|
* do not blindly assume 8khz is supported on open(). try for 8khz but respectcg2000-11-181-3/+6
| | | | | | minspeed/maxspeed specified by the hw driver. Submitted by: Andrew Gordon <arg@arg1.demon.co.uk>
* Use vop_defaultop() instead of ntfs_bypass().bp2000-11-182-4/+12
| | | | PR: kern/22756
* Release sched_lock very briefly to give interrupts a chance to fire if wejhb2000-11-181-0/+2
| | | | | | are in softclock() for a long time. The old code already did an splx()/slphigh() pair here, I just missed adding in the equivalent mutex operations on sched_lock earlier.
* Don't attempt to cluster write buffers where the VMIO flag isn't set.tegge2000-11-171-1/+2
|
* Make sure we don't cross stripe boundaries when reviving striped plexes.des2000-11-171-4/+6
| | | | | | | | | This makes crash recovery work for stripe sizes that are not multiples of DEFAULT_REVIVE_BLOCKSIZE (currently 64 kB). While we're here, fix a few cosmetic nits. Reviewed by: grog Sponsored by: Enitel ASA (http://www.enitel.no/)
* Fix the `make -jX' (X>1) breakage.obrien2000-11-175-45/+55
| | | | | Based on patch submitted by: Makoto MATSUSHITA <matusita@jp.freebsd.org> Reviewed by: marcel, bde
* - Split the run queue and sleep queue linkage, so that a processjake2000-11-1712-18/+22
| | | | | | | | | may block on a mutex while on the sleep queue without corrupting it. - Move dropping of Giant to after the acquire of sched_lock. Tested by: John Hay <jhay@icomtek.csir.co.za> jhb
* - Change extra sanity checks in cpu_switch() to be conditional on INVARIANTSjhb2000-11-173-93/+9
| | | | | | | instead of DIAGNOSTIC. - Remove the p_wchan check as it no longer applies since a process may be switched out during CURSIG() within msleep() or mawait(). - Remove an extra sanity check only needed during the early SMPng work.
* mdoc(7) police: use certified section headers wherever possible.ru2000-11-171-1/+1
|
* The default kernel filename is "kernel" again, not "kernel.ko".msmith2000-11-171-1/+1
| | | | Submitted by: mckusick
* Add the 'gdt' and 'gdtd' devices for the ICP Vortex RAID controller family.msmith2000-11-171-0/+2
|
* Go back to using data_len in struct ngpppoe_init_data after discussionsbrian2000-11-165-89/+146
| | | | | | | | | | | with Julian and Archie. Implement a new ``sizedstring'' parse type for dealing with field pairs consisting of a uint16_t followed by a data field of that size, and use this to deal with the data_len and data fields. Written by: Archie with some input by me Agreed in principle by: julian
* The recent changes to msleep() and mawait() resulted in timeout() andjhb2000-11-161-1/+16
| | | | | | | | untimeout() not being called with Giant in those functions. For now, use the sched_lock to protect the callout wheel in softclock() and in the various timeout and callout functions. Noticed by: tegge
* When checking the device code in the probe routine, leave the chip inwpaul2000-11-161-3/+22
| | | | | | | | | | | | | | | 16-bit mode. Technically, pcn_probe() is destructive because once the chip goes into 32-bit mode, the only way to get it out again is a hardware reset. And once the device is in 32-bit mode, the lnc driver won't be able to talk to it. So if pcn_probe() is called before the lnc probe routine, and pcn_probe() rejects the chip as one it doesn't support, the lnc driver will be SOL. I don't like this. I think it's a design flaw that you can't switch the chip out of 32-bit mode once it's selected. The only 'right' solution is for the pcn driver to support all of the PCI devices in 32-bit mode, however I don't have samples of all the PCnet series cards for testing.
* Add kernel option NETGRAPH_ONE2MANY.archie2000-11-164-0/+4
|
* vx is now optional rather than taking a count. Reflect that in theimp2000-11-161-2/+2
| | | | | | files. Also a minor white space nit. Submitted by: bde
* Put the probe verboseness behind bootverbosesos2000-11-161-11/+15
|
* New netgraph node type ng_one2many(4).archie2000-11-163-0/+640
|
OpenPOWER on IntegriCloud