Ian, Wei,
could you please take a look at the below?
Thank you,
Oleksandr
On 12/20/2017 06:27 PM, Oleksandr Andrushchenko wrote:
Hi, all!
While trying to reboot a domain which has iomem configured
(we are passing through some devices), I found an issue,
that after domain reboot those iomem's are incorrectly re-mapped,
e.g. for the configuration snippet below fe960 -> 0.
Part of the domain config I use:
iomem=[
"0xfd010,1@0xfd000",
"fe960,8",
]
During domain creation:
libxl_create.c:210:libxl__domain_build_info_setdefault: iomem gfn
fd000 start fd010
libxl_create.c:210:libxl__domain_build_info_setdefault: iomem gfn
ffffffffffffffff start fe960
which means that for fe960 initial value was set to LIBXL_INVALID_GFN
and then on domain configuration,
tools/libxl/libxl_create.c:libxl__domain_build_info_setdefault:
for (i = 0 ; i < b_info->num_iomem; i++)
if (b_info->iomem[i].gfn == LIBXL_INVALID_GFN)
b_info->iomem[i].gfn = b_info->iomem[i].start;
made that GFN for fe960 to be set to the correct value.
But during domain reboot I see that
tools/xl/xl_vmcontrol.c:reload_domain_config
tries to replicate configuration from the original domain config
being rebooted, but that leads to iomem's GFN to be set to 0 (if
configured
in form [IOMEM_START,NUM_PAGES], but for [IOMEM_START,NUM_PAGES[@GFN]
it is ok):
iomem gfn fd000 start fd010
iomem gfn 0 start fe960
Thus, further domain restart procedure leads to invalid mapping, e.g.
fe960 -> 0.
I created a patch which allowed me to reboot the domain, but I would love
to hear comments on what would be the proper fix.
Thank you,
Oleksandr
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel