Alex, I've now tested this change, and it is giving what appear to be valid and correct physical addresses for both RAM and IO accesses in all the cases I've thrown at it. My main concern with this patch at this point is that I am concerned I may be breaking your new plugin here:
> +++ b/contrib/plugins/hwprofile.c > @@ -201,7 +201,7 @@ static void vcpu_haddr(unsigned int cpu_index, > qemu_plugin_meminfo_t meminfo, > return; > } else { > const char *name = qemu_plugin_hwaddr_device_name(hwaddr); > - uint64_t off = qemu_plugin_hwaddr_device_offset(hwaddr); > + uint64_t off = qemu_plugin_hwaddr_phys_addr(hwaddr); How angry is the plugin going to be that these are now physical addresses instead of offsets? -Aaron