summaryrefslogtreecommitdiffstats
path: root/sys/amd64
Commit message (Collapse)AuthorAgeFilesLines
* Add a hook that can be called to initialise a slave processor's memorymsmith1999-04-305-22/+68
| | | | | | | | | | range attributes after they have been extracted from the master. Hook up the i686 MP code to do this for each AP. Be more careful about printing the default memory type for the i686. Suggestions from: luoqi
* Enable vmspace sharing on SMP. Major changes are,luoqi1999-04-2835-850/+737
| | | | | | | | | | | | | | | | | - %fs register is added to trapframe and saved/restored upon kernel entry/exit. - Per-cpu pages are no longer mapped at the same virtual address. - Each cpu now has a separate gdt selector table. A new segment selector is added to point to per-cpu pages, per-cpu global variables are now accessed through this new selector (%fs). The selectors in gdt table are rearranged for cache line optimization. - fask_vfork is now on as default for both UP and SMP. - Some aio code cleanup. Reviewed by: Alan Cox <alc@cs.rice.edu> John Dyson <dyson@iquest.net> Julian Elischer <julian@whistel.com> Bruce Evans <bde@zeta.org.au> David Greenman <dg@root.com>
* Suser() simplification:phk1999-04-272-5/+5
| | | | | | | | | | | | | | | | | | | 1: s/suser/suser_xxx/ 2: Add new function: suser(struct proc *), prototyped in <sys/proc.h>. 3: s/suser_xxx(\([a-zA-Z0-9_]*\)->p_ucred, \&\1->p_acflag)/suser(\1)/ The remaining suser_xxx() calls will be scrutinized and dealt with later. There may be some unneeded #include <sys/cred.h>, but they are left as an exercise for Bruce. More changes to the suser() API will come along with the "jail" code.
* Register the netisr's via SYSINIT rather than linker sets.peter1999-04-261-32/+6
|
* pmap_dispose_proc and pmap_copy_page:alc1999-04-251-14/+23
| | | | | | | | | | Conditionally compile 386-specific code. pmap_enter: Eliminate unnecessary TLB shootdowns. pmap_zero_page and pmap_zero_page_area: Use invltlb_1pg instead of duplicating the code.
* Make the machdep.i8254_freq and machdep.tsc_freq sysctls modify thephk1999-04-252-2/+6
| | | | | | timecounter as well Asked for by: bde, jhay
* De-quote where possible and minor tweaks. depends on a current config(8).peter1999-04-241-24/+22
|
* Changed the type of id_port from short into int to avoid wrongkato1999-04-241-2/+2
| | | | | | | conversion from short to unsigned long which is an argument of bus_alloc_resource. Since the value -1 is used to indicate no port reousece, id_port need to be signed (suggested by Doug Rabson and Peter Wemm.)
* Drop the tty/net/bio/cam interrupt class labels, they are meaninless herepeter1999-04-241-30/+30
| | | | now.
* Don't clear the hints on release, just the resource containers.peter1999-04-241-7/+1
|
* 1MB is not 1024 * 1024 * 1024 but 1024 * 1024.kato1999-04-242-4/+4
|
* Make the register_intr() glue actually have a chance of working...peter1999-04-232-4/+6
|
* Make pmap_collect() an official pmap interface.dt1999-04-231-2/+1
|
* Moved cpu_set_fork_handler's prototype from <machine/cpu.h> to <sys/proc.h>.dt1999-04-231-2/+1
| | | | Suggested by: bde
* oops, SMP was missing includes for a typedef.peter1999-04-212-4/+4
|
* Stage 1 of a cleanup of the i386 interrupt registration mechanism.peter1999-04-218-133/+907
| | | | | | | Interrupts under the new scheme are managed by the i386 nexus with the awareness of the resource manager. There is further room for optimizing the interfaces still. All the users of register_intr()/intr_create() should be gone, with the exception of pcic and i386/isa/clock.c.
* _pmap_unwire_pte_hold and pmap_remove_page:alc1999-04-191-13/+31
| | | | | | | | | | | | | | | | | | | | Use pmap_TLB_invalidate instead of invltlb_1pg to eliminate unnecessary IPIs. pmap_remove, pmap_protect and pmap_remove_pages: Use pmap_TLB_invalidate_all instead of invltlb to eliminate unnecessary IPIs. pmap_copy: Use cpu_invltlb instead of invltlb when updating APTDpde. pmap_changebit: Rather than deleting the unused "set bit" option (which may be useful later), make pmap_changebit an inline that is used by the new pmap_clearbit procedure. Collectively, the first three changes reduce the number of TLB shootdown IPIs by 1/3 for a kernel compile.
* unifdef -DVM_STACK - it's been on for a while for x86 and was checkedpeter1999-04-193-92/+3
| | | | and appeared to be working for the Alpha some time ago.
* Drop the 'at nexus?' from the busses, it's not used.peter1999-04-191-5/+5
| | | | | Reactivate eisa0 and pnp0 in GENERIC, they work.. (eisa has been converted but pnp still (for the most part) works the old way).
* Spelling policebrian1999-04-191-2/+2
|
* Always create attach points for the various child busses that can bepeter1999-04-192-60/+28
| | | | | | | | | | | | | | | | | attached to the nexus. With one exception, this (for example) allows you to do wierd things like kldload the eisa bus on the fly and then drivers, and have it auto probe the eisa bus when the drivers come online. The one exception being pci, it only adds the pcib after the presence of the pci bus is detected and that's #if'ed code. A side effect of this is that isa and eisa will be attached to the nexus directly rather than the PCI->ISA or PCI->EISA bridges. I'm not sure if this is good or bad at this point, but it seems to be closer to the way things are for the i386 family... This is likely to be followed up. This also fixes compilation without a PCI bus configured and will allow eisa to work without PCI too.
* Implement an EISA new-bus framework. The old driver probe mechanismpeter1999-04-181-5/+1
| | | | | | | | | had a quirk that made a shim rather hard to implement properly and it was just easier to convert the drivers in one go. The changes to the buslogic driver go beyond just this - the whole driver was new-bus'ed including pci and isa. I have only tested the EISA part of this so far. Submitted by: Doug Rabson <dfr@nlsystems.com>
* Added PC98 code.kato1999-04-182-2/+24
| | | | Submitted by: Takahashi Yoshihiro <nyan@wyvern.cc.kogakuin.ac.jp>
* As a temporary anti-foot-shooting measure, don't let the user attachpeter1999-04-161-1/+5
| | | | the atkbd device to isa, as was in the old (and 3.x) GENERIC config.
* Bring the 'new-bus' to the i386. This extensively changes the way thepeter1999-04-1614-1110/+2139
| | | | | | | | | | | | | | | | | | i386 platform boots, it is no longer ISA-centric, and is fully dynamic. Most old drivers compile and run without modification via 'compatability shims' to enable a smoother transition. eisa, isapnp and pccard* are not yet using the new resource manager. Once fully converted, all drivers will be loadable, including PCI and ISA. (Some other changes appear to have snuck in, including a port of Soren's ATA driver to the Alpha. Soren, back this out if you need to.) This is a checkpoint of work-in-progress, but is quite functional. The bulk of the work was done over the last few years by Doug Rabson and Garrett Wollman. Approved by: core
* Add SYSVSEM so that newer versions of Xaccel don't require a kerneljkh1999-04-161-1/+2
| | | | | | compile just to work. We have the room now, so what the heck. Reqested by: Thomas Roell <roell@xig.com>
* Remove the entries for umodem and ucom. These drivers only proben_hibma1999-04-161-3/+1
| | | | and attach, nothing else. This is confusing to people.
* Made booting with -a work for all configurations. Previously itbde1999-04-151-24/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | only worked for configurations with "swap on generic". usr.sbin/config/config.y: - ignore all "swap [on] device ...' specifications except for warning about them. They haven't done anything related to swap for almost 4 years, and were previously silently ignored, except for "swap on generic" which stopped swap${KERNEL}.c from being generated. Code to support swapping is now deader than before. usr.sbin/config/mkswapconf.c: - don't generate a dummy setconf() function in swap${KERNEL}.c. sys/i386/conf/files.i386: - swapgeneric.c is now standard. It should be merged into autoconf.c so that it doesn't conflict with swap${KERNEL}.c for kernels named "generic". sys/i386/i386/autoconf.c: - don't call setroot() for mfs roots. Since setroot() doesn't do anything harmful, this was just a waste of time, except possibly for booting with -a it may have helped prevent an undesireable call to setconf() by finding a bogus rootdev. - honor -a for ffs roots. -a now overrides all other ways of specifying the root device. Previously, -r had precedence over -a, and the -a handling was usually a no-op. - don't honor -a for non-ffs roots, since it would currently just get in the way of a clean panic. sys/i386/i386/swapgeneric.c: - don't declare things that are now always declared in swap${KERNEL}.c. Don't decide things that are now decided in autoconf.c. Code to support the "generic" case is now dead instead of useless.
* Generate intrnames[] dynamically. This should be new-bus friendly.bde1999-04-148-277/+202
| | | | Old version reviewed by: se
* Add a commented-out example on using the makeoptions command to get apeter1999-04-131-1/+3
| | | | kernel.debug.
* Shoot the LKM support in the old wd/wdc/atapi driver set in the head andpeter1999-04-131-4/+1
| | | | | | | | | | | | | | | | | perform a cleanup/unifdef sweep over it to tidy things up. The atapi code is permanently attached to the wd driver and is always probed. I will add an extra option bit in the flags to disable an atapi probe on either the master or slave if needed, if people want this. Remember, this driver is destined to die some time. It's possible that it will loose all atapi support down the track and only be used for dumb non-ATA disks and all ata/atapi devices will be handled by the new ata system. ATAPI, ATAPI_STATIC and CMD640 are no longer options, all are implicit. Previously discussed with: sos
* Backout early start of APs since it caused some machines to hang.tegge1999-04-133-12/+3
|
* Make debugging more selective.n_hibma1999-04-111-5/+1
| | | | Remove debugging options from GENERIC
* Move initialization of SWI's in the tty|net|bio masks from isa.c intopeter1999-04-111-7/+1
| | | | the static initializers in ipl.s.
* Add prototype for wait_ap().tegge1999-04-113-3/+12
|
* Let BSP wait until all APs are initialized.tegge1999-04-104-4/+31
|
* Test CF after a btrl operation instead of testing ZF (which is undefined).tegge1999-04-101-2/+2
|
* pmap_remove_pte:alc1999-04-101-14/+7
| | | | | | | Use "loadandclear" to update the pte. pmap_changebit and pmap_ts_referenced: Switch to pmap_TLB_invalidate from invltlb.
* Disable the mtrr copy calls, it doesn't work with the i686_mem.c stuff.peter1999-04-073-3/+21
| | | | This should make it compile/link again.
* Add defines for the P6 model-specific registers.msmith1999-04-071-1/+58
|
* mem.cmsmith1999-04-073-104/+674
| | | | | | | | | | | | | Split out ioctl handler a little more cleanly, add memory range attribute handling for both kernel and user-space consumers. pmap.c Remove obsolete P6 MTRR-related code. i686_mem.c Map generic memory-range attribute interface to the P6 MTRR model.
* Two changes to pmap_remove_all:alc1999-04-061-20/+5
| | | | | | | | | | | 1. Switch to pmap_TLB_invalidate from invltlb, eliminating a full TLB flush where a single-page flush suffices. (Also, this eliminates some unnecessary IPIs.) 2. Use "loadandclear" to update the pte, eliminating a race condition on SMPs. Change #2 should be committed to -STABLE.
* Catch a case spotted by Tor where files mmapped could leave garbage in thejulian1999-04-051-5/+55
| | | | | | | | | | | | unallocated parts of the last page when the file ended on a frag but not a page boundary. Delimitted by tags PRE_MATT_MMAP_EOF and POST_MATT_MMAP_EOF, in files alpha/alpha/pmap.c i386/i386/pmap.c nfs/nfs_bio.c vm/pmap.h vm/vm_page.c vm/vm_page.h vm/vnode_pager.c miscfs/specfs/spec_vnops.c ufs/ufs/ufs_readwrite.c kern/vfs_bio.c Submitted by: Matt Dillon <dillon@freebsd.org> Reviewed by: Alan Cox <alc@freebsd.org>
* Restore support for executing BSD/OS binaries on the i386 by passingjdp1999-04-032-4/+8
| | | | | | | | the address of the ps_strings structure to the process via %ebx. For other kinds of binaries, %ebx is still zeroed as before. Submitted by: Thomas Stephens <tas@stephens.org> Reviewed by: jdp
* Put in place the infrastructure for improved UP and SMP TLB management.alc1999-04-025-42/+101
| | | | | | | | | | | | | In particular, replace the unused field pmap::pm_flag by pmap::pm_active, which is a bit mask representing which processors have the pmap activated. (Thus, it is a simple Boolean on UPs.) Also, eliminate an unnecessary memory reference from cpu_switch() in swtch.s. Assisted by: John S. Dyson <dyson@iquest.net> Tested by: Luoqi Chen <luoqi@watermarkgroup.com>, Poul-Henning Kamp <phk@critter.freebsd.dk>
* Purging lint from the Bruce filter.phk1999-03-302-4/+10
|
* Delete all references to the "aic" driver. It isn't in the tree, andken1999-03-291-2/+1
| | | | | | may not show up for a while, and I'm tired of people asking about it. Perhaps this will eliminate some of the confusion.
* Ifdef declaration of a conditionally defined function "timezero".dt1999-03-282-2/+6
|
* Link the bb structures together as we find them.phk1999-03-212-4/+20
|
* Eliminate a pointless TLB flush from the SMP idle loop.alc1999-03-202-14/+2
| | | | | Submitted by: Luoqi Chen <luoqi@watermarkgroup.com> Reviewed by: "John S. Dyson" <toor@dyson.iquest.net>
OpenPOWER on IntegriCloud