[XEN PATCH] libxl: Use XEN_LIB_DIR to store bootloader from pygrub

Anthony PERARD posted 1 patch 9 months, 1 week ago
Patches applied successfully (tree, apply log)
git fetch https://gitlab.com/xen-project/patchew/xen tags/patchew/20230807140620.47221-1-anthony.perard@citrix.com
tools/libs/light/libxl_bootloader.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
[XEN PATCH] libxl: Use XEN_LIB_DIR to store bootloader from pygrub
Posted by Anthony PERARD 9 months, 1 week ago
In osstest, the jobs using pygrub on arm64 on the branch linux-linus
started to fails with:
    [Errno 28] No space left on device
    Error writing temporary copy of ramdisk

This is because /var/run is small when dom0 has only 512MB to work
with, /var/run is only 40MB. The size of both kernel and ramdisk on
this jobs is now about 42MB, so not enough space in /var/run.

So, to avoid writing a big binairy in ramfs, we will use /var/lib
instead, like we already do when saving the device model state on
migration.

Reported-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
 tools/libs/light/libxl_bootloader.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/libs/light/libxl_bootloader.c b/tools/libs/light/libxl_bootloader.c
index 1bc6e51827..108329b4a5 100644
--- a/tools/libs/light/libxl_bootloader.c
+++ b/tools/libs/light/libxl_bootloader.c
@@ -245,8 +245,8 @@ static void bootloader_cleanup(libxl__egc *egc, libxl__bootloader_state *bl)
 static void bootloader_setpaths(libxl__gc *gc, libxl__bootloader_state *bl)
 {
     uint32_t domid = bl->domid;
-    bl->outputdir = GCSPRINTF(XEN_RUN_DIR "/bootloader.%"PRIu32".d", domid);
-    bl->outputpath = GCSPRINTF(XEN_RUN_DIR "/bootloader.%"PRIu32".out", domid);
+    bl->outputdir = GCSPRINTF(XEN_LIB_DIR "/bootloader.%"PRIu32".d", domid);
+    bl->outputpath = GCSPRINTF(XEN_LIB_DIR "/bootloader.%"PRIu32".out", domid);
 }
 
 /* Callbacks */
-- 
Anthony PERARD
Re: [XEN PATCH] libxl: Use XEN_LIB_DIR to store bootloader from pygrub
Posted by Jason Andryuk 9 months, 1 week ago
On Mon, Aug 7, 2023 at 10:07 AM Anthony PERARD
<anthony.perard@citrix.com> wrote:
>
> In osstest, the jobs using pygrub on arm64 on the branch linux-linus
> started to fails with:
>     [Errno 28] No space left on device
>     Error writing temporary copy of ramdisk
>
> This is because /var/run is small when dom0 has only 512MB to work
> with, /var/run is only 40MB. The size of both kernel and ramdisk on
> this jobs is now about 42MB, so not enough space in /var/run.
>
> So, to avoid writing a big binairy in ramfs, we will use /var/lib

binary

> instead, like we already do when saving the device model state on
> migration.
>
> Reported-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>

Reviewed-by: Jason Andryuk <jandryuk@gmail.com>

Thanks,
Jason