On 22.03.21 13:46, Andrew Cooper wrote:
> On 22/03/2021 10:58, Juergen Gross wrote:
>> There are some corners left which don't support the not so very new
>> linear p2m list of pv guests, which has been introduced in Linux kernel
>> 3.19 and which is mandatory for non-legacy versions of Xen since kernel
>> 4.14.
>>
>> This series adds support for the linear p2m list where it is missing
>> (colo support and "xl dump-core").
>>
>> In theory it should be possible to merge the p2m list mapping code
>> from migration handling and core dump handling, but this needs quite
>> some cleanup before this is possible.
>>
>> The first three patches of this series are fixing real problems, so
>> I've put them at the start of this series, especially in order to make
>> backports easier.
>>
>> The other three patches are only the first steps of cleanup. The main
>> work done here is to concentrate all p2m mapping in libxenguest instead
>> of having one implementation in each of libxenguest and libxenctrl.
>>
>> Merging the two implementations should be rather easy, but this will
>> require to touch many lines of code, as the migration handling variant
>> seems to be more mature, but it is using the migration stream specific
>> structures heavily. So I'd like to have some confirmation that my way
>> to clean this up is the right one.
>>
>> My idea would be to add the data needed for p2m mapping to struct
>> domain_info_context and replace the related fields in struct
>> xc_sr_context with a struct domain_info_context. Modifying the
>> interface of xc_core_arch_map_p2m() to take most current parameters
>> via struct domain_info_context would then enable migration coding to
>> use xc_core_arch_map_p2m() for mapping the p2m. xc_core_arch_map_p2m()
>> should look basically like the current migration p2m mapping code
>> afterwards.
>>
>> Any comments to that plan?
>>
>> Juergen Gross (6):
>> tools/libs/guest: fix max_pfn setting in map_p2m()
>> tools/libs/ctrl: fix xc_core_arch_map_p2m() to support linear p2m
>> table
>> tools/libs/ctrl: use common p2m mapping code in xc_domain_resume_any()
>> tools/libs: move xc_resume.c to libxenguest
>> tools/libs: move xc_core* from libxenctrl to libxenguest
>> tools/libs/guest: make some definitions private to libxenguest
>
> https://gitlab.com/xen-project/patchew/xen/-/jobs/1116936958
>
> xenctrl_stubs.c:342:11: error: implicit declaration of function
> 'xc_domain_resume' is invalid in C99
> [-Werror,-Wimplicit-function-declaration]
> result = xc_domain_resume(_H(xch), c_domid, 1);
> ^
> 1 error generated.
>
> I suspect you need to shuffle the headers in use for the Ocaml stubs too.
Yes. Patch 4 needs to gain an "#include <xenguest.h>" in
tools/ocaml/libs/xc/xenctrl_stubs.c
Juergen