dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [RESEND v2 PATCH] init/do_mounts.c: add virtiofs root fs support
@ 2023-02-24 14:37 David Heidelberg
  2023-02-27 15:53 ` Stefan Hajnoczi
  0 siblings, 1 reply; 4+ messages in thread
From: David Heidelberg @ 2023-02-24 14:37 UTC (permalink / raw)
  Cc: David Heidelberg, Miklos Szeredi, linux-kernel, dri-devel,
	virtualization, wsa+renesas, helen.koike, Al Viro,
	Stefan Hajnoczi, linux-fsdevel, akpm, Vivek Goyal

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.

Reviewed-by: Helen Koike <helen.koike@collabora.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: David Heidelberg <david@ixit.cz>
---
v2: added Reviewed-by and CCed everyone interested.

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(+)

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


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [RESEND v2 PATCH] init/do_mounts.c: add virtiofs root fs support
  2023-02-24 14:37 [RESEND v2 PATCH] init/do_mounts.c: add virtiofs root fs support David Heidelberg
@ 2023-02-27 15:53 ` Stefan Hajnoczi
  2023-02-27 18:06   ` Vivek Goyal
  0 siblings, 1 reply; 4+ messages in thread
From: Stefan Hajnoczi @ 2023-02-27 15:53 UTC (permalink / raw)
  To: vgoyal
  Cc: David Heidelberg, Miklos Szeredi, linux-kernel, dri-devel,
	virtualization, wsa+renesas, helen.koike, Al Viro, linux-fsdevel,
	akpm

[-- Attachment #1: Type: text/plain, Size: 2173 bytes --]

On Fri, Feb 24, 2023 at 03:37:51PM +0100, David Heidelberg 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.
> 
> Reviewed-by: Helen Koike <helen.koike@collabora.com>
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> Signed-off-by: David Heidelberg <david@ixit.cz>
> ---
> v2: added Reviewed-by and CCed everyone interested.
> 
> 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(+)

Vivek, do you remember where we ended up with boot from virtiofs? I
thought a different solution was merged some time ago.

There is documentation from the virtiofs community here:
https://virtio-fs.gitlab.io/howto-boot.html

Stefan

> 
> 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
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [RESEND v2 PATCH] init/do_mounts.c: add virtiofs root fs support
  2023-02-27 15:53 ` Stefan Hajnoczi
@ 2023-02-27 18:06   ` Vivek Goyal
  2023-02-27 20:55     ` David Heidelberg
  0 siblings, 1 reply; 4+ messages in thread
From: Vivek Goyal @ 2023-02-27 18:06 UTC (permalink / raw)
  To: Stefan Hajnoczi
  Cc: David Heidelberg, Miklos Szeredi, linux-kernel, dri-devel,
	virtualization, wsa+renesas, helen.koike, Al Viro, linux-fsdevel,
	akpm

On Mon, Feb 27, 2023 at 10:53:45AM -0500, Stefan Hajnoczi wrote:
> On Fri, Feb 24, 2023 at 03:37:51PM +0100, David Heidelberg 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.
> > 
> > Reviewed-by: Helen Koike <helen.koike@collabora.com>
> > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> > Signed-off-by: David Heidelberg <david@ixit.cz>
> > ---
> > v2: added Reviewed-by and CCed everyone interested.
> > 
> > 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(+)
> 
> Vivek, do you remember where we ended up with boot from virtiofs? I
> thought a different solution was merged some time ago.

We merged a patch from Christoph Hellwig to support this.

commit f9259be6a9e7c22d92e5a5000913147ae17e8321
Author: Christoph Hellwig <hch@lst.de>
Date:   Wed Jul 14 16:23:20 2021 -0400

    init: allow mounting arbitrary non-blockdevice filesystems as root

Now one should be able to mount virtiofs using following syntax.

"root=myfs rootfstype=virtiofs rw"

IIUC, this patch should not be required anymore.

Thanks
Vivek

> 
> There is documentation from the virtiofs community here:
> https://virtio-fs.gitlab.io/howto-boot.html
> 
> Stefan
> 
> > 
> > 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
> > 



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [RESEND v2 PATCH] init/do_mounts.c: add virtiofs root fs support
  2023-02-27 18:06   ` Vivek Goyal
@ 2023-02-27 20:55     ` David Heidelberg
  0 siblings, 0 replies; 4+ messages in thread
From: David Heidelberg @ 2023-02-27 20:55 UTC (permalink / raw)
  To: Vivek Goyal, Stefan Hajnoczi
  Cc: Miklos Szeredi, linux-kernel, dri-devel, virtualization,
	wsa+renesas, helen.koike, Al Viro, linux-fsdevel, akpm

Thank you all!

We'll drop this patch in next MesaCI kernel uprev without this patch!

David

On 27/02/2023 19:06, Vivek Goyal wrote:
> On Mon, Feb 27, 2023 at 10:53:45AM -0500, Stefan Hajnoczi wrote:
>> On Fri, Feb 24, 2023 at 03:37:51PM +0100, David Heidelberg 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.
>>>
>>> Reviewed-by: Helen Koike <helen.koike@collabora.com>
>>> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
>>> Signed-off-by: David Heidelberg <david@ixit.cz>
>>> ---
>>> v2: added Reviewed-by and CCed everyone interested.
>>>
>>> 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(+)
>> Vivek, do you remember where we ended up with boot from virtiofs? I
>> thought a different solution was merged some time ago.
> We merged a patch from Christoph Hellwig to support this.
>
> commit f9259be6a9e7c22d92e5a5000913147ae17e8321
> Author: Christoph Hellwig <hch@lst.de>
> Date:   Wed Jul 14 16:23:20 2021 -0400
>
>      init: allow mounting arbitrary non-blockdevice filesystems as root
>
> Now one should be able to mount virtiofs using following syntax.
>
> "root=myfs rootfstype=virtiofs rw"
>
> IIUC, this patch should not be required anymore.
>
> Thanks
> Vivek
>
>> There is documentation from the virtiofs community here:
>> https://virtio-fs.gitlab.io/howto-boot.html
>>
>> Stefan
>>
>>> 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
>>>
>
-- 
David Heidelberg
Consultant Software Engineer


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-02-27 20:56 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-24 14:37 [RESEND v2 PATCH] init/do_mounts.c: add virtiofs root fs support David Heidelberg
2023-02-27 15:53 ` Stefan Hajnoczi
2023-02-27 18:06   ` Vivek Goyal
2023-02-27 20:55     ` David Heidelberg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).