On Wed, Nov 12, 2025 at 10:51:49AM +0000, Mykyta Poturai wrote:
> With CPU hotplug sysctls implemented on Arm it becomes useful to have a
> tool for calling them. Introduce a new congifure option "hptool" to
> allow building hptool separately from other migration tools, and enable
> it by default.
>
> Signed-off-by: Mykyta Poturai <[email protected]>
>
You should had a line with just "---" around here, right after the
Signed-off-by, and before the changelog. That way, when we commit the
patch, git will automatically discard this patch changelog. Notice that
git do just that before adding stats about file changes.
> v3->v4:
> * no changes
>
> v2->v3:
> * no changes
>
> v1->v2:
> * switch to configure from legacy config
> ---
> config/Tools.mk.in | 1 +
> tools/configure | 30 ++++++++++++++++++++++++++++++
> tools/configure.ac | 1 +
> tools/libs/guest/Makefile.common | 4 ++++
> tools/misc/Makefile | 2 +-
> 5 files changed, 37 insertions(+), 1 deletion(-)
> mode change 100755 => 100644 tools/configure
>
> diff --git a/config/Tools.mk.in b/config/Tools.mk.in
> index 0037ad5a64..d5855ca090 100644
> --- a/config/Tools.mk.in
> +++ b/config/Tools.mk.in
> @@ -49,6 +49,7 @@ CONFIG_LIBNL := @libnl@
> CONFIG_GOLANG := @golang@
> CONFIG_PYGRUB := @pygrub@
> CONFIG_LIBFSIMAGE := @libfsimage@
> +CONFIG_HPTOOL := @hptool@
>
> CONFIG_SYSTEMD := @systemd@
> XEN_SYSTEMD_DIR := @SYSTEMD_DIR@
> diff --git a/tools/configure.ac b/tools/configure.ac
> index 285b4ea128..28a0c095c2 100644
> --- a/tools/configure.ac
> +++ b/tools/configure.ac
> @@ -90,6 +90,7 @@ AX_ARG_DEFAULT_DISABLE([ovmf], [Enable OVMF])
> AX_ARG_DEFAULT_ENABLE([seabios], [Disable SeaBIOS])
> AX_ARG_DEFAULT_ENABLE([golang], [Disable Go tools])
> AX_ARG_DEFAULT_ENABLE([pygrub], [Disable pygrub])
> +AX_ARG_DEFAULT_ENABLE([hptool], [Disable hptool])
>
> AC_ARG_WITH([linux-backend-modules],
> AS_HELP_STRING([--with-linux-backend-modules="mod1 mod2"],
> diff --git a/tools/libs/guest/Makefile.common
> b/tools/libs/guest/Makefile.common
> index a026a2f662..774b1d5392 100644
> --- a/tools/libs/guest/Makefile.common
> +++ b/tools/libs/guest/Makefile.common
> @@ -25,6 +25,10 @@ OBJS-y += xg_core.o
> OBJS-$(CONFIG_X86) += xg_core_x86.o
> OBJS-$(CONFIG_ARM) += xg_core_arm.o
>
> +ifneq (,$(filter y,$(CONFIG_MIGRATE)$(CONFIG_HPTOOL)))
How is this supposed to work?
> +OBJS-y += xg_offline_page.o
> +endif
> +
> vpath %.c ../../../xen/common/libelf
>
> LIBELF_OBJS += libelf-tools.o libelf-loader.o
> diff --git a/tools/misc/Makefile b/tools/misc/Makefile
> index c26e544e83..f783f16ae6 100644
> --- a/tools/misc/Makefile
> +++ b/tools/misc/Makefile
> @@ -16,7 +16,7 @@ INSTALL_BIN += xencov_split
> INSTALL_BIN += $(INSTALL_BIN-y)
>
> # Everything to be installed in regular sbin/
> -INSTALL_SBIN-$(CONFIG_MIGRATE) += xen-hptool
> +INSTALL_SBIN-$(CONFIG_HPTOOL) += xen-hptool
So, I've look at the history as to why "xen-hptool" was only compiled
for CONFIG_MIGRATE, and it was because "xc_offline_page.c" didn't build
on ia64, commit 6b0b6e01b967 ("tools: disable xen-hptool on ia64").
And hiding xc_offline_page.c behind CONFIG_MIGRATE was probably just a
short-cut, 310311cd8863 ("libxc: fix link error on ia64") because I
guess the needed functions where behind this value at the time.
("xc_offline_page.c" is now "xg_offline_page.c")
This patch now build xen-hptool, and "xg_offline_page.c" by default. Does
this actually build on every architecture? We don't really have
per-binary configuration option, and having a library (libxenguest)
which get different functionality depending on which tool we want to
build doesn't seems to be the right thing to do.
If xg_offline_page.c can now be built on every architecture, how about
building it by default? Then, we can always build xen-hptool.
Thanks,
--
Anthony PERARD