13 messages in com.xensource.lists.xen-ia64-develRE: [Xen-ia64-devel] [PATCH] bug fix ...| From | Sent On | Attachments |
|---|---|---|
| Kouya SHIMURA | 01 Feb 2007 22:57 | .patch |
| Alex Williamson | 04 Feb 2007 12:13 | |
| Isaku Yamahata | 04 Feb 2007 17:45 | |
| Xu, Anthony | 04 Feb 2007 18:02 | |
| Isaku Yamahata | 04 Feb 2007 18:55 | .patch |
| Xu, Anthony | 04 Feb 2007 19:34 | |
| Isaku Yamahata | 04 Feb 2007 19:42 | |
| Xu, Anthony | 04 Feb 2007 19:47 | |
| Isaku Yamahata | 04 Feb 2007 20:58 | |
| Xu, Anthony | 04 Feb 2007 21:11 | |
| Alex Williamson | 05 Feb 2007 15:34 | |
| Isaku Yamahata | 05 Feb 2007 20:54 | |
| Xu, Anthony | 05 Feb 2007 21:14 |
| Subject: | RE: [Xen-ia64-devel] [PATCH] bug fix new_tlbflush_clock_period()![]() |
|---|---|
| From: | Xu, Anthony (anth...@intel.com) |
| Date: | 02/04/2007 07:47:05 PM |
| List: | com.xensource.lists.xen-ia64-devel |
Isaku Yamahata write on 2007年2月5日 11:43:
On Mon, Feb 05, 2007 at 11:34:59AM +0800, Xu, Anthony wrote:
Before calling local_vhpt_flush, We need to make sure it is not VTI-domain and it is not per-VCPU VHPT,
local_vhpt_flush() always flushes vhpt associated to pcpu. not vcpu.
If HAS_PERVCPU_VHPT(current->domain) is true, or VMX_DOMAIN (current) is true.
Vhpt_paddr may be 0, So It erases 64KB memory content that starts from machine address 0.
- Anthony
DEFINE_PER_CPU (unsigned long, vhpt_paddr); DEFINE_PER_CPU (unsigned long, vhpt_pend); local_vhpt_flush(void) __vhpt_flush(__ia64_per_cpu_var(vhpt_paddr));
+static void +tlbflush_clock_local_flush(void *unused) +{
if(!VMX_DOMAIN(current)&&!HAS_PERVCPU_VHPT(current->domain){ + local_vhpt_flush(); }
+ local_flush_tlb_all(); +} +
- Anthony
Isaku Yamahata write on 2007年2月5日 10:56:
On Mon, Feb 05, 2007 at 10:02:53AM +0800, Xu, Anthony wrote:
Isaku Yamahata write on 2007年2月5日 9:45:
Hi Kouya. Good catch! Although this patch already commited and I made the bug, vti domain also relies on tlb flush lock. (See flush_vtlb_for_context_switch())
So we should do if (!test_bit(_VCPUF_initialize)) continue if (VMX_DOMAIN(v)) <flush all hash and collision chain of v> else vcpu_vhpt_flush()
Or
disable the tlb flush clock usage in flush_vtlb_for_context_switch().
Hi Isaku,
Why do we need to call vcpu_vhpt_flush? IMO we only need to call __local_flush_tlb_all, if we use per-vcpu VHPT. Can you elaborate it?
That's right. when I wrote that, I tried to apply tlb flush clock to not only mTLB and vhpt but also per-vcpu vhpt. but it isn't used for per-vcpu vhpt. So I removed the related bogus code.
_______________________________________________ Xen-ia64-devel mailing list Xen-...@lists.xensource.com http://lists.xensource.com/xen-ia64-devel





.patch