summaryrefslogtreecommitdiffstats
path: root/sys/i386
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Fix XEN build, broken in r237924.brueffer2012-07-021-2/+2
| | | | | Reported by: gcooper Pointy hat: brueffer
* Replace an unreachable panic() in vm86_getptr (been there for 13 years) withbrueffer2012-07-012-3/+3
| | | | | | | | | | a KASSERT() behind the functions's only consumer. Suggested by: kib Reviewed by: kib CID: 4494 Found with: Coverity Prevent(tm) MFC after: 2 weeks
* Add new pmap layer locks to the predefined lock order. Change the namesalc2012-06-271-1/+1
| | | | of a few existing VM locks to follow a consistent naming scheme.
* Commit changes missed from r237435. Properly calculate the signalkib2012-06-221-3/+10
| | | | | | | | | | trampoline addresses after the shared page is enabled. Handle FreeBSD ABIs without shared page support too. Reported and tested by: David Wolfskill <david catwhisker org> (previous version) Pointy hat to: kib MFC after: 1 month
* Enable shared page on i386, now it has a use for vdso_timehands.kib2012-06-222-2/+6
| | | | MFC after: 1 month
* Implement mechanism to export some kernel timekeeping data tokib2012-06-221-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | usermode, using shared page. The structures and functions have vdso prefix, to indicate the intended location of the code in some future. The versioned per-algorithm data is exported in the format of struct vdso_timehands, which mostly repeats the content of in-kernel struct timehands. Usermode reading of the structure can be lockless. Compatibility export for 32bit processes on 64bit host is also provided. Kernel also provides usermode with indication about currently used timecounter, so that libc can fall back to syscall if configured timecounter is unknown to usermode code. The shared data updates are initiated both from the tc_windup(), where a fast task is queued to do the update, and from sysctl handlers which change timecounter. A manual override switch kern.timecounter.fast_gettime allows to turn off the mechanism. Only x86 architectures export the real algorithm data, and there, only for tsc timecounter. HPET counters page could be exported as well, but I prefer to not further glue the kernel and libc ABI there until proper vdso-based solution is developed. Minimal stubs neccessary for non-x86 architectures to still compile are provided. Discussed with: bde Reviewed by: jhb Tested by: flo MFC after: 1 month
* Reserve AT_TIMEKEEP auxv entry for providing usermode the pointer tokib2012-06-221-0/+1
| | | | | | timekeeping information. MFC after: 1 week
* - Updated TOE support in the kernel.np2012-06-192-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Stateful TCP offload drivers for Terminator 3 and 4 (T3 and T4) ASICs. These are available as t3_tom and t4_tom modules that augment cxgb(4) and cxgbe(4) respectively. The cxgb/cxgbe drivers continue to work as usual with or without these extra features. - iWARP driver for Terminator 3 ASIC (kernel verbs). T4 iWARP in the works and will follow soon. Build-tested with make universe. 30s overview ============ What interfaces support TCP offload? Look for TOE4 and/or TOE6 in the capabilities of an interface: # ifconfig -m | grep TOE Enable/disable TCP offload on an interface (just like any other ifnet capability): # ifconfig cxgbe0 toe # ifconfig cxgbe0 -toe Which connections are offloaded? Look for toe4 and/or toe6 in the output of netstat and sockstat: # netstat -np tcp | grep toe # sockstat -46c | grep toe Reviewed by: bz, gnn Sponsored by: Chelsio communications. MFC after: ~3 months (after 9.1, and after ensuring MFC is feasible)
* The page flag PGA_WRITEABLE is set and cleared exclusively by the pmapalc2012-06-161-0/+1
| | | | | | | | | | | | | | | | layer, but it is read directly by the MI VM layer. This change introduces pmap_page_is_write_mapped() in order to completely encapsulate all direct access to PGA_WRITEABLE in the pmap layer. Aesthetics aside, I am making this change because amd64 will likely begin using an alternative method to track write mappings, and having pmap_page_is_write_mapped() in place allows me to make such a change without further modification to the MI VM layer. As an added bonus, tidy up some nearby comments concerning page flags. Reviewed by: kib MFC after: 6 weeks
* Oops - use the actual 11n enable option.adrian2012-06-151-1/+1
|
* Ok, ok. 802.11n can be on by default in GENERIC in -HEAD.adrian2012-06-151-0/+2
| | | | God help me.
* - Fix resumectx() prototypes to reflect reality.jkim2012-06-133-8/+5
| | | | | - For i386, simply jump to resumectx() with PCB in %ecx. - Fix a style(9) nit while I am here.
* Share IPI init and startup code of mp_machdep.c with acpi_wakeup.ciwasaki2012-06-122-44/+55
| | | | as ipi_startup().
* Some fixes for r236772.iwasaki2012-06-101-2/+2
| | | | | | | | - Remove cpuset stopped_cpus which is no longer used. - Add a short comment for cpuset suspended_cpus clearing. - Fix the un-ordered x86/acpica/acpi_wakeup.c in conf/files.amd64 and i386. Pointed-out by: attilio@
* Add x86/acpica/acpi_wakeup.c for amd64 and i386. Difference ofiwasaki2012-06-095-438/+38
| | | | | | | | | | | | | | | | | | | | | | suspend/resume procedures are minimized among them. common: - Add global cpuset suspended_cpus to indicate APs are suspended/resumed. - Remove acpi_waketag and acpi_wakemap from acpivar.h (no longer used). - Add some variables in acpi_wakecode.S in order to minimize the difference among amd64 and i386. - Disable load_cr3() because now CR3 is restored in resumectx(). amd64: - Add suspend/resume related members (such as MSR) in PCB. - Modify savectx() for above new PCB members. - Merge acpi_switch.S into cpu_switch.S as resumectx(). i386: - Merge(and remove) suspendctx() into savectx() in order to match with amd64 code. Reviewed by: attilio@, acpi@
* Various small changes to PV entry management:alc2012-06-042-26/+32
| | | | | | | | | | | | | | | | | | | Constify pc_freemask[]. pmap_pv_reclaim() Eliminate "freemask" because it was a pessimization. Add a comment about the resident count adjustment. free_pv_entry() [i386 only] Merge an optimization from amd64 (r233954). get_pv_entry() Eliminate the move to tail of the pv_chunk on the global pv_chunks list. (The right strategy needs more thought. Moreover, there were unintended differences between the amd64 and i386 implementation.) pmap_remove_pages() Eliminate unnecessary ()'s.
* free wdog_kern_pat calls in post-panic paths from under SW_WATCHDOGavg2012-06-031-4/+2
| | | | | | Those calls are useful with hardware watchdog drivers too. MFC after: 3 weeks
* Isolate the global pv list lock from data and other locks to prevent falsealc2012-06-021-1/+11
| | | | sharing within the cache.
* Use plain store for atomic_store_rel on x86, instead of implicitlykib2012-06-021-39/+39
| | | | | | | | | locked xchg instruction. IA32 memory model guarantees that store has release semantic, since stores cannot pass loads or stores. Reviewed by: bde, jhb Tested by: pho MFC after: 2 weeks
* Consistently use ACPI_SUCCESS() and ACPI_FAILURE() macros wherever possible.jkim2012-06-011-2/+1
|
* Tidy up code clutter in SMP case a bit. No functional change.jkim2012-06-011-10/+6
|
* Call AcpiSetFirmwareWakingVector() with interrupt disabled for consistency.jkim2012-06-011-2/+2
|
* Improve style(9) in the previous commit.jkim2012-06-011-3/+3
|
* Call AcpiLeaveSleepStatePrep() in interrupt disabled contextiwasaki2012-06-011-54/+57
| | | | | | | | | | | | | | | | | | (described in ACPICA source code). - Move intr_disable() and intr_restore() from acpi_wakeup.c to acpi.c and call AcpiLeaveSleepStatePrep() in interrupt disabled context. - Add acpi_wakeup_machdep() to execute wakeup MD procedures and call it twice in interrupt disabled/enabled context (ia64 version is just dummy). - Rename wakeup_cpus variable in acpi_sleep_machdep() to suspcpus in order to be shared by acpi_sleep_machdep() and acpi_wakeup_machdep(). - Move identity mapping related code to acpi_install_wakeup_handler() (i386 version) for preparation of x86/acpica/acpi_wakeup.c (MFC candidate). Reviewed by: jkim@ MFC after: 2 days
OpenPOWER on IntegriCloud