aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/asm-x86/system.h
Commit message (Collapse)AuthorAgeFilesLines
* x86/irq: local_irq_restore() should not blindly popfAndrew Cooper2013-10-221-3/+8
| | | | | | | | | | local_irq_restore() should only be concerned with possibly changing the interrupt flag. A blind popf could corrupt other system flags. While playing in this area, fixup an opencoded use of X86_EFLAGS_IF. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Acked-by: Keir Fraser <keir@xen.org>
* xen: move for_each_set_bit to xen/bitops.hStefano Stabellini2013-05-081-1/+1
| | | | | | | | Move for_each_set_bit from asm-x86/bitops.h to xen/bitops.h. Replace #include <asm/bitops.h> with #include <xen/bitops.h> everywhere. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Acked-by: Keir Fraser <keir@xen.org>
* xen: Remove x86_32 build target.Keir Fraser2012-09-121-24/+1
| | | | Signed-off-by: Keir Fraser <keir@xen.org>
* CONFIG: remove CONFIG_SMP #ifdefsAndrew Cooper2012-02-091-6/+0
| | | | | | | | CONFIG_SMP is always enabled and !CONFIG_SMP is not supported. So simplify the code a little by removing all #ifdefs. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Committed-by: Keir Fraser <keir@xen.org>
* ACPI: large cleanupJan Beulich2011-03-091-2/+0
| | | | | | | | In some cases, entire files turned out unnecessary. Of what remains, move whatever possible into .init.*, and some data items into .data.read_mostly. Signed-off-by: Jan Beulich <jbeulich@novell.com>
* x86: Remove unnecessary LOCK/LOCK_PREFIX macros.Keir Fraser2010-12-161-5/+5
| | | | | | We don't support !CONFIG_SMP. Signed-off-by: Keir Fraser <keir@xen.org>
* x86: fix MCE/NMI injectionKeir Fraser2009-12-011-0/+7
| | | | | | | | | | | | | | | | | | | | This attempts to address all the concerns raised in http://lists.xensource.com/archives/html/xen-devel/2009-11/msg01195.html, but I'm nevertheless still not convinced that all aspects of the injection handling really work reliably. In particular, while the patch here on top of the fixes for the problems menioned in the referenced mail also adds code to keep send_guest_trap() from injecting multiple events at a time, I don't think the is the right mechanism - it should be possible to handle NMI/MCE nested within each other. Another fix on top of the ones for the earlier described problems is that the vCPU affinity restore logic didn't account for software injected NMIs - these never set cpu_affinity_tmp, but due to it most likely being different from cpu_affinity it would have got restored (to a potentially random value) nevertheless. Signed-off-by: Jan Beulich <jbeulich@novell.com>
* x86: unify local_irq_XXX()Keir Fraser2008-12-111-3/+19
| | | | | | | | | | | | | | | This also removes an inconsistency in that x86-64's __save_flags() had a memory clobber, while x86_32's didn't. It further adds type checking since blindly using {pop,push}{l,q} on a memory operand of unknown size bares the risk of corrupting other data. Finally, it eliminates the redundant (with local_irq_restore()) __restore_flags() macro and renames __save_flags() to local_save_flags(), making the naming consistent with Linux (again?). Signed-off-by: Jan Beulich <jbeulich@novell.com>
* x86: rmb() can be weakened according to new Intel spec.Keir Fraser2007-11-211-0/+15
| | | | | | | | | | | | | | | Both Intel and AMD agree that, from a programmer's viewpoint: Loads cannot be reordered relative to other loads. Stores cannot be reordered relative to other stores. Intel64 Architecture Memory Ordering White Paper <http://developer.intel.com/products/processor/manuals/318147.pdf> AMD64 Architecture Programmer's Manual, Volume 2: System Programming <http://www.amd.com/us-en/assets/content_type/\ white_papers_and_tech_docs/24593.pdf> Signed-off-by: Keir Fraser <keir.fraser@eu.citrix.com>
* x86: Re-factor and clean up system.h.Keir Fraser2007-11-211-263/+104
| | | | Signed-off-by: Keir Fraser <keir.fraser@eu.citrix.com>
* x86: Make IDT/GDT/LDT updates safe.Keir Fraser2007-11-211-0/+11
| | | | | | | | | | This involves either determining that the entry will not be read/written while the update takes place, or atomically making the entry 'present', or doing the entire write atomically, as appropriate. This issue raised, and original patch provided, by Jan Beulich. Signed-off-by: Keir Fraser <keir.fraser@eu.citrix.com>
* x86: add option to display last exception records during register dumpsKeir Fraser2007-10-171-0/+4
| | | | | Signed-off-by: Jan Beulich <jbeulich@novell.com> Signed-off-by: Keir Fraser <keir@xensource.com>
* Generic and VT-d specific Xen header changes for PCI passthru.kfraser@localhost.localdomain2007-09-121-0/+3
| | | | | Signed-off-by: Allen Kay <allen.m.kay@intel.com> Signed-off-by: Guy Zana <guy@neocleus.com>
* x86: Remove (most) Centaur CPU support. Only VIA C7 can work, as itkfraser@localhost.localdomain2007-08-291-26/+0
| | | | | | | | has CMOV support. Leave a small amount of centaur.c around to support that. MTRR code goes entirely, as 686-class Centaur CPUs have generic MTRR support. Signed-off-by: Keir Fraser <keir@xensource.com>
* Provide cpu hotplug support to Xen. Note this hotplugkfraser@localhost.localdomain2007-07-111-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | support is specific to PM, instead of for a run-time single CPU hotplug which can be a separate task. See embedded comment: /* * XXX: One important thing missed here is to migrate vcpus * from dead cpu to other online ones and then put whole * system into a stop state. It assures a safe environment * for a cpu hotplug/remove at normal running state. * * However for xen PM case, at this point: * -> All other domains should be notified with PM event, * and then in following states: * * Suspend state, or * * Paused state, which is a force step to all * domains if they do nothing to suspend * -> All vcpus of dom0 (except vcpu0) have already beem * hot removed * with the net effect that all other cpus only have idle vcpu * running. In this special case, we can avoid vcpu migration * then and system can be considered in a stop state. * * So current cpu hotplug is a special version for PM specific * usage, and need more effort later for full cpu hotplug. * (ktian1) */ Signed-off-by: Kevin Tian <kevin.tian@intel.com> Signed-off-by: Keir Fraser <keir@xensource.com>
* Simplify Unisys ES7000 code in light of the fact we do not supportkfraser@localhost.localdomain2007-07-101-2/+0
| | | | | | legacy boxes with very non-standard APIC setup. From: Raj Subrahmanian <raj.subrahmanian@unisys.com> Signed-off-by: Keir Fraser <keir@xensource.com>
* Improve consistency of type-attribute usage (volatile/const).kfraser@localhost.localdomain2006-12-211-1/+1
| | | | | From: Christoph Egger <Christoph.Egger@amd.com> Signed-off-by: Keir Fraser <keir@xensource.com>
* Various HVM clean-ups.shand@kneesaa.uk.xensource.com2006-08-151-4/+0
| | | | | | Signed-off-by: Steven Hand <steven@xensource.com>
* Fix segment-register dumping in show_registers().kaf24@firebug.cl.cam.ac.uk2006-02-141-0/+6
| | | | | | Signed-off-by: Keir Fraser <keir@xensource.com>
* bitkeeper revision 1.1555 (4294b5f0B3iu-SnB9loIMnLXO0loTA)kaf24@firebug.cl.cam.ac.uk2005-05-251-0/+2
| | | | | | | Ported genapic to Xen: support for bigsmp and numa platforms such as es7000. Signed-off-by: Keir Fraser <keir@xensource.com>
* bitkeeper revision 1.1551 (4294789ea5Ghsn6s5aIMFHK5LY4uSw)kaf24@firebug.cl.cam.ac.uk2005-05-251-5/+46
| | | | | | Add 64-bit (cmpxchg8b) support to the cmpxchg() macro for x86_32. Signed-off-by: Keir Fraser <keir@xensource.com>
* bitkeeper revision 1.1389.10.1 (427fa2d3ZV92f_ErvLuIzWbV1f67QA)kaf24@firebug.cl.cam.ac.uk2005-05-091-0/+1
| | | | | | | Phase 1 of upgrading platform code to be derived from Linux 2.6.11 rather than 2.4.x. Signed-off-by: Keir Fraser <keir@xensource.com>
* bitkeeper revision 1.1352 (42678485GbfE9tHK21SYM_tM6xSlBQ)kaf24@firebug.cl.cam.ac.uk2005-04-211-0/+17
| | | | | | Add 8-byte version of cmpxchg_user() for i386. Signed-off-by: Keir Fraser <keir@xensource.com>
* bitkeeper revision 1.1159.187.64 (41bec5b2hEqxDdXD0_RNHHR7utG6gA)kaf24@scramble.cl.cam.ac.uk2004-12-141-7/+0
| | | | | schedule_tail is now an indirect function call in x86 architecture.
* bitkeeper revision 1.1159.53.28 (41362051V9OMFFkN7QeuoU0c6ND07A)kaf24@penguin.local2004-09-011-1/+16
| | | | | Build fixes for x86/64.
* bitkeeper revision 1.1159.51.2 (412cb2dfaIDYjySJYYMTByGbcM77UA)kaf24@labyrinth.cl.cam.ac.uk2004-08-251-10/+10
| | | | | More grant-table code, and some related sundry improvements.
* bitkeeper revision 1.1159.1.101 (412b5ac2PQ9FDoJKc14Km1yEm114Rw)kaf24@labyrinth.cl.cam.ac.uk2004-08-241-20/+42
| | | | | Grant-table pin/unpin operation.
* bitkeeper revision 1.1041.18.1 (40ec37bbEfVooGtkbbrgCf3ZWEhJEg)kaf24@scramble.cl.cam.ac.uk2004-07-071-0/+4
| | | | | | More x86_64 stuff. Now links, but a bunch of stuff is stubbed out. Will it run? :-)
* bitkeeper revision 1.971 (40d0bbb1JPrSxn2RF8RhPvWOZBY1Sg)kaf24@scramble.cl.cam.ac.uk2004-06-161-20/+0
| | | | | More code excision.
* bitkeeper revision 1.968 (40cf1596Prlo7Ak2J5KWtvKaolWxOg)kaf24@scramble.cl.cam.ac.uk2004-06-151-4/+12
| | | | | More x86_64 stuff.
* bitkeeper revision 1.955.1.4 (40ca25caD-WBu24eVfed1yswCl7JeQ)kaf24@scramble.cl.cam.ac.uk2004-06-111-12/+12
| | | | | | | | | | | | | | | | | | Many files: More x86_64 stuff. pda.h: Rename: xen/include/asm-x86/x86_64/pda.h -> xen/include/asm-x86/pda.h .del-config.h~ab742eeb14ad808f: Delete: xen/include/asm-x86/x86_64/config.h arch-x86_32.h: Rename: xen/include/hypervisor-ifs/arch_x86_32.h -> xen/include/hypervisor-ifs/arch-x86_32.h arch-x86_64.h: Rename: xen/include/hypervisor-ifs/arch_x86_64.h -> xen/include/hypervisor-ifs/arch-x86_64.h arch_x86_32.h: Rename: xen/include/hypervisor-ifs/arch-x86/hypervisor-if.h -> xen/include/hypervisor-ifs/arch_x86_32.h arch_x86_64.h: Rename: xen/include/hypervisor-ifs/arch-x86_64/hypervisor-if.h -> xen/include/hypervisor-ifs/arch_x86_64.h
* bitkeeper revision 1.952 (40c8935a3XSRdQfnx5RoO7XgaggvOQ)kaf24@scramble.cl.cam.ac.uk2004-06-101-0/+255
Towards x86_64 support. Merged a bunch of the existing x86_64 stuff back into a generic 'x86' architecture. Aim is to share as much as possible between 32- and 64-bit worlds.