summaryrefslogtreecommitdiffstats
path: root/sys
Commit message (Collapse)AuthorAgeFilesLines
* White-space changes.phk2002-12-245-43/+42
|
* - Hold the page queues lock around calls to vm_page_wakeup() andalc2002-12-242-4/+16
| | | | vm_page_flag_clear().
* - Hold the page queues lock around vm_page_wakeup().alc2002-12-243-3/+10
|
* SMP locking for radix nodes.hsu2002-12-2411-23/+99
|
* - Change the way the direct mapped region is implemented to be generallyjake2002-12-235-108/+220
| | | | | | | | | | | | | | | | | | | | | useful for accessing more than 1 page of contiguous physical memory, and to use 4mb tlb entries instead of 8k. This requires that the system only use the direct mapped addresses when they have the same virtual colour as all other mappings of the same page, instead of being able to choose the colour and cachability of the mapping. - Adapt the physical page copying and zeroing functions to account for not being able to choose the colour or cachability of the direct mapped address. This adds a lot more cases to handle. Basically when a page has a different colour than its direct mapped address we have a choice between bypassing the data cache and using physical addresses directly, which requires a cache flush, or mapping it at the right colour, which requires a tlb flush. For now we choose to map the page and do the tlb flush. This will allows the direct mapped addresses to be used for more things that don't require normal pmap handling, including mapping the vm_page structures, the message buffer, temporary mappings for crash dumps, and will provide greater benefit for implementing uma_small_alloc, due to the much greater tlb coverage.
* Move the declaration of the socket fileops from socketvar.h to file.h.phk2002-12-233-22/+14
| | | | | This allows us to use the new typedefs and removes the needs for a number of forward struct declarations in socketvar.h
* Make it work -current style.julian2002-12-231-1/+1
|
* Make ng_fec.c compile again since Sam's changes.julian2002-12-231-5/+8
| | | | Submitted by: Hiten Pandya (hiten@unixdaemons.com)
* Outdent the string rather than use concatenation.phk2002-12-232-4/+4
|
* Detediousficate declaration of fileops array members by introducingphk2002-12-235-76/+64
| | | | typedefs for them.
* Change the chip description from "DFE-550TX" to "DL10050".phk2002-12-232-4/+4
| | | | | The DL10050 chip is used on the 550TX and 580TX cards, probably others as well.
* - Hold the page queues lock around vm_page_wakeup().alc2002-12-232-0/+8
|
* s/sokqfilter/soo_kqfilter/ for consistency with the naming of allphk2002-12-234-4/+4
| | | | other socket/file operations.
* - Hold the kernel_object's lock around vm_page_insert(..., kernel_object,alc2002-12-231-0/+2
| | | | ...).
* - Hold the kernel_object's lock around vm_page_alloc(kernel_object,...).alc2002-12-231-0/+6
| | | | - Hold the page queues lock around vm_page_wakeup().
* - Move to array based indexing for TX/RX descriptor/buffer managementpdeuskar2002-12-233-545/+526
| | | | | | | | | - Added support for ITR (interrupt throttle register). This feature is available on adapters based on 82545 and above - Fixed problem with vlan support when traffic has priority bits set. (kern/45907) PR: kern/45907 MFC after: 1 week
* rn_walktree*() compute the next leaf before applying a functionru2002-12-231-4/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to current leaves because function may vanish the current node. If parent RTA_GENMASK route has a clone (a "cloning clone"), an rn_walktree_from() starting from parent will cause another walk starting from clone. If a function is either rt_fixdelete() or rt_fixchange(), this recursive walk may vanish the leaf that is remembered by an outer walk (the "next leaf" above), panicing a system when it resumes with an outer walk. The following script paniced my single-user mode booted system: : sysctl net.inet.ip.forwarding=1 : ipfw add 1 allow ip from any to any : ifconfig lo0 127.1 : route add -net 10 -genmask 255.255.255.0 127.1 : telnet 10.1 # rt_fixchange() panic : telnet 10.2 : telnet 10.1 : route delete -net 10 # rt_fixdelete() panic For the time being, avoid these races by disallowing recursive walks in rt_fixchange() and rt_fixdelete(). Also, make a slight optimization in the rtrequest(RTM_RESOLVE) case: there is no reason to call rt_fixchange() in this case. PR: kern/37606 MFC after: 5 days
* Avoid holding the vnode interlock around malloc() or free() to prevent aalc2002-12-231-2/+8
| | | | | | lock order reversal. Reviewed by: jeff
* Eliminate some dead code. (Any possible use for this code died withalc2002-12-231-4/+0
| | | | | | vm/vm_page.c revision 1.220.) Submitted by: bde
* Fix a De Morgan bug: If we only expect a memory range OR anmarcel2002-12-231-8/+8
| | | | | | | | | | I/O port range, then we should ignore a resource if it's NOT a memory range AND NOT an I/O port range. The OR in the condition caused us to ignore perfectly valid memory addresses. While here, remove redundant parenthesis and reindent the debug print to avoid long lines.
* - Fix a bug where the faulting address for an mmu miss could sometimes bejake2002-12-231-5/+5
| | | | | | clobbered due to some debug code. This was harmless and just superfluous soft faults. - Update some comments.
* - Rearrange pmap_bootstrap slightly to be more in dependency order.jake2002-12-221-50/+49
| | | | | | | - Put the kernel tsb before before the kernel load address, below VM_MIN_KERNEL_ADDRESS, instead of after the kernel where it consumes usable kva. This is magic mapped so the virtual address is irrelevant, it just needs to be out of the way.
* Add suseconds_t and useconds_t for storing microseconds.mike2002-12-222-0/+13
|
* - Add a spin lock to single thread cache invalidation and tlb flush ipis,jake2002-12-225-19/+22
| | | | | which allows ipis to be sent outside of Giant. - Remove the ap boot mutex, which is unused.
* Enforce correct ordering of the filedesc structure and pipe mutex, becausekris2002-12-221-0/+2
| | | | | | WITNESS can get the order wrong if it guesses based on first use. Reviewed by: jhb, alfred
* Remove forgotten INP_UNLOCK(inp) in my previous commit.pb2002-12-221-1/+0
| | | | Reported by: hsu
* MB_LEN_MAX is not MD, move it to the MI limits.h.tjr2002-12-2214-14/+0
|
* SMP locking for ifnet list.hsu2002-12-2221-24/+126
|
* The UP -current was not properly counting the per-cpu VM stats in thedillon2002-12-221-0/+3
| | | | | | | sysctl code. This makes 'systat -vm 1's syscall count work again. Submitted by: Michal Mertl <mime@traveller.cz> Note: also slated for 5.0
* Revert part of the last commit. Do not fake-up the cylinders to makedillon2002-12-221-2/+1
| | | | | the sectors fit (at least, don't fake them up any more then they are already faked up).
* - Add a pmap pointer to struct md_page, and use this to find the pmap thatjake2002-12-214-69/+70
| | | | | | | | | | | | | | | | | | | | | | | | a mapping belongs to by setting it in the vm_page_t structure that backs the tsb page that the tte for a mapping is in. This allows the pmap that a mapping belongs to to be found without keeping a pointer to it in the tte itself. - Remove the pmap pointer from struct tte and use the space to make the tte pv lists doubly linked (TAILQs), like on other architectures. This makes entering or removing a mapping O(1) instead of O(n) where n is the number of pmaps a page is mapped by (including kernel_pmap). - Use atomic ops for setting and clearing bits in the ttes, now that they return the old value and can be easily used for this purpose. - Use __builtin_memset for zeroing ttes instead of bzero, so that gcc will inline it (4 inline stores using %g0 instead of a function call). - Initially set the virtual colour for all the vm_page_ts to be equal to their physical colour. This will be more useful once uma_small_alloc is implemented, but basically pages with virtual colour equal to phsyical colour are easier to handle at the pmap level because they can be safely accessed through cachable direct virtual to physical mappings with that colour, without fear of causing illegal dcache aliases. In total these changes give a minor performance improvement, about 1% reduction in system time during buildworld.
* Be nice. There are evidentally a number of different cards thatimp2002-12-211-2/+4
| | | | | | | | | | identify themselves as serial cards that it would be desirable to attach a different driver than sio to. Since we are claiming all serial cards, this is not possible. Instead, return -100 to indicate that we're willing to take the card, but still allow other drivers to attach. Pointed out by: Maksim Yevmenkin
* do not try to free a mountpoint that we did not allocate.dillon2002-12-211-4/+9
| | | | X-MFC after: immediately
* In syncache_timer(), don't attempt to lock the inpcb structurepb2002-12-211-2/+0
| | | | | | | | | associated with the syncache entry: in case tcp_close() has been called on the corresponding listening socket, the lock has been destroyed as a side effect of in_pcbdetach(), causing a panic when we attempt to lock on it. Reviewed by: hsu
* Make pmap_qenter and pmap_qremove look more like the other pmaps.jake2002-12-211-7/+10
|
* Removed unused pmap_qenter_flags.jake2002-12-212-17/+0
|
* Make the atomic arithmetic functions return the old value, since they'rejake2002-12-211-40/+38
| | | | all implemented with cas anyway.
* -mno-align-long-strings can make things smaller, so lets use it in hopesobrien2002-12-212-0/+2
| | | | that it does here.
* Fix multiple registration of the elf_legacy_coredump sysctl variable.marcel2002-12-211-3/+5
| | | | | | | | | | | | | | | | | | | | The duplication is caused by the fact that imgact_elf.c is included by both imgact_elf32.c and imgact_elf64.c and both are compiled by default on ia64. Consequently, we have two seperate copies of the elf_legacy_coredump variable due to them being declared static, and two entries for the same sysctl in the linker set, both referencing the unique copy of the elf_legacy_coredump variable. Since the second sysctl cannot be registered, one of the elf_legacy_coredump variables can not be tuned (if ordering still holds, it's the ELF64 related one). The only solution is to create two different sysctl variables, just like the elf<32|64>_trace sysctl variables. This unfortunately is an (user) interface change, but unavoidable. Thus, on ELF32 platforms the sysctl variable is called elf32_legacy_coredump and on ELF64 platforms it is called elf64_legacy_coredump. Platforms that have both ELF formats have both sysctl variables. These variables should probably be retired sooner rather than later.
* replace the special-purpose rate-limiting code with the general facilitysam2002-12-211-38/+28
| | | | | just added; this tries to maintain the same behaviour vis a vis printing the rate-limiting messages but need tweaking
* define HAVE_PPSRATECHECK now that we have this stuff in the kernelsam2002-12-201-0/+1
| | | | | (probably belongs elsewhere; add it this way for now so the system will build)
* add generic rate limiting support from netbsd; ratelimit is purely time based,sam2002-12-202-0/+90
| | | | | | ppsratecheck is for controlling packets/second Obtained from: netbsd
* Add page queue locking around functions that call vm_page_flag_set. Thisjake2002-12-202-0/+4
| | | | | | fixes a failed assertion early in boot on sparc64. Reported by: Roderick van Domburg <r.s.a.vandomburg@student.utwente.nl>
* Extend the scope of the page queues lock in vm_pgmoveco().alc2002-12-201-4/+4
|
* Increase the scope of the kmem_object locking in kmem_malloc().alc2002-12-201-3/+5
|
* Modify the fake cylinders calculation so it is >= the size of the device,dillon2002-12-201-6/+26
| | | | | | | | | | | | | | | | | | | | | | | | not < the size of the device. This avoids geom complaints. Fix a serious bug in the handling of the RS_NO_CLEAR_UA quirk. When we go and insert the test-unit-ready command the umass_cam_quirk_cb() function sets the status as if the READ_CAPACITY command suceeded when, in fact, it did not. This leads to the CAM layer trying to use garbage in the return buffer and panicing the system (or doing other bad things). Add a quirk entry for MSYSTEMS DISK-ON-KEY, which is sold under the Sony brand as a solid state disk-on-key usb device. This device requires several quirks to work properly. Note that the disk-on-key device will not work properly until CAM also gets a quirk entry for it, which has been submitted to the CAM maintainer, and you may have to temporarily uncomment the DELAY() as well. -current does not properly wait for devices to power up so you may also have to temporarily uncomment the DELAY(300000) to make your device work. A solution must be found to that issue. MFC after: 3 days X-MFC note: the quirk support must MFCd before this patch can be
* Fix two bugs in the DMA chaining code for OHCI. The first bug is thatdillon2002-12-201-5/+9
| | | | | | | | | | | | | | | | | | | the dataphysend calculation could only possibly work if the virtual buffer is also physically contiguous. Calculate dataphysend by calculating the ending virtual address first, then converting to a physical address. The second bug applies only to NetBSD and OpenBSD and involves the curlen calculation in the two-contiguous-physical-pages case (which we don't support). Also cleanup the use of the OHIC_PAGE() macro on dataphysend and add a panic if len goes negative (meaning we lost the physical page translation representing the end of the buffer). IMHO the dataphysend is still bokered since it might be misrepresented by shared userland page mappings. The whole section needs to be rewritten to use the virtual address range. MFC after: 3 days
* Don't forget to destroy the mutex if an error occursmux2002-12-201-0/+1
| | | | | | in the jail() system call. Submitted by: Pawel Jakub Dawidek <nick@garage.freebsd.pl>
* Fxi support for the Promise SuperTrak 100, the PCI id was wrong.sos2002-12-201-2/+2
|
* Eliminate a goto.hsu2002-12-201-39/+36
| | | | Fix some line breaks.
OpenPOWER on IntegriCloud