diff mbox series

[RESEND] init/do_mounts.c: add virtiofs root fs support

Message ID 20230224140421.29774-1-david@ixit.cz (mailing list archive)
State New, archived
Headers show
Series [RESEND] init/do_mounts.c: add virtiofs root fs support | expand

Commit Message

David Heidelberg Feb. 24, 2023, 2:04 p.m. UTC
From: Stefan Hajnoczi <stefanha@redhat.com>

Make it possible to boot directly from a virtiofs file system with tag
'myfs' using the following kernel parameters:

  rootfstype=virtiofs root=myfs rw

Booting directly from virtiofs makes it possible to use a directory on
the host as the root file system.  This is convenient for testing and
situations where manipulating disk image files is cumbersome.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: David Heidelberg <david@ixit.cz>
---
We have used this option in Mesa3D CI for testing crosvm for
more than one years and it's proven to work reliably.

We are working on effort to removing custom patches to be able to do 
automated apply and test of patches from any tree.                              

https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/.gitlab-ci/crosvm-runner.sh#L85

 init/do_mounts.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

Comments

Helen Mae Koike Fornazier Feb. 24, 2023, 2:32 p.m. UTC | #1
(from get_maintainers.pl script) +cc Wolfram Sang, Andrew Morton

On Friday, February 24, 2023 11:04 -03, David Heidelberg <david@ixit.cz> wrote:

> From: Stefan Hajnoczi <stefanha@redhat.com>
> 
> Make it possible to boot directly from a virtiofs file system with tag
> 'myfs' using the following kernel parameters:
> 
>   rootfstype=virtiofs root=myfs rw
> 
> Booting directly from virtiofs makes it possible to use a directory on
> the host as the root file system.  This is convenient for testing and
> situations where manipulating disk image files is cumbersome.
> 
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> Signed-off-by: David Heidelberg <david@ixit.cz>

Reviewed-by: Helen Koike <helen.koike@collabora.com>

> ---

> We have used this option in Mesa3D CI for testing crosvm for
> more than one years and it's proven to work reliably.
> 
> We are working on effort to removing custom patches to be able to do 
> automated apply and test of patches from any tree.

Thanks David for this work, it would be awesome to have more automated tests, and if we can do
more towards this goal, making the whole process more fluid, I would go for it.
                              
> 
> https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/.gitlab-ci/crosvm-runner.sh#L85
> 
>  init/do_mounts.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/init/do_mounts.c b/init/do_mounts.c
> index 811e94daf0a8..11c11abe23d7 100644
> --- a/init/do_mounts.c
> +++ b/init/do_mounts.c
> @@ -578,6 +578,16 @@ void __init mount_root(void)
>  			printk(KERN_ERR "VFS: Unable to mount root fs via SMB.\n");
>  		return;
>  	}
> +#endif
> +#ifdef CONFIG_VIRTIO_FS
> +	if (root_fs_names && !strcmp(root_fs_names, "virtiofs")) {
> +		if (!do_mount_root(root_device_name, "virtiofs",
> +				   root_mountflags, root_mount_data))
> +			return;
> +
> +		panic("VFS: Unable to mount root fs \"%s\" from virtiofs",
> +		      root_device_name);
> +	}
>  #endif
>  	if (ROOT_DEV == 0 && root_device_name && root_fs_names) {
>  		if (mount_nodev_root() == 0)
> -- 
> 2.39.1
> 

Regards,
Helen
diff mbox series

Patch

diff --git a/init/do_mounts.c b/init/do_mounts.c
index 811e94daf0a8..11c11abe23d7 100644
--- a/init/do_mounts.c
+++ b/init/do_mounts.c
@@ -578,6 +578,16 @@  void __init mount_root(void)
 			printk(KERN_ERR "VFS: Unable to mount root fs via SMB.\n");
 		return;
 	}
+#endif
+#ifdef CONFIG_VIRTIO_FS
+	if (root_fs_names && !strcmp(root_fs_names, "virtiofs")) {
+		if (!do_mount_root(root_device_name, "virtiofs",
+				   root_mountflags, root_mount_data))
+			return;
+
+		panic("VFS: Unable to mount root fs \"%s\" from virtiofs",
+		      root_device_name);
+	}
 #endif
 	if (ROOT_DEV == 0 && root_device_name && root_fs_names) {
 		if (mount_nodev_root() == 0)