summaryrefslogtreecommitdiffstats
path: root/sys/i386
Commit message (Collapse)AuthorAgeFilesLines
* Remove the support for using non-mpsafe filesystem modules.kib2012-10-221-8/+2
| | | | | | | | | | | | In particular, do not lock Giant conditionally when calling into the filesystem module, remove the VFS_LOCK_GIANT() and related macros. Stop handling buffers belonging to non-mpsafe filesystems. The VFS_VERSION is bumped to indicate the interface change which does not result in the interface signatures changes. Conducted and reviewed by: attilio Tested by: pho
* This isn't functionally identical. In some cases a hint to disableeadler2012-10-222-0/+6
| | | | | | | | unit 0 would in fact disable all units. This reverts r241856 Approved by: cperciva (implicit)
* The 'testing memory' patch gets printed too many timeseadler2012-10-221-2/+0
| | | | Approved by: cperciva (implicit)
* Now that device disabling is generic, remove extraneous code from theeadler2012-10-222-6/+0
| | | | | | | | device drivers that used to provide this feature. Reviewed by: des Approved by: cperciva MFC after: 1 week
* Explain the upcoming delay by printing a message when the kerneleadler2012-10-221-0/+2
| | | | | | | | is about to begin testing memory. Reviewed by: dteske, adri Approved by: cperciva MFC after: 1 week
* MFamd64: add machdep.uprintf_signal.kib2012-10-141-0/+19
| | | | MFC after: 1 week
* pciereg_cfg*: use assembly to access the mem-mapped cfg spaceavg2012-10-141-6/+20
| | | | | | | | | AMD BKDG for CPU families 10h and later requires that the memory mapped config is always read into or written from al/ax/eax register. Discussed with: kib, alc Reviewed by: kib (earlier version) MFC after: 25 days
* Replace all uses of the vm page queues lock by a new R/W lock.alc2012-10-123-61/+80
| | | | | | | Unfortunately, this lock cannot be defined as static under Xen because it is (ab)used to serialize queued page table changes. Tested by: sbruno
* MFi386 r241356alc2012-10-101-0/+9
| | | | | | Add several asserts. MFC after: 3 days
* Revert previous commit...kevlo2012-10-103-3/+3
| | | | Pointyhat to: kevlo (myself)
* Add an unified macro to deny ability from the compiler to reorderattilio2012-10-091-2/+2
| | | | | | | | | | instruction loads/stores at its will. The macro __compiler_membar() is currently supported for both gcc and clang, but kernel compilation will fail otherwise. Reviewed by: bde, kib Discussed with: dim, theraven MFC after: 2 weeks
* Reverts r234074,234105,234564,234723,234989,235231-235232 and part ofattilio2012-10-093-5/+6
| | | | | | | | r234247. Use, instead, the static intializer introduced in r239923 for x86 and sparc64 intr_cpus, unwinding the code to the initial version. Reviewed by: marius
* Prefer NULL over 0 for pointerskevlo2012-10-093-3/+3
|
* Add several asserts to i386 pmap, which mostly state that pv entry shallkib2012-10-081-0/+9
| | | | | | | | have corresponding pte. Reviewed by: alc Tested by: pho MFC after: 3 days
* In a few places, like the implementation of ptrace(), a thread may callalc2012-10-082-12/+16
| | | | | | | | | | | | | | | | | | | | | upon pmap_enter() to create a mapping within a different address space, i.e., not the thread's own address space. On i386, this entails the creation of a temporary mapping to the affected page table page (PTP). In general, pmap_enter() will read from this PTP, allocate a PV entry, and write to this PTP. The trouble comes when the system is short of memory. In order to allocate a new PV entry, an older PV entry has to be reclaimed. Reclaiming a PV entry involves destroying a mapping, which requires access to the affected PTP. Thus, the PTP mapped at the beginning of pmap_enter() is no longer mapped at the end of pmap_enter(), which leads to pmap_enter() modifying the wrong PTP. To address this problem, pmap_pv_reclaim() is changed to use an alternate method of mapping PTPs. Update a related comment. Reported by: pho Diagnosed by: kib MFC after: 5 days
* Add the mps(4) driver to the i386 GENERIC config file. LSI has tested itken2012-10-011-0/+1
| | | | | | | on i386 and verified that it works. Submitted by: Harald Schmalzbauer, John Baldwin, Kashyap Desai MFC after: 3 days
* Add missing header needed by free(9).kevlo2012-09-301-0/+1
| | | | Spotted by: David Wolfskill <david at catwhisker dot org>
* Free result of device_get_children(9).kevlo2012-09-301-0/+1
|
* - Re-shuffle the <machine/pc/bios.h> headers to move all kernel-specificjhb2012-09-281-73/+103
| | | | | | | | | | | bits under #ifdef _KERNEL but leave definitions for various structures defined by standards ($PIR table, SMAP entries, etc.) available to userland. - Consolidate duplicate SMBIOS table structure definitions in ipmi(4) and smbios(4) in <machine/pc/bios.h> and make them available to userland. MFC after: 2 weeks
* Eliminate a stale comment. It describes another use case for the pmap inalc2012-09-282-14/+0
| | | | Mach that doesn't exist in FreeBSD.
* After r205013, amd64 and i386 CPU family and model IDs were printed outdim2012-09-211-2/+2
| | | | | | in hexadecimal, but without any 0x prefix, which can be very misleading. MFC after: 3 days
* Integrate nvme(4) and nvd(4) into the amd64 and i386 builds.jimharris2012-09-171-0/+5
| | | | Sponsored by: Intel
* s/teh/the/geadler2012-09-141-1/+1
| | | | | Approved by: cperciva MFC after: 3 days
* Rename the IVY_RNG option to RDRAND_RNG.kib2012-09-131-1/+1
| | | | | Based on submission by: Arthur Mesh <arthurmesh@gmail.com> MFC after: 2 weeks
* Simplify pmap_unmapdev(). Since kmem_free() eventually calls pmap_remove(),alc2012-09-102-10/+2
| | | | | | | | | | | | | pmap_unmapdev()'s own direct efforts to destroy the page table entries are redundant, so eliminate them. Don't set PTE_W on the page table entry in pmap_kenter{,_attr}() on MIPS. Setting PTE_W on MIPS is inconsistent with the implementation of this function on other architectures. Moreover, PTE_W should not be set, unless the pmap's wired mapping count is incremented, which pmap_kenter{,_attr}() doesn't do. MFC after: 10 days
* userret() already checks for td_locks when INVARIANTS is enabled, soattilio2012-09-081-1/+0
| | | | | | | there is no need to check if Giant is acquired after it. Reviewed by: kib MFC after: 1 week
* Add support for new Intel on-CPU Bull Mountain random numberkib2012-09-051-0/+2
| | | | | | | | | | | | | | | | | | | generator, found on IvyBridge and supposedly later CPUs, accessible with RDRAND instruction. From the Intel whitepapers and articles about Bull Mountain, it seems that we do not need to perform post-processing of RDRAND results, like AES-encryption of the data with random IV and keys, which was done for Padlock. Intel claims that sanitization is performed in hardware. Make both Padlock and Bull Mountain random generators support code covered by kernel config options, for the benefit of people who prefer minimal kernels. Also add the tunables to disable hardware generator even if detected. Reviewed by: markm, secteam (simon) Tested by: bapt, Michael Moll <kvedulv@kvedulv.de> MFC after: 3 weeks
* Rename {_,}pmap_unwire_pte_hold() to {_,}pmap_unwire_ptp() and update thealc2012-09-052-34/+36
| | | | | | | | | | comment describing them. Both the function names and the comment had grown stale. Quite some time has passed since these pmap implementations last used the page's hold count to track the number of valid mapping within a page table page. Also, returning TRUE from pmap_unwire_ptp() rather than _pmap_unwire_ptp() eliminates a few instructions from callers like pmap_enter_quick_locked() where pmap_unwire_ptp()'s return value is used directly by a conditional statement.
* Add hpt27xx to GENERIC kernel for amd64 and i386 systems.delphij2012-09-041-0/+1
| | | | MFC after: 2 weeks
* Fix duplicate entries for mwl(4):jhb2012-09-041-5/+0
| | | | | | | - Move mwlfw from {amd64,i386}/conf/NOTES to sys/conf/NOTES (mwl(4) is already present in sys/conf/NOTES). - Remove duplicate mwl(4) entries from {amd64,i386}/conf/NOTES. - While here, add a description to the sfxge line in amd64/conf/NOTES.
* Remove the argument-less .align directive in sys/i386/bios/smapi_bios.S.dim2012-08-291-1/+0
| | | | | | | | Specifying no argument is undocumented in the gas manual, and clang's integrated assembler refuses to parse it. Also, removing it causes no change at all in the resulting object file. MFC after: 1 week
* Fix misspelled "Infiniband".jhb2012-08-281-1/+1
| | | | | Submitted by: gcooper MFC after: 3 days
* Parly revert r239255: reinstate a default maxswzone on i386, where KVA isdes2012-08-271-0/+14
| | | | scarce, but set it slightly higher so we can handle 8 GB of swap.
* Grammar fix: s/NIC's/NICs/gjb2012-08-262-2/+2
| | | | MFC after: 3 days
* As discussed on -current, remove the hardcoded default maxswzone.des2012-08-141-8/+0
| | | | MFC after: 3 weeks
* Remove the deassert INIT IPI from the IPI startup sequence for APs.jhb2012-08-131-16/+1
| | | | | | | | | It is not listed in the boot sequence in the MP specification (1.4), and it is explicitly ignored on modern CPUs. It was only ever required when bootstrapping systems with external APICs (that is, SMP machines with 486s), which FreeBSD has never supported (and never will). While here, tidy some comments and remove some banal ones.
* Add a 10 millisecond delay after sending the initial INIT IPI. Thisjhb2012-08-131-1/+2
| | | | | | matches the algorithm in the MP specification (1.4). Previously we were sending out the deassert INIT IPI immediately after the initial INIT IPI was sent.
* Build modules along with the XENHVM kernels.cperciva2012-08-131-2/+0
| | | | | No objections from: freebsd-xen mailing list MFC after: 1 week
* Eliminate an unnecessary acquisition and release of the page queues lockalc2012-08-101-2/+0
| | | | | | | from pmap_pte(). PT_SET_MA() is not a queued mapping update, but instead an immediate mapping update, so the page queues lock is not required here. Reviewed by: cperciva
* Add lfence().kib2012-08-011-0/+7
| | | | MFC after: 1 week
* Regen.jhb2012-07-305-7/+7
|
* The linux_lstat() system call accepts a pointer to a 'struct l_stat', not ajhb2012-07-301-1/+1
| | | | 'struct ostat'.
* Change (unused) prototype for stmxcsr() to match reality.kib2012-07-301-1/+1
| | | | | Noted by: jhb MFC after: 1 week
* MFamd64 r238623:kib2012-07-267-32/+55
| | | | | | | Introduce curpcb magic variable. Requested and reviewed by: bde MFC after: 3 weeks
* MFCamd64 r238598:kib2012-07-213-5/+35
| | | | | | | Provide siginfo.si_code for floating point errors when error occurs using the SSE math processor. MFC after: 3 weeks
* MFamd64 r238668:kib2012-07-211-16/+13
| | | | | | | Stop clearing x87 exceptions in the #MF handler. Requested by: bde MFC after: 1 week
* MFamd64 r238597:kib2012-07-211-0/+2
| | | | | | Add stmxcsr. MFC after: 3 weeks
* MFamd64 r238669:kib2012-07-211-0/+2
| | | | | | | Force clean FPU state in PCB user FPU save area for PT_I386_{GET,SET}XMMREGS. Reported by: bde MFC after: 1 week
* Add a clts() wrapper around the 'clts' instruction to <machine/cpufunc.h>jhb2012-07-092-11/+18
| | | | | | | | | | | on x86 and use that to implement stop_emulating() in the fpu/npx code. Reimplement start_emulating() in the non-XEN case by using load_cr0() and rcr0() instead of the 'lmsw' and 'smsw' instructions. Intel explicitly discourages the use of 'lmsw' and 'smsw' on 80386 and later processors in the description of these instructions in Volume 2 of the ADM. Reviewed by: kib MFC after: 1 month
* Partially revert r217515 so that the mem_range_softc variable is alwaysjhb2012-07-092-2/+3
| | | | | | | present on x86 kernels. This fixes the build of kernels that include 'device acpi' but do not include 'device mem'. MFC after: 1 month
OpenPOWER on IntegriCloud