aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/flushtlb.c
Commit message (Collapse)AuthorAgeFilesLines
* x86: fix off-by-one error in the cache flush portion of flush_area_local().Keir Fraser2010-05-041-1/+1
| | | | Signed-off-by: Jan Beulich <jbeulich@novell.com>
* x86: allow pv guests to disable TSC for applicationsKeir Fraser2007-10-291-7/+10
| | | | | | | | | | | | | | | | | Linux, under CONFIG_SECCOMP, has been capable of hiding the TSC from processes for quite a while. This patch enables this to actually work for pv kernels, by allowing them to control CR4.TSD (and, as a simple thing to do at the same time, CR4.DE). Applies cleanly only on top of the previously submitted debug register handling patch. Signed-off-by: Jan Beulich <jbeulich@novell.com> Also clean up CR4 and EFER handling, and hack-n-slash header file inclusion madness to get the tree building again. Signed-off-by: Keir Fraser <keir@xensource.com>
* x86: Replace FLUSH_LEVEL() parameter to flush_area() with ratherKeir Fraser2007-10-261-9/+7
| | | | | clearer FLUSH_ORDER(). Also remove bogus assertion. Signed-off-by: Keir Fraser <keir@xensource.com>
* x86: Remove invlpg_works_ok and invlpg only single-page regions.Keir Fraser2007-10-171-1/+7
| | | | | | | | | | | | | The flush_area_local() interface was unclear about whether a multi-page region (2M/4M/1G) had to be mapped by a superpage, and indeed some callers (map_pages_to_xen()) already would specify FLUSH_LEVEL(2) for a region actually mapped by 4kB PTEs. The safest fix is to relax the interface and do a full TLB flush in these cases. My suspicion is that these cases are rare enough that the cost of INVLPG versus full flush will be unimportant. Signed-off-by: Keir Fraser <keir@xensource.com>
* x86: consolidate/enhance TLB flushing interfaceKeir Fraser2007-10-161-18/+61
| | | | | | | | | | | | Folding into a single local handler and a single SMP multiplexor as well as adding capability to also flush caches through the same interfaces (a subsequent patch will make use of this). Once at changing cpuinfo_x86, this patch also removes several unused fields apparently inherited from Linux. Signed-off-by: Jan Beulich <jbeulich@novell.com> Signed-off-by: Keir Fraser <keir@xensource.com>
* [HVM][SVM] flush all entries from guest ASIDs when xen writes CR3.Tim Deegan2007-06-201-0/+4
| | | | | | | This makes the assumptions about TLB flush behaviour in the page-type system and the shadow code safe again, and fixes a corner case of NPT log-dirty. Signed-off-by: Tim Deegan <Tim.Deegan@xensource.com>
* [XEN][X86_64] USe GLOBAL bit to build user mappings.kfraser@localhost.localdomain2006-09-191-31/+70
| | | | | | | Avoids need to flush user mappings when switching between user and kernel contexts. Signed-off-by: Jun Nakajima <jun.nakajima@intel.com> Signed-off-by: Keir Fraser <keir@xensource.com>
* [XEN] Make tlbflush_time a PER_CPU variable.kaf24@firebug.cl.cam.ac.uk2006-08-081-2/+2
| | | | | Signed-off-by: Keir Fraser <keir@xensource.com>
* bitkeeper revision 1.1584 (42984f31pkIsDJAxZBlaJgFWP9L2QA)kaf24@firebug.cl.cam.ac.uk2005-05-281-1/+1
| | | | | | | Assembly code cleanups. gcc doesn't need very many hints to get the operand size and register names correct for both x86/32 and x86/64. Signed-off-by: Keir Fraser <keir@xensource.com>
* bitkeeper revision 1.1159.1.319 (41860923CuMAB3frY4t4g-Ls_iqqzg)kaf24@freefall.cl.cam.ac.uk2004-11-011-2/+10
| | | | | | Clean up some Xen comments to clarify execution order w.r.t. TLB flushes.
* bitkeeper revision 1.1159.1.295 (4180ee31v7apKAXQ_iCd672ndA6I0Q)kaf24@freefall.cl.cam.ac.uk2004-10-281-18/+29
| | | | | | | | | New TLB-flush logic. By basing NEED_FLUSH() on the current time, as well as the CPU and page timestamps, I was able to get rid of the tedious epoch logic. We now only need special-case logic when the 32-bit clock wraps. In debug build I deliberately restrict the clock to 10 bits, so that the wrap logic gets exercised.
* bitkeeper revision 1.1159.1.290 (417fcacfkfQjkHbB1_isdievDAarQA)kaf24@freefall.cl.cam.ac.uk2004-10-271-18/+27
| | | | | Further fixes to the TLB-flush logic.
* bitkeeper revision 1.1159.1.286 (417f78e2iA5JKPrp7BvoiDunXMJ_mA)kaf24@freefall.cl.cam.ac.uk2004-10-271-3/+12
| | | | | Fix the TLB-flush logic. Epoch changes were broken.
* bitkeeper revision 1.984 (40d46ea9vfESAZLlQ90uqCG0OpF4EQ)kaf24@scramble.cl.cam.ac.uk2004-06-191-1/+1
| | | | | More cleanups.
* bitkeeper revision 1.952 (40c8935a3XSRdQfnx5RoO7XgaggvOQ)kaf24@scramble.cl.cam.ac.uk2004-06-101-0/+40
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.