From: Dom Rodriguez <shymega@shymega.org.uk>
To: Alyssa Ross <hi@alyssa.is>
Cc: Dom RODRIGUEZ <dominic.rodriguez@rodriguez.org.uk>,
devel@spectrum-os.org
Subject: Re: [PATCH v2] crosvm: Rename `--vhost-user-{fs,gpu}` args
Date: Mon, 11 Nov 2024 01:35:42 +0000 [thread overview]
Message-ID: <rpocpxe3s3yyughdoixmejurjq4pbxmk4qoypa5yqpkdmc6qir@jzvzlqikqpt5> (raw)
In-Reply-To: <874j4g5bco.fsf@alyssa.is>
[-- Attachment #1: Type: text/plain, Size: 4762 bytes --]
On 09.11.2024 22:46, Alyssa Ross wrote:
>Dom RODRIGUEZ <dominic.rodriguez@rodriguez.org.uk> writes:
>
>> On 28.09.2024 16:27, Alyssa Ross wrote:
>>>Dom Rodriguez <shymega@shymega.org.uk> writes:
>>>
>>>> On 07.09.2024 18:40, Alyssa Ross wrote:
>>>>>Dom Rodriguez <shymega@shymega.org.uk> writes:
>>>>>
>>>>>> crosvm was producing warnings when using `--vhost-user-gpu` and
>>>>>> `--vhost-user-fs`.
>>>>>>
>>>>>> In this commit, I have adjusted the `crosvm` invocations to look
>>>>>> something like `--vhost-user $DEVICE,socket=$PATH`, where `$DEVICE` is, in this case,
>>>>>> `gpu` or `fs`, and `$PATH` is the path to the Unix socket.
>>>>>>
>>>>>> Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
>>>>>> ---
>>>>>> img/app/Makefile | 4 ++--
>>>>>> release/checks/wayland/default.nix | 2 +-
>>>>>> 2 files changed, 3 insertions(+), 3 deletions(-)
>>>>>>
>>>>>> diff --git a/img/app/Makefile b/img/app/Makefile
>>>>>> index 3adf8c4..11ef6e1 100644
>>>>>> --- a/img/app/Makefile
>>>>>> +++ b/img/app/Makefile
>>>>>> @@ -152,8 +152,8 @@ run-crosvm: $(imgdir)/appvm/blk/root.img start-vhost-user-gpu start-virtiofsd
>>>>>> --disk $(RUN_IMG) \
>>>>>> -p "console=ttyS0 root=PARTLABEL=root" \
>>>>>> --net tap-name=tap0 \
>>>>>> - --vhost-user-fs build/virtiofsd.sock:virtiofs0 \
>>>>>> - --vhost-user-gpu build/vhost-user-gpu.sock \
>>>>>> + --vhost-user fs,socket=build/virtiofsd.sock:virtiofs0 \
>>>>>> + --vhost-user gpu,socket=build/vhost-user-gpu.sock \
>>>>>> --vsock cid=3 \
>>>>>> --serial type=file,hardware=serial,path=build/serial.log \
>>>>>> --serial type=stdout,hardware=virtio-console,stdin=true \
>>>>>
>>>>>This is still not right, I'm afraid.
>>>>>
>>>>>When I run nix-shell --run 'make clean && make run' VMM=crosvm in
>>>>>img/app, I get this error:
>>>>>
>>>>>[2024-09-07T16:36:32.592274891+00:00 ERROR crosvm] exiting with error 1: failed to connect to vhost-user socket path build/virtiofsd.sock:virtiofs0
>>>>>
>>>>>Probably the tag should also be a comma-separated key=value option?
>>>>>
>>>>>(This doesn't have any automated test, because it's just part of the
>>>>>development environment, and setting up a test environment to resemble a
>>>>>development machine isn't trivial. Should be possible though.)
>>>>
>>>> It's bizarre. I've done some more testing, and it seems that
>>>> `--vhost-user` isn't *quite* there yet on feature parity with
>>>> `--vhost-user-fs`. Maybe I'm going wrong here, but it doesn't recognise
>>>> the tag as a k/v option.
>>>>
>>>> I have managed to get the tests running with `--vhost-user-fs`, but it
>>>> does look mismatched now.
>>>>
>>>> Would you prefer I revert the changes to `--vhost-user fs` =>
>>>> `--vhost-user-fs`?
>>>
>>>You're right! I've just spent the last little while looking around
>>>trying to figure out what's up here, and I think I've figured it out.
>>>
>>>In this commit[1] they made the vhost-user-fs tag optional, because it
>>>can now be set with virtiosfd instead of the VMM. This is probably
>>>good, because the more generic vhost-user becomes, the more hope
>>>Spectrum has of one day not needing Cloud Hypervisor patches. :) So we
>>>could try using --vhost-user fs for crosvm, and then passing --tag to
>>>virtiofsd, but it'd need to be tested with VMM=qemu and
>>>VMM=cloud-hypervisor as well, because I'm not sure whether they support
>>>a backend-provided tag.
>>
>> Finally got round to this.
>>
>> By the looks of it, currently `cloud-hypervisor` and QEMU do not support a
>> backend-provided tag.
>>
>> We could introduce an abstraction [function] in the Makefile over
>> `vhost-user-fs` arguments for each hypervisor, which we could use whilst
>> waiting for QEMU and cloud-hypervisor to support backend-provided tags
>> with `vhost-user-fs`, and in the meantime use the abstraction for
>> crosvm.
>>
>> I envision the abstraction as taking a few arguments: hypervisor,
>> virtiofsd socket path, and tag. The abstraction would then construct &
>> return the correct command-line argument for the hypervisor. We would
>> call the abstractive function in the call to the `run` Make target.
>>
>> That way, we're prepared for the future.
>>
>> What do you think?
>
>Given that they don't support the optional protocol feature, I'd expect
>cloud-hypervisor and QEMU to just ignore the tag given to virtiofsd —
>can we not just set the tag on the virtiofsd invocation for crosvm, and
>keep setting it in the cloud-hypervisor and QEMU command lines for them?
That's a fair conclusion. Are you happy for me to submit a patch just
for crosvm for now?
Best wishes,
--
Dom Rodriguez
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
next prev parent reply other threads:[~2024-11-11 8:30 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-06 22:42 [PATCH v2] crosvm: Rename `--vhost-user-{fs,gpu}` args Dom Rodriguez
2024-09-07 16:40 ` Alyssa Ross
2024-09-21 22:52 ` Dom Rodriguez
2024-09-28 14:27 ` Alyssa Ross
2024-10-18 19:53 ` Dom Rodriguez
2024-10-21 9:08 ` Alyssa Ross
2024-10-21 19:53 ` Alyssa Ross
2024-11-09 1:03 ` Dom RODRIGUEZ
2024-11-09 21:46 ` Alyssa Ross
2024-11-11 1:35 ` Dom Rodriguez [this message]
2024-11-11 10:49 ` Alyssa Ross
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=rpocpxe3s3yyughdoixmejurjq4pbxmk4qoypa5yqpkdmc6qir@jzvzlqikqpt5 \
--to=shymega@shymega.org.uk \
--cc=devel@spectrum-os.org \
--cc=dominic.rodriguez@rodriguez.org.uk \
--cc=hi@alyssa.is \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://spectrum-os.org/git/crosvm
https://spectrum-os.org/git/doc
https://spectrum-os.org/git/mktuntap
https://spectrum-os.org/git/nixpkgs
https://spectrum-os.org/git/spectrum
https://spectrum-os.org/git/ucspi-vsock
https://spectrum-os.org/git/www
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).