Message ID | 20210322105840.11224-1-jgross@suse.com (mailing list archive) |
---|---|
Headers | show |
Series | tools/libs: add missing support of linear p2m_list, cleanup | expand |
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. ~Andrew
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