aboutsummaryrefslogtreecommitdiff
path: root/sys/amd64
Commit message (Collapse)AuthorAgeFilesLines
* Fetch the actual acpi0 device_t and use device_is_attached() to see ifJohn Baldwin2004-06-231-2/+3
| | | | | | | | | it's alive rather than trying to fetch its softc pointer via its devclass. Glanced at by: imp, njl Notes: svn path=/head/; revision=130983
* Implement the protection check required by the pmap_extract_and_hold()Alan Cox2004-06-231-8/+24
| | | | | | | specification. This enables the elimination of Giant from that function. Notes: svn path=/head/; revision=130958
* - Simplify pmap_remove_pages(), eliminating unnecessary indirection.Alan Cox2004-06-201-12/+12
| | | | | | | | - Simplify the locking of pmap_is_modified() by converting control flow to data flow. Notes: svn path=/head/; revision=130814
* Add pmap locking to pmap_is_prefaultable().Alan Cox2004-06-201-6/+9
| | | | Notes: svn path=/head/; revision=130765
* Backed out previous commit. Blind substitution of dev_t by `struct cdev *'Bruce Evans2004-06-201-1/+1
| | | | | | | was just wrong here because the dev_t's are user dev_t's. Notes: svn path=/head/; revision=130764
* Remove unused pt_entry_ts. Remove an unneeded semicolon.Alan Cox2004-06-191-7/+3
| | | | Notes: svn path=/head/; revision=130738
* Include <sys/_lock.h>'s prerequisite <sys/queue.h> before including theBruce Evans2004-06-191-1/+1
| | | | | | | | | former, not after. Don't hide this bug by including <sys/queue.h> in <sys/_lock.h>. Notes: svn path=/head/; revision=130731
* Try harder to give new processes a clean initial fpu state. fpu_cleanstatePeter Wemm2004-06-181-7/+5
| | | | | | | | | | | | | | | | | | | | wasn't actually clean, it was saving the xmm registers as left over by the bios. fninit() doesn't clear those. In fpudna(), instead of doing a fninit() and forgetting to load the initial mxcsr, do a full fxrstor(&fpu_cleanstate). Otherwise we hand over whatever random values are left in the xmm registers by the last user. I'm not certain of whether this is excessive paranoia or not, but there was an outright bug in neglecting to set the mxcsr value that caused awk to SIGFPE in some case. Especially for Tim Robbins. :-) i386 probably should do something about the mxcsr setings too. Found by: tjr Notes: svn path=/head/; revision=130667
* Revert last change. If acpi is loaded or compiled into the kernel, itsNate Lawson2004-06-171-1/+1
| | | | | | | | | | devclass will be present even if the driver was disabled by a hint. Using device_get_softc() provides the right info even if it's overkill. Explained by: jhb Notes: svn path=/head/; revision=130641
* Do not preset PG_BUSY on VM_ALLOC_NOOBJ pages. Such pages are notAlan Cox2004-06-171-4/+0
| | | | | | | accessible through an object. Thus, PG_BUSY serves no purpose. Notes: svn path=/head/; revision=130626
* Do the dreaded s/dev_t/struct cdev */Poul-Henning Kamp2004-06-162-7/+7
| | | | | | | Bump __FreeBSD_version accordingly. Notes: svn path=/head/; revision=130585
* Add some lock assertions. Lock a small part of pmap_enter().Alan Cox2004-06-161-0/+4
| | | | Notes: svn path=/head/; revision=130577
* Correct an error in the implementation of pmap_is_prefaultable(). When IAlan Cox2004-06-161-1/+1
| | | | | | | | introduced this function in revision 1.441, I inverted one of the comparisons. Notes: svn path=/head/; revision=130553
* Remove a stale comment.Alan Cox2004-06-151-6/+0
| | | | Notes: svn path=/head/; revision=130539
* Add pmap locking to pmap_extract(), pmap_mincore(), and pmap_remove().Alan Cox2004-06-151-4/+15
| | | | Notes: svn path=/head/; revision=130520
* We only need the devclass_find() result, not the softc.Nate Lawson2004-06-151-1/+1
| | | | Notes: svn path=/head/; revision=130510
* Introduce pmap locking to many of the pmap functions. There is more toAlan Cox2004-06-142-0/+35
| | | | | | | come later. Notes: svn path=/head/; revision=130444
* The majority of FreeBSD/amd64 machines are SMP, so use ADAPTIVE_MUTEXESDavid E. O'Brien2004-06-131-0/+1
| | | | | | | by default to improve performance. Notes: svn path=/head/; revision=130441
* Prevent the loss of a PG_M bit through an SMP race in pmap_ts_referenced().Alan Cox2004-06-131-1/+1
| | | | Notes: svn path=/head/; revision=130433
* Remove dead or unneeded code, e.g., spl calls.Alan Cox2004-06-131-32/+1
| | | | Notes: svn path=/head/; revision=130427
* - Remove an unused declaration.Alan Cox2004-06-131-3/+2
| | | | | | | - Move a definition inside the scope of a #ifdef _KERNEL. Notes: svn path=/head/; revision=130399
* In a multiprocessor, the PG_W bit in the pte must be changed atomically.Alan Cox2004-06-121-2/+2
| | | | | | | | | | Otherwise, the setting of the PG_M bit by one processor could be lost if another processor is simultaneously changing the PG_W bit. Reviewed by: tegge@ Notes: svn path=/head/; revision=130386
* Deorbit COMPAT_SUNOS.Poul-Henning Kamp2004-06-111-2/+2
| | | | | | | | We inherited this from the sparc32 port of BSD4.4-Lite1. We have neither a sparc32 port nor a SunOS4.x compatibility desire these days. Notes: svn path=/head/; revision=130344
* Argh. Add the mini-stack-frame back in for mcount's benefit for syscallPeter Wemm2004-06-101-0/+4
| | | | | | | stubs. Notes: svn path=/head/; revision=130322
* Make profiling work for varargs functions.. %al is an additional argumentPeter Wemm2004-06-101-0/+2
| | | | | | | | which indicates the number of xmm registers used in the varargs. This stops the explosion that happened when profiling printf() etc. Notes: svn path=/head/; revision=130321
* Insta-MFi386: ignore disabled cpu apic id's entirelyPeter Wemm2004-06-101-13/+8
| | | | Notes: svn path=/head/; revision=130315
* - Use the correct devclass name ("acpi" vs "ACPI") to detect if acpi0 isJohn Baldwin2004-06-102-3/+3
| | | | | | | | | | present and thus that the PnPBIOS probe should be skipped instead of having ACPI zero out the PnPBIOStable pointer. - Make the PnPBIOStable pointer static to i386/i386/bios.c now that that is the only place it is used. Notes: svn path=/head/; revision=130313
* Remove atdevbase and replace it's remaining uses with direct references toJohn Baldwin2004-06-103-6/+2
| | | | | | | KERNBASE instead. Notes: svn path=/head/; revision=130312
* In pmap_extract_and_hold(), there is no need to mask off PG_FRAME becausePeter Wemm2004-06-081-4/+5
| | | | | | | | | | | | | pmap_extract() already does it. In pmap_enter(), opa has already been masked so don't do it again. Wrap a long line (recent transgression). Use trunc_page() in pmap_mapdev() instead of anding with PG_FRAME, since that is what we really meant. Submitted by: alc (first item) Notes: svn path=/head/; revision=130229
* Fix my silly typo in asm statement in previous commit.Peter Wemm2004-06-081-1/+1
| | | | Notes: svn path=/head/; revision=130228
* Argh. Remove stray number that slipped into the previous commit.Peter Wemm2004-06-081-1/+0
| | | | Notes: svn path=/head/; revision=130227
* Reapply rev 1.151 after enable sse/fpuinit order fixed in mp_machdep.cPeter Wemm2004-06-081-0/+4
| | | | | | | Obtained from: das Notes: svn path=/head/; revision=130226
* Set up the fpu *after* enabling SSE mode on AP'sPeter Wemm2004-06-081-3/+3
| | | | | | | Submitted by: (argh, I can't find the email) Notes: svn path=/head/; revision=130225
* Initial PG_NX support (no-execute page bit)Peter Wemm2004-06-089-154/+151
| | | | | | | | | | | - export the rest of the cpu features (and amd's features). - turn on EFER_NXE, depending on the NX amd feature bit - reorg the identcpu stuff a bit in order to stop treating the amd features as second class features (since it is now a primary feature bit set) and make it easier to export. Notes: svn path=/head/; revision=130224
* Mask pte's with PG_FRAME before passing it to PHYS_TO_VM_PAGE().. PG_NXPeter Wemm2004-06-082-17/+17
| | | | | | | | | lives in the top 12 'available' bits. atop() in the PHYS_TO_VM_PAGE() macro only masks off the lower bits (by accident) and the upper bits in the 64 bit ptes turn into "interesting" index values. Notes: svn path=/head/; revision=130223
* Use trunc_page(va) when we mean it rather than anding it with PG_FRAMEPeter Wemm2004-06-081-2/+2
| | | | | | | | (which doesn't work all that well when there are bits at the top that are masked by PG_FRAME) Notes: svn path=/head/; revision=130221
* Fix a serious problem that manifested during swap, and a few other times.Peter Wemm2004-06-071-18/+60
| | | | | | | | | | | | | | pmap_remove() would be called with a huge range and we'd stride across it in only 2MB chunks. This would manifest as massive cpu time and a largely unresponsive system during hard swap. Instead, check the higher page directories which means we can run pmap_remove() in just a few hundred loop iterations instead of millions since we can process address space in chunks of 512GB and 1GB as well as 2MB. Eternal thanks to: tmm Notes: svn path=/head/; revision=130219
* Be a little more consistent in the naming of the PML4 defines.Peter Wemm2004-06-071-3/+3
| | | | Notes: svn path=/head/; revision=130218
* Back out revision 1.150, since dwmalone reports that it causes a panicDavid Schultz2004-06-061-4/+0
| | | | | | | upon startup on his machine. Notes: svn path=/head/; revision=130140
* Initialize the MXCSR to the appropriate default value at startup.David Schultz2004-06-051-0/+4
| | | | | | | Tested on: tjr Notes: svn path=/head/; revision=130105
* Add new bios_string() which will hunt for a string inside a given rangePoul-Henning Kamp2004-06-032-0/+23
| | | | | | | | of the BIOS. This can be used for finding arbitrary magic in the BIOS in order to recognize particular platforms. Notes: svn path=/head/; revision=130040
* MFi386: add ixgp devicePeter Wemm2004-06-031-0/+1
| | | | Notes: svn path=/head/; revision=130037
* MFi386: apic intpin programming updates etc.Peter Wemm2004-06-034-110/+131
| | | | Notes: svn path=/head/; revision=130035
* MFi386: remove debug printfPeter Wemm2004-06-031-2/+0
| | | | Notes: svn path=/head/; revision=130034
* Move module.h include to the same place as on i386 for diff reduction.Peter Wemm2004-06-031-1/+1
| | | | Notes: svn path=/head/; revision=130033
* MFi386: move cpu_nameclass struct next to its only consumerPeter Wemm2004-06-032-6/+4
| | | | Notes: svn path=/head/; revision=130032
* Remove checks for curthread == NULL - it can't happen.Tim J. Robbins2004-06-031-5/+3
| | | | Notes: svn path=/head/; revision=130028
* Add missing <sys/module.h> instances which were shadowed by the nestedPoul-Henning Kamp2004-06-035-0/+5
| | | | | | | include in <sys/kernel.h> Notes: svn path=/head/; revision=130025
* Move TDF_DEADLKTREAT into td_pflags (and rename it accordingly) to avoidTim J. Robbins2004-06-031-9/+4
| | | | | | | | | | having to acquire sched_lock when manipulating it in lockmgr(), uiomove(), and uiomove_fromphys(). Reviewed by: jhb Notes: svn path=/head/; revision=130023
* Move TDF_SA from td_flags to td_pflags (and rename it accordingly)Tim J. Robbins2004-06-021-1/+1
| | | | | | | | | | so that it is no longer necessary to hold sched_lock while manipulating it. Reviewed by: davidxu Notes: svn path=/head/; revision=129989