summaryrefslogtreecommitdiffstats
path: root/sys
Commit message (Collapse)AuthorAgeFilesLines
* Leave it to a non-native speaker of English to catch another typo: "do do" ->imp2002-06-271-1/+1
| | | | | | "to do" submitted by: marius@alchemy.franken.de
* Spell less like a 'merkin and more like a speaker of Englishimp2002-06-271-1/+1
|
* GENERIC now builds with -Werror, so remove NO_WERROR.mux2002-06-271-1/+0
| | | | Approved by: jake
* Warning fixes for 64 bits platforms. With this last fix,mux2002-06-272-2/+2
| | | | | | I can build a GENERIC sparc64 kernel with -Werror. Reviewed by: luigi
* Fix for the problem stated below by Tor Egge:arr2002-06-272-2/+2
| | | | | | | | | | | | (from: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=832566+0+ \ current/freebsd-current) "Too many pages were prefaulted in pmap_object_init_pt, thus the wrong physical page was entered in the pmap for the virtual address where the .dynamic section was supposed to be." Submitted by: tegge Approved by: tegge's patches never fail
* Set the UMA_ZONE_VM flag on the pvzone to avoid kmem_map recursion.jeff2002-06-271-1/+1
|
* Just a comment on some additional consistency checks that couldluigi2002-06-261-0/+5
| | | | be added here.
* Avoid using the 64-bit vm_pindex_t in a few places where 64-bitiedowse2002-06-265-18/+21
| | | | | | | | | | | | | types are not required, as the overhead is unnecessary: o In the i386 pmap_protect(), `sindex' and `eindex' represent page indices within the 32-bit virtual address space. o In swp_pager_meta_build() and swp_pager_meta_ctl(), use a temporary variable to store the low few bits of a vm_pindex_t that gets used as an array index. o vm_uiomove() uses `osize' and `idx' for page offsets within a map entry. o In vm_object_split(), `idx' is a page offset within a map entry.
* Use an explicit cast to avoid relying on sign extension to do theiedowse2002-06-261-2/+2
| | | | | | right thing in code such as `vm_pindex_t x = ~SWAP_META_MASK'. Reviewed by: dillon
* Remove the kernel file-size limit for UFS2, so that only the limitiedowse2002-06-261-5/+7
| | | | | | | | | | imposed by the filesystem structure itself remains. With 16k blocks, the maximum file size is now just over 128TB. For now, the UFS1 file size limit is left unchanged so as to remain consistent with RELENG_4, but it too could be removed in the future. Reviewed by: mckusick
* - Remove the Giant acquisition from linux_socket_ioctl() as it was reallyarr2002-06-261-11/+2
| | | | | | | | there to protect fdrop() (which in turn can call vrele()), however, fdrop_locked() grabs Giant for us, so we do not have to. Reviewed by: jhb Inspired by: alc
* At long last, commit the zero copy sockets code.ken2002-06-2630-10498/+14477
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MAKEDEV: Add MAKEDEV glue for the ti(4) device nodes. ti.4: Update the ti(4) man page to include information on the TI_JUMBO_HDRSPLIT and TI_PRIVATE_JUMBOS kernel options, and also include information about the new character device interface and the associated ioctls. man9/Makefile: Add jumbo.9 and zero_copy.9 man pages and associated links. jumbo.9: New man page describing the jumbo buffer allocator interface and operation. zero_copy.9: New man page describing the general characteristics of the zero copy send and receive code, and what an application author should do to take advantage of the zero copy functionality. NOTES: Add entries for ZERO_COPY_SOCKETS, TI_PRIVATE_JUMBOS, TI_JUMBO_HDRSPLIT, MSIZE, and MCLSHIFT. conf/files: Add uipc_jumbo.c and uipc_cow.c. conf/options: Add the 5 options mentioned above. kern_subr.c: Receive side zero copy implementation. This takes "disposable" pages attached to an mbuf, gives them to a user process, and then recycles the user's page. This is only active when ZERO_COPY_SOCKETS is turned on and the kern.ipc.zero_copy.receive sysctl variable is set to 1. uipc_cow.c: Send side zero copy functions. Takes a page written by the user and maps it copy on write and assigns it kernel virtual address space. Removes copy on write mapping once the buffer has been freed by the network stack. uipc_jumbo.c: Jumbo disposable page allocator code. This allocates (optionally) disposable pages for network drivers that want to give the user the option of doing zero copy receive. uipc_socket.c: Add kern.ipc.zero_copy.{send,receive} sysctls that are enabled if ZERO_COPY_SOCKETS is turned on. Add zero copy send support to sosend() -- pages get mapped into the kernel instead of getting copied if they meet size and alignment restrictions. uipc_syscalls.c:Un-staticize some of the sf* functions so that they can be used elsewhere. (uipc_cow.c) if_media.c: In the SIOCGIFMEDIA ioctl in ifmedia_ioctl(), avoid calling malloc() with M_WAITOK. Return an error if the M_NOWAIT malloc fails. The ti(4) driver and the wi(4) driver, at least, call this with a mutex held. This causes witness warnings for 'ifconfig -a' with a wi(4) or ti(4) board in the system. (I've only verified for ti(4)). ip_output.c: Fragment large datagrams so that each segment contains a multiple of PAGE_SIZE amount of data plus headers. This allows the receiver to potentially do page flipping on receives. if_ti.c: Add zero copy receive support to the ti(4) driver. If TI_PRIVATE_JUMBOS is not defined, it now uses the jumbo(9) buffer allocator for jumbo receive buffers. Add a new character device interface for the ti(4) driver for the new debugging interface. This allows (a patched version of) gdb to talk to the Tigon board and debug the firmware. There are also a few additional debugging ioctls available through this interface. Add header splitting support to the ti(4) driver. Tweak some of the default interrupt coalescing parameters to more useful defaults. Add hooks for supporting transmit flow control, but leave it turned off with a comment describing why it is turned off. if_tireg.h: Change the firmware rev to 12.4.11, since we're really at 12.4.11 plus fixes from 12.4.13. Add defines needed for debugging. Remove the ti_stats structure, it is now defined in sys/tiio.h. ti_fw.h: 12.4.11 firmware. ti_fw2.h: 12.4.11 firmware, plus selected fixes from 12.4.13, and my header splitting patches. Revision 12.4.13 doesn't handle 10/100 negotiation properly. (This firmware is the same as what was in the tree previously, with the addition of header splitting support.) sys/jumbo.h: Jumbo buffer allocator interface. sys/mbuf.h: Add a new external mbuf type, EXT_DISPOSABLE, to indicate that the payload buffer can be thrown away / flipped to a userland process. socketvar.h: Add prototype for socow_setup. tiio.h: ioctl interface to the character portion of the ti(4) driver, plus associated structure/type definitions. uio.h: Change prototype for uiomoveco() so that we'll know whether the source page is disposable. ufs_readwrite.c:Update for new prototype of uiomoveco(). vm_fault.c: In vm_fault(), check to see whether we need to do a page based copy on write fault. vm_object.c: Add a new function, vm_object_allocate_wait(). This does the same thing that vm_object allocate does, except that it gives the caller the opportunity to specify whether it should wait on the uma_zalloc() of the object structre. This allows vm objects to be allocated while holding a mutex. (Without generating WITNESS warnings.) vm_object_allocate() is implemented as a call to vm_object_allocate_wait() with the malloc flag set to M_WAITOK. vm_object.h: Add prototype for vm_object_allocate_wait(). vm_page.c: Add page-based copy on write setup, clear and fault routines. vm_page.h: Add page based COW function prototypes and variable in the vm_page structure. Many thanks to Drew Gallatin, who wrote the zero copy send and receive code, and to all the other folks who have tested and reviewed this code over the years.
* Enforce RLIMIT_VMEM on growable mappings (aka the primary stack or anydillon2002-06-261-0/+14
| | | | | | MAP_STACK mapping). Suggested by: alc
* - Remove Giant acquisition from modevent(), modfnext(), modstat() andarr2002-06-261-27/+11
| | | | | | | modfind(). Giant is no longer needed by these functions for safe execution. Reviewed by: jhb
* Part I of RLIMIT_VMEM implementation. Implement core functionality fordillon2002-06-263-1/+15
| | | | | | | | | | | | a new resource limit that covers a process's entire VM space, including mmap()'d space. (Part II will be additional code to check RLIMIT_VMEM during exec() but it needs more fleshing out). PR: kern/18209 Submitted by: Andrey Alekseyev <uitm@zenon.net>, Dmitry Kim <jason@nichego.net> MFC after: 7 days
* - Alleviate jail() from having the burden of acquiring Giant by simplyarr2002-06-261-3/+0
| | | | | | | removing. We can do this since we no longer need Giant to safely execute jail(). Reviewed by: rwatson, jhb
* Complete the initial set of VM changes required to support fulliedowse2002-06-255-20/+12
| | | | | | | | | | | 64-bit file sizes. This step simply addresses the remaining overflows, and does attempt to optimise performance. The details are: o Use a 64-bit type for the vm_object `size' and the size argument to vm_object_allocate(). o Use the correct type for index variables in dev_pager_getpages(), vm_object_page_clean() and vm_object_page_remove(). o Avoid an overflow in the i386 pmap_object_init_pt().
* Turn VM_ALLOC_ZERO into a flag.jeff2002-06-252-5/+7
| | | | | Submitted by: tegge Reviewed by: dillon
* Reduce the amount of code that runs with the zone lock held in slab_zalloc().jeff2002-06-251-6/+8
| | | | This allows us to run the zone initialization functions without any locks held.
* o Eliminate vmspace::vm_minsaddr. It's initialized but never used.alc2002-06-252-6/+5
| | | | | o Replace stale comments in vmspace by "const until freed" annotations on some fields.
* Don't assume that pointers are 4 bytes or sizeof(int) in size. This fixestmm2002-06-252-6/+3
| | | | | | the indirection operator ('*') and address examination ('x/a') on big-endian platoforms for which the above is not true, as well as on little-endian platforms if the cut-off bits are not 0.
* pmap_kremove can no longer be used to remove the magic device mappingsjake2002-06-253-1/+16
| | | | | | | installed with pmap_kenter_flags, since the physical addresses may not have an associated vm_page. Add a function to do this. Tested by: Tomi Vainio <Tomi.Vainio@Sun.COM>
* MFi386: sys/i386/i386/machdep.c rev. 1.520.kato2002-06-252-4/+8
|
* Force the quota update to be done when an inode is released inmckusick2002-06-251-1/+1
| | | | | ufs_inactive. This avoid a panic when checking a NULL credential in suser_cred().
* - Remove UM_* user land memory macros since they are no longer used.arr2002-06-241-17/+1
|
* Add missing splx().mp2002-06-241-1/+3
| | | | MFC after: 3 days
* Avoid unlocking the inp twice if badport_bandlim() returns -1.hsu2002-06-242-4/+8
| | | | Reported by: jlemon
* Work around what appears to be a chip bug in the BCM5701 that showsjdp2002-06-242-2/+37
| | | | | | | | | | | | | | up when operating in PCI-X mode. For some received packets there is data corruption in the first few bytes in that case. Aligning the packet buffer eliminates the corruption. With this fix, the code that offsets the packet buffer up by 2 bytes to align the payload is disabled for BCM5701s operating in PCI-X mode. On the i386, which permits unaligned accesses, the payload is left unaligned. On other platforms, the packet is copied after reception to force alignment of the payload. Obviously, this work-around reduces performance in those cases (BCM5701 plus PCI-X) where it is in effect. MFC after: 3 days
* Compile in the cpu halt code even on SMP, instead just default thepeter2002-06-242-4/+8
| | | | | | | sysctl (machdep.cpu_idle_hlt) to off in the SMP case. This allows you to turn it on if you wish and do not particularly care about the small window where a cpu will remain halted even when a job is placed on the run queue (until the next clock tick).
* Add UMA_ZONE_VM flag to the zones which are used for pmap_enter().dfr2002-06-241-2/+2
|
* Prototype fixes (long newinum --> ino_t newinum).jlemon2002-06-241-2/+2
|
* Style bug: fix 4 space indentations that should have been tabs.hsu2002-06-242-10/+10
| | | | Submitted by: jlemon
* Fix a GCCism.markm2002-06-241-1/+1
| | | | | | | int foo[0]; // dodgy int foo[]; // means the same, works the same and survives lint. Tested by: 3 months of use on my laptop
* Add an MD callout like cpu_exit, but which is called after sched_lock isjake2002-06-249-0/+60
| | | | | | | | | obtained, when all other scheduling activity is suspended. This is needed on sparc64 to deactivate the vmspace of the exiting process on all cpus. Otherwise if another unrelated process gets the exact same vmspace structure allocated to it (same address), its address space will not be activated properly. This seems to fix some spontaneous signal 11 problems with smp on sparc64.
* Enable mixer interrupts after the mixer is initialized,robert2002-06-241-2/+2
| | | | | | | | otherwise we might get interrupts and are unable to handle them properly, which results in a page fault. PR: kern/39549 Submitted by: Gil Kloepfer <gil@arlut.utexas.edu>
* Merged from sys/dev/sio/sio.c revisions 1.376 and 1.377.nyan2002-06-242-8/+12
|
* Oops, this should have been part of my previous commit.mux2002-06-241-3/+0
| | | | | | Somehow, it hasn't. Reviewed by: phk
* Bring sys/kern/md5c.c in sync with the userland version.mux2002-06-241-26/+23
| | | | | | | | Add a comment so that people don't forget to keep the version in src/lib/libmd/md5c.c in sync with this one. This fixes a warning on sparc64. Reviewed by: phk
* Yet another warning fix for 64 bits platforms.mux2002-06-241-2/+3
| | | | Reviewed by: phk
* Include <sys/types.h> in the !_KERNEL case so that this file isbde2002-06-241-0/+3
| | | | | self-sufficient in that case (it needs dev_t). This is normal pollution for most headers that define ioctl numbers.
* Fixed some style bugs (mainly excessive indentation).bde2002-06-241-24/+24
| | | | Not completely unapproved by: julian
* MFi386: sys/i386/isa/clock.c revision 1.187.kato2002-06-243-6/+6
|
* On REASREQ packets, handled them earlier in processing the associationimp2002-06-241-7/+11
| | | | | | | | | | request. We need to eat the MAC address of the packet before we go looking at the SSID and such. Doing do is sufficient to make Cisco cards assocaite with prism II cards. The submitter says that Linux does the same thing. Submitted by: jhay
* Use proper size in bzero of stat structure.mckusick2002-06-243-3/+3
| | | | | Submitted by: Jake Burkholder <jake@locore.ca> Sponsored by: DARPA & NAI Labs.
* userout -> out. These two labels are now identical.mini2002-06-242-14/+12
| | | | Approved by: alfred
* Remove unused diagnostic function cread_free_thread().mini2002-06-2411-64/+0
| | | | Approved by: alfred
* - Remove DMA_* macros as only one, DMA_GET_ADDR, was used.arr2002-06-2412-103/+15
| | | | | - Convert DMA_GET_ADDR() calls to vtophys() calls in order to finish removing the DMA_* macros.
* Add kernel printf bits for WI_SUPPRATES and HOSTAP_FLAGSimp2002-06-242-0/+2
|
* Add RID to get the DBM adjustment factorimp2002-06-241-0/+1
|
* Add kernel print bits #define for the IEEE80211_CAPINFO bits.imp2002-06-241-1/+1
|
OpenPOWER on IntegriCloud