qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Plugin virtual-to-physical translation incorrect for some IO accesse


From: Philippe Mathieu-Daudé
Subject: Re: Plugin virtual-to-physical translation incorrect for some IO accesses
Date: Tue, 6 Jul 2021 23:10:08 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0

+Peter/Paolo

On 7/6/21 10:47 PM, Aaron Lindsay wrote:
> Hello,
> 
> I previously supplied a patch which modified the plugin interface such
> that it will return physical addresses for IO regions [0]. However, I
> have now found a case where the interface does not appear to correctly
> return the full physical addresses.
> 
> In particular, when in qemu_plugin_hwaddr_phys_addr() for a particular
> store to IO memory (haddr->is_io==true), I find that haddr->v.io.offset
> is 0x0 and mrs->mr->addr is 0x3000, meaning 0x3000 is the returned
> "physical address". However, I also find that
> mrs->offset_within_address_space is 0x8000007000 (and also that
> 0x8000007000 matches up with what an actual translation would be from
> inspecting the page tables).
> 
> Would it be 'safe' to *always* begin using
> mrs->offset_within_address_space as the returned physical address here
> instead of `haddr->v.io.offset + mrs->mr->addr`, or is there a reason we
> should not do that?

'safety' is not my area, but using mrs->offset_within_address_space
sounds correct to me.

> Thanks!
> 
> -Aaron
> 
> [0] https://lists.nongnu.org/archive/html/qemu-devel/2021-03/msg03137.html
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]