summaryrefslogtreecommitdiffstats
path: root/arch/x86_64
Commit message (Collapse)AuthorAgeFilesLines
* [PATCH] x86: Detect CFI support in the assembler at runtimeAndi Kleen2006-09-261-0/+3
| | | | | | | | | | | | | | ... instead of using a CONFIG option. The config option still controls if the resulting executable actually has unwind information. This is useful to prevent compilation errors when users select CONFIG_STACK_UNWIND on old binutils and also allows to use CFI in the future for non kernel debugging applications. Cc: jbeulich@novell.com Cc: sam@ravnborg.org Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] Use BUILD_BUG_ON in apic.c build sanity checkingAndi Kleen2006-09-261-4/+1
| | | | | | Makes code a little shorter. Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] Fix up some non linuxy style in ACPI functions in mpparse.cAndi Kleen2006-09-261-41/+16
| | | | | | | No functional changes. Cc: len.brown@intel.com Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] Remove some unneeded ACPI externs in mpparse.cAndi Kleen2006-09-261-9/+0
| | | | | | | They are not used in this file so remove them. i386 didn't have them either. Cc: len.brown@intel.com Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] Remove useless wrapper in mpparse.c codeAndi Kleen2006-09-261-10/+1
| | | | | | | It used to contain support code for NUMAQ, but that is long gone already on 64bit. Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] Replace mp bus array with bitmap for bus not pciAndi Kleen2006-09-262-75/+26
| | | | | | | Since we only support PCI and ISA legacy busses now there is no need to have an full array with checking. Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] Move early chipset quirks out to new fileAndi Kleen2006-09-264-103/+120
| | | | | | | | | They did not really belong into io_apic.c. Move them into a new file and clean it up a bit. Also remove outdated ATI quirk that was obsolete, Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] Remove MPS table APIC renumberingAndi Kleen2006-09-261-71/+0
| | | | | | | | | | | | | | The MPS table specification says that the operating system should renumber the IO-APICs following the table as needed. However in ACPI this is not allowed or neeeded and all x86-64 systems are ACPI compliant. The code was already disabled on some systems because it caused problems there. Remove it completely now. CC: mdomsch@dell.com Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] x86: AUX_DEVICE_INFO is one byte long, use 'movb'Diego Calleja2006-09-261-2/+2
| | | | | | | | | | | | | | | | | | Bugzilla #6552 says: "In arch/i386/boot/setup.S, movw is used instead of movb for PS/2 mouse information, although it is unsigned char. This does not harm, because the jmp instruction overwritten by movw is used before executing movw, and never be used again" I've no idea if this is a real bug or how it gets fixed, so I'm submitting it for review instead of letting it die of boredom in bugzilla. Aditionally to i386, I've changed x86-64, which mirrors the same code. Credits to Yoshinori K. Okuji, who found the problem and suggested a fix. Signed-off-by: Diego Calleja <diegocg@gmail.com> Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] Factor out common io apic routing entry accessAndi Kleen2006-09-261-41/+41
| | | | | | | | | | | | The IO APIC code had lots of duplicated code to read/write 64bit routing entries into the IO-APIC. Factor this out int common read/write functions In a few cases the IO APIC lock is taken more often now, but this isn't a problem because it's all initialization/shutdown only slow path code. Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] i386/x86-64: Remove obsolete sanity check in mptable parsingAndi Kleen2006-09-261-13/+0
| | | | | | It apparently has never triggered in many years. Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] Remove obsolete PIC modeAndi Kleen2006-09-263-72/+29
| | | | | | | | | | | PIC mode is an outdated way to drive the APICs that was used on some early MP boards. It is not supported in the ACPI model. It is unlikely to be ever configured by any x86-64 system Remove it thus. Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] Remove leftover MCE/EISA supportAndi Kleen2006-09-262-70/+3
| | | | | | | No 64bit EISA or Microchannel systems ever. Remove the left over code in the IO-APIC driver and the mptable parser Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] Remove pirq overwrite supportAndi Kleen2006-09-261-55/+0
| | | | | | | | | | This was an old workaround for broken MP-BIOS. The user could specify overwrites on the command line. I've never seen it being used for anything on 64bit. So get rid of it for now. Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] Add some comments to entry.SAndi Kleen2006-09-261-3/+15
| | | | | And remove some old obsolete ones. Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] Remove old "focus disabled" chipset errata workaroundAndi Kleen2006-09-261-26/+2
| | | | | | | The new systems already use focus disabled and the comment was completely outdated. Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] Remove apic mismatch counterAndi Kleen2006-09-261-6/+0
| | | | | | Nobody has been setting the mismatch counter and the ifdef was never set so remove it. Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] Remove all ifdefs for local/io apicAndi Kleen2006-09-2612-58/+3
| | | | | | | | | | IO-APIC or local APIC can only be disabled at runtime anyways and Kconfig has forced these options on for a long time now. The Kconfigs are kept only now for the benefit of the shared acpi boot.c code. Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] Add some comments what tce.c actually doesAndi Kleen2006-09-261-0/+2
| | | | Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] Remove leftover CVS Id in thunk.SAndi Kleen2006-09-261-7/+6
| | | | | | And move the comment to a proper place. Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] Add proper alignment to ENTRYAndi Kleen2006-09-261-2/+1
| | | | | | | | Previously it didn't align. Use the same one as the C compiler in blended mode, which is good for K8 and Core2 and doesn't hurt on P4. Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] Clean up read write lock assemblyAndi Kleen2006-09-263-31/+39
| | | | | | | | | | | | | | | - Move the slow path fallbacks to their own assembly files This makes them much easier to read and is needed for the next change. - Add CFI annotations for unwinding (XXX need review) - Remove constant case which can never happen with out of line spinlocks - Use patchable LOCK prefixes - Don't use lock sections anymore for inline code because they can't be expressed by the unwinder (this adds one taken jump to the lock fast path) Cc: jbeulich@novell.com Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] Simplify profile_pc on x86-64Andi Kleen2006-09-261-13/+8
| | | | | | | Use knowledge about EFLAGS layout (bits 22:63 are always 0) to distingush EFLAGS word and kernel address in the spin lock stack frame. Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] i386/x86-64: Don't randomize stack top when no randomization ↵Andi Kleen2006-09-261-1/+1
| | | | | | | | | personality is set Based on patch from Frank van Maarseveen <frankvm@frankvm.com>, but extended. Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] A few trivial spelling and grammar fixesAdam Henley2006-09-263-4/+4
| | | | | | | | | | | | | | | | | A few trivial spelling and grammar mistakes picked up in "arch/x86_64/aperture.c", "arch/x86_64/crash.c" and "arch/x86_64/apic.c". I think all are correct fixes but am ever aware of my fallibility :o) This is my first patch submission so all feedback is appreciated, esp. WRT CCing to Linus, Andi and trivial@kernel.org, is this correct? And which is the most appropriate kernel version to diff against? If any. Should apply cleanly to 2.6.18-rc1 Signed-off-by: Adam Henley <adamazing@gmail.com> Signed-off-by: Andi Kleen <ak@suse.de> - adam
* [PATCH] x86-64 TIF flags for debug regs and io bitmap in ctxswStephane Eranian2006-09-264-33/+53
| | | | | | | | | | | | | | | | | | | | Hello, Following my discussion with Andi. Here is a patch that introduces two new TIF flags to simplify the context switch code in __switch_to(). The idea is to minimize the number of cache lines accessed in the common case, i.e., when neither the debug registers nor the I/O bitmap are used. This patch covers the x86-64 modifications. A patch for i386 follows. Changelog: - add TIF_DEBUG to track when debug registers are active - add TIF_IO_BITMAP to track when I/O bitmap is used - modify __switch_to() to use the new TIF flags <signed-off-by>: eranian@hpl.hp.com Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] Clean up asm/smp.h includesAndi Kleen2006-09-261-2/+0
| | | | | | | No need to include it from entry.S Drop all the #ifdef __ASSEMBLY__ Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] x86: Add portable getcpu callAndi Kleen2006-09-261-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | For NUMA optimization and some other algorithms it is useful to have a fast to get the current CPU and node numbers in user space. x86-64 added a fast way to do this in a vsyscall. This adds a generic syscall for other architectures to make it a generic portable facility. I expect some of them will also implement it as a faster vsyscall. The cache is an optimization for the x86-64 vsyscall optimization. Since what the syscall returns is an approximation anyways and user space often wants very fast results it can be cached for some time. The norma methods to get this information in user space are relatively slow The vsyscall is in a better position to manage the cache because it has direct access to a fast time stamp (jiffies). For the generic syscall optimization it doesn't help much, but enforce a valid argument to keep programs portable I only added an i386 syscall entry for now. Other architectures can follow as needed. AK: Also added some cleanups from Andrew Morton Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] Add the vgetcpu vsyscallVojtech Pavlik2006-09-264-9/+93
| | | | | | | | | | | | | | | | | | | | This patch adds a vgetcpu vsyscall, which depending on the CPU RDTSCP capability uses either the RDTSCP or CPUID to obtain a CPU and node numbers and pass them to the program. AK: Lots of changes over Vojtech's original code: Better prototype for vgetcpu() It's better to pass the cpu / node numbers as separate arguments to avoid mistakes when going from SMP to NUMA. Also add a fast time stamp based cache using a user supplied argument to speed things more up. Use fast method from Chuck Ebbert to retrieve node/cpu from GDT limit instead of CPUID Made sure RDTSCP init is always executed after node is known. Drop printk Signed-off-by: Vojtech Pavlik <vojtech@suse.cz> Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] Add initalization of the RDTSCP auxilliary valuesVojtech Pavlik2006-09-262-12/+37
| | | | | | | | | | | This patch adds initalization of the RDTSCP auxilliary values to CPU numbers to time.c. If RDTSCP is available, the MSRs are written with the respective values. It can be later used to initalize per-cpu timekeeping variables. AK: Some cleanups. Move externs into headers and fix CPU hotplug. Signed-off-by: Vojtech Pavlik <vojtech@suse.cz> Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] x86: i386/x86-64 Add nmi watchdog support for new Intel CPUsVenkatesh Pallipadi2006-09-261-5/+125
| | | | | | | | | | | | | | | | | | | | AK: This redoes the changes I temporarily reverted. Intel now has support for Architectural Performance Monitoring Counters ( Refer to IA-32 Intel Architecture Software Developer's Manual http://www.intel.com/design/pentium4/manuals/253669.htm ). This feature is present starting from Intel Core Duo and Intel Core Solo processors. What this means is, the performance monitoring counters and some performance monitoring events are now defined in an architectural way (using cpuid). And there will be no need to check for family/model etc for these architectural events. Below is the patch to use this performance counters in nmi watchdog driver. Patch handles both i386 and x86-64 kernels. Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] kdump x86_64 nmi event notification fixVivek Goyal2006-09-261-2/+2
| | | | | | | | | | | After a crash we should wait for NMI IPI event and not for external NMI or NMI watchdog tick. Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com> Signed-off-by: Andi Kleen <ak@suse.de> Cc: Don Zickus <dzickus@redhat.com> Cc: Andi Kleen <ak@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org>
* [PATCH] Fix up panic messages for different NMI panicsAndi Kleen2006-09-262-6/+6
| | | | | | | | | | | | | | When a unknown NMI happened the panic would claim a NMI watchdog timeout. Also it would check the variable set by nmi_watchdog=panic and panic then. Fix up the panic message to be generic Unconditionally panic on unknown NMI when panic on unknown nmi is enabled. Noticed by Jan Beulich Cc: jbeulich@novell.com Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] i386/x86-64: Fix NMI watchdog suspend/resumeShaohua Li2006-09-262-7/+28
| | | | | | | | | | | | | | | | | | | | | Making NMI suspend/resume work with SMP. We use CPU hotplug to offline APs in SMP suspend/resume. Only BSP executes sysdev's .suspend/.resume method. APs should follow CPU hotplug code path. And: +From: Don Zickus <dzickus@redhat.com> Makes the start/stop paths of nmi watchdog more robust to handle the suspend/resume cases more gracefully. AK: I merged the two patches together Signed-off-by: Shaohua Li <shaohua.li@intel.com> Signed-off-by: Andi Kleen <ak@suse.de> Cc: Don Zickus <dzickus@redhat.com> Cc: Andi Kleen <ak@muc.de> Signed-off-by: Andrew Morton <akpm@osdl.org>
* [PATCH] x86: x86 clean up nmi panic messagesDon Zickus2006-09-261-7/+14
| | | | | | | | | Clean up some of the output messages on the nmi error paths to make more sense when they are displayed. This is mainly a cosmetic fix and shouldn't impact any normal code path. Signed-off-by: Don Zickus <dzickus@redhat.com> Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] x86: Allow users to force a panic on NMIDon Zickus2006-09-261-0/+6
| | | | | | | | | | | | | | | | | | | | | To quote Alan Cox: The default Linux behaviour on an NMI of either memory or unknown is to continue operation. For many environments such as scientific computing it is preferable that the box is taken out and the error dealt with than an uncorrected parity/ECC error get propogated. A small number of systems do generate NMI's for bizarre random reasons such as power management so the default is unchanged. In other respects the new proc/sys entry works like the existing panic controls already in that directory. This is separate to the edac support - EDAC allows supported chipsets to handle ECC errors well, this change allows unsupported cases to at least panic rather than cause problems further down the line. Signed-off-by: Don Zickus <dzickus@redhat.com> Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] x86: Add abilty to enable/disable nmi watchdog from procfs (update)Don Zickus2006-09-261-17/+4
| | | | | | | | | | | | | | | | Adds a new /proc/sys/kernel/nmi_watchdog call that will enable/disable the nmi watchdog. By entering a non-zero value here, a user can enable the nmi watchdog to monitor the online cpus in the system. By entering a zero value here, a user can disable the nmi watchdog and free up a performance counter which could then be utilized by the oprofile subsystem, otherwise oprofile may be short a counter when in use. Signed-off-by: Don Zickus <dzickus@redhat.com> Signed-off-by: Andi Kleen <ak@suse.de> Cc: Andi Kleen <ak@muc.de> Signed-off-by: Andrew Morton <akpm@osdl.org>
* [PATCH] x86: Add abilty to enable/disable nmi watchdog with sysctlDon Zickus2006-09-261-0/+48
| | | | | | | | Adds a new /proc/sys/kernel/nmi call that will enable/disable the nmi watchdog. Signed-off-by: Don Zickus <dzickus@redhat.com> Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] i386/x86-64: Remove un/set_nmi_callback and ↵Don Zickus2006-09-262-97/+25
| | | | | | | | | | | | | reserve/release_lapic_nmi functions Removes the un/set_nmi_callback and reserve/release_lapic_nmi functions as they are no longer needed. The various subsystems are modified to register with the die_notifier instead. Also includes compile fixes by Andrew Morton. Signed-off-by: Don Zickus <dzickus@redhat.com> Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] Add ppoll/pselect syscallsAndi Kleen2006-09-261-2/+2
| | | | | | Needed TIF_RESTORE_SIGMASK first Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] Add TIF_RESTORE_SIGMASKAndi Kleen2006-09-262-64/+46
| | | | | | | | | | We need TIF_RESTORE_SIGMASK in order to support ppoll() and pselect() system calls. This patch originally came from Andi, and was based heavily on David Howells' implementation of same on i386. I fixed a typo which was causing do_signal() to use the wrong signal mask. Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] x86: Cleanup NMI interrupt pathDon Zickus2006-09-262-11/+23
| | | | | | | | | | | This patch cleans up the NMI interrupt path. Instead of being gated by if the 'nmi callback' is set, the interrupt handler now calls everyone who is registered on the die_chain and additionally checks the nmi watchdog, reseting it if enabled. This allows more subsystems to hook into the NMI if they need to (without being block by set_nmi_callback). Signed-off-by: Don Zickus <dzickus@redhat.com> Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] Add SMP support on x86_64 to reservation frameworkDon Zickus2006-09-262-141/+288
| | | | | | | | | | | This patch includes the changes to make the nmi watchdog on x86_64 SMP aware. A bunch of code was moved around to make it simpler to read. In addition, it is now possible to determine if a particular NMI was the result of the watchdog or not. This feature allows the kernel to filter out unknown NMIs easier. Signed-off-by: Don Zickus <dzickus@redhat.com> Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] x86: Add performance counter reservation framework for UP kernelsDon Zickus2006-09-261-40/+138
| | | | | | | | | | | | | | | | | | Adds basic infrastructure to allow subsystems to reserve performance counters on the x86 chips. Only UP kernels are supported in this patch to make reviewing easier. The SMP portion makes a lot more changes. Think of this as a locking mechanism where each bit represents a different counter. In addition, each subsystem should also reserve an appropriate event selection register that will correspond to the performance counter it will be using (this is mainly neccessary for the Pentium 4 chips as they break the 1:1 relationship to performance counters). This will help prevent subsystems like oprofile from interfering with the nmi watchdog. Signed-off-by: Don Zickus <dzickus@redhat.com> Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] x86: Temporarily revert parts of the Core 2 nmi nmi watchdog supportAndi Kleen2006-09-261-76/+5
| | | | | | This makes merging easier. They are readded a few patches later. Signed-off-by: Andi Kleen <ak@suse.de>
* [PATCH] Update defconfigAndi Kleen2006-09-261-31/+78
| | | | Signed-off-by: Andi Kleen <ak@suse.de>
* [CRYPTO] api: Get rid of flags argument to setkeyHerbert Xu2006-09-211-2/+3
| | | | | | | | | | | | | | | Now that the tfm is passed directly to setkey instead of the ctx, we no longer need to pass the &tfm->crt_flags pointer. This patch also gets rid of a few unnecessary checks on the key length for ciphers as the cipher layer guarantees that the key length is within the bounds specified by the algorithm. Rather than testing dia_setkey every time, this patch does it only once during crypto_alloc_tfm. The redundant check from crypto_digest_setkey is also removed. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
* [CRYPTO] twofish: x86-64 assembly versionJoachim Fritschi2006-09-213-0/+424
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The patch passed the trycpt tests and automated filesystem tests. This rewrite resulted in some nice perfomance increase over my last patch. Short summary of the tcrypt benchmarks: Twofish Assembler vs. Twofish C (256bit 8kb block CBC) encrypt: -27% Cycles decrypt: -23% Cycles Twofish Assembler vs. AES Assembler (128bit 8kb block CBC) encrypt: +18% Cycles decrypt: +15% Cycles Twofish Assembler vs. AES Assembler (256bit 8kb block CBC) encrypt: -9% Cycles decrypt: -8% Cycles Full Output: http://homepages.tu-darmstadt.de/~fritschi/twofish/tcrypt-speed-twofish-c-x86_64.txt http://homepages.tu-darmstadt.de/~fritschi/twofish/tcrypt-speed-twofish-asm-x86_64.txt http://homepages.tu-darmstadt.de/~fritschi/twofish/tcrypt-speed-aes-asm-x86_64.txt Here is another bonnie++ benchmark with encrypted filesystems. Most runs maxed out the hd. It should give some idea what the module can do for encrypted filesystem performance even though you can't see the full numbers. http://homepages.tu-darmstadt.de/~fritschi/twofish/output_20060610_130806_x86_64.html Signed-off-by: Joachim Fritschi <jfritschi@freenet.de> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
* Revert mmiocfg heuristics and blacklist changesLinus Torvalds2006-09-192-24/+39
| | | | | | | | | | | | | | | | | | | This reverts commits 11012d419cfc0e0f78ca356aca03674217910124 and 40dd2d20f220eda1cd0da8ea3f0f9db8971ba237, which allowed us to use the MMIO accesses for PCI config cycles even without the area being marked reserved in the e820 memory tables. Those changes were needed for EFI-environment Intel macs, but broke some newer Intel 965 boards, so for now it's better to revert to our old 2.6.17 behaviour and at least avoid introducing any new breakage. Andi Kleen has a set of patches that work with both EFI and the broken Intel 965 boards, which will be applied once they get wider testing. Cc: Arjan van de Ven <arjan@infradead.org> Cc: Edgar Hucek <hostmaster@ed-soft.at> Cc: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] syscall class hookup for all normal targetsAl Viro2006-09-121-0/+4
| | | | | | | Take default arch/*/kernel/audit.c to lib/, have those with special needs (== biarch) define AUDIT_ARCH in their Kconfig. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
OpenPOWER on IntegriCloud