|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] [xen-unstable] [IA64] Stop collision chain search after
# HG changeset patch
# User Alex Williamson <alex.williamson@xxxxxx>
# Date 1204917987 25200
# Node ID 54c7e3798464dfa2e2ba1d725126cceaf935155b
# Parent 59b8768d0d0d3bf2125c33adafbd1256e75e2755
[IA64] Stop collision chain search after match is found
No need to continue to search collision chain after one is found
since guest TLB can't have any overlap.
Signed-off-by: Dong Yaozu <eddie.dong@xxxxxxxxx>
Signed-off-by: Zhang Xiantao <xiantao.zhang@xxxxxxxxx>
---
xen/arch/ia64/vmx/vtlb.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
diff -r 59b8768d0d0d -r 54c7e3798464 xen/arch/ia64/vmx/vtlb.c
--- a/xen/arch/ia64/vmx/vtlb.c Wed Mar 05 11:18:25 2008 +0000
+++ b/xen/arch/ia64/vmx/vtlb.c Fri Mar 07 12:26:27 2008 -0700
@@ -324,8 +324,10 @@ static void vtlb_purge(VCPU *v, u64 va,
while (num) {
cur = vtlb_thash(hcb->pta, curadr, vrr.rrval, &tag);
while (cur) {
- if (cur->etag == tag && cur->ps == rr_ps)
+ if (cur->etag == tag && cur->ps == rr_ps) {
cur->etag = 1UL << 63;
+ break;
+ }
cur = cur->next;
}
curadr += size;
@@ -353,8 +355,10 @@ static void vhpt_purge(VCPU *v, u64 va,
cur = (thash_data_t *)ia64_thash(start);
tag = ia64_ttag(start);
while (cur) {
- if (cur->etag == tag)
+ if (cur->etag == tag) {
cur->etag = 1UL << 63;
+ break;
+ }
cur = cur->next;
}
start += size;
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] [xen-unstable] [IA64] Stop collision chain search after match is found,
Xen patchbot-unstable <=
|
|
|
|
|