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.

~Andrew
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to