WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [Q] PV page table seems to be reset to zero.. what happened?

To: Xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] [Q] PV page table seems to be reset to zero.. what happened?
From: Min Lee <min.lee@xxxxxxxxxx>
Date: Tue, 04 Nov 2008 14:17:50 -0500
Cc:
Delivery-date: Tue, 04 Nov 2008 11:18:45 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Thunderbird 2.0.0.17 (Windows/20080914)
Hello. I'm having some trouble,
I'm working on page table to basically build reverse mapping..
So I'm intercepting mapping changes in mod_l1_entry() and [alloc,free]_l1_table() and it seemed to work for some page tables. However, my L1 page table values are changed somewhere that I don't know.. this happens to do_update_va_mapping().

Here's the situation..
(1) do_update_va_mapping() calls mod_l1_entry() and pte's value is set.
(2) later do_update_va_mapping() find this pte value zero!!

see the below log from do_update_va_mapping() and mod_l1_entry(),
b7d6 is mfn, and dcc is offset in this page table.
'=0' means its original value is 0.
so it changed it to 'f79e067'..
(virtual address from the guset is b7f731d4)

(XEN) (va:b7d6:dcc(dcc)=0)
(XEN) 1@1 t:b7d6,dcc O:0(f79e067) N:f79e067 a:b7f731d4 r:a
.
.
.
(XEN) (va:b7d6:dcc(dcc)=0)
(XEN) 1@1 t:b7d6,dcc O:0(f79e065) N:f79e065 a:b7f73000 r:a

afterwards, it again calls do_update_va_mapping(), but now it reports its old value as 0, not 'f79e067' and try to change its value to f79e065. (it means, it's just changing its flags only)..

I was expecting this reports that the original value is f79e067, as it was set before.

This might seem to be racing, but note that they're same VCPU@PCPU (1@1) and there was rather long time between these two event. so I doubt it's racing problem. Also it happens pretty regularly.

It just seems to me someone is resetting/changing page table value to zero.. anybody can give me some hints/or comment?
Where else these mapping can change? I'm working on IA32, no pae,.
thanks in advance.

Min

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] [Q] PV page table seems to be reset to zero.. what happened?, Min Lee <=