On 06/07/2015 08:58, xinyue wrote: > > > > 在 2015-07-06, Mon, 15:44:53 ,Andrew Cooper 写到: > On 06/07/2015 08:22, xinyue wrote: >> >> Hi, >> >> For I want to translate the virtual address in HVM DomU to >> virtual address in Xen. But when I use the function paging_gva_to_gfn >> and get_gfn, I can feel the performance down quickly, the machine >> become very hot and then I have to force the machine shutting down. > > Your machine clearly isn't cooled sufficiently, which is the first > problem. > >> >> The codes I used as below: >> uint32_t pfec = PFEC_page_present; >> unsigned long gfn; >> unsigned long mfn; >> unsigned long virtaddr; >> struct vcpu *vcpu = current; >> struct domain *d = vcpu->domain; >> >> gfn = paging_gva_to_gfn(current, 0xc0290000, &pfec); >> mfn = get_gfn(d, gfn, &t); >> virtaddr = map_domain_page(mfn_x(mfn)); >> >> I also use the dbg_hvm_va2mfn function in debug.c, performance >> problem still present. > > Walking pagetables in software is slow. There is no getting around this. > > Your performance problems will be caused by performing the operation > far too often. You should find a way to reduce this. > > > > > Thanks very much, I think I only do this for just once. And after the > thanslation is done, the performance is not turn to normal. Does that > mean that if I wait long enough it will recovery?
It almost certainly means you are not doing it just once like you suppose. ~Andrew
_______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel