From: Cyril Novikov <cnovikov-wte42BQEg7M@public.gmane.org>
To: devicetree-spec-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: Virtualization difficulty -- phandles
Date: Mon, 17 Jul 2017 18:37:47 -0700 [thread overview]
Message-ID: <okjp46$s1v$1@blaine.gmane.org> (raw)
In-Reply-To: <20170716053548.GL17539-K0bRW+63XPQe6aEkudXLsA@public.gmane.org>
On 7/15/2017 10:35 PM, David Gibson wrote:
> But.. I'm very uneasy about the idea.
>
> The first thing, is that this relies on the dts file containing the
> &whatever phandle reference syntax wherever there should be a phandle
> reference. That's normal, but nothing stops a user from simply
> putting an actual number there, manually assigning that number to
> another node's phandle and generating a valid dtb that way.
>
> More importantly, it won't detect phandles if the tree comes from a
> source other than a dts - for example if you flatten /proc/device-tree
> with -I fs, or have code which flattens a tree presented by real Open
> Firmware it won't have that phandle metadata, just integer values.
Yeah, so the metadata does not contain full information. That's fine
because it's still better than nothing.
> Now those might not be something that happens in your use case, but
> I'm pretty concerned that if I added this functionality, people are
> going to forget that properties are all, fundamentally, bytestrings
> and get surprised when tools don't magically know where the phandles
> are in some cases.
>
> That said, I'm open to persuasion if a good enough case is made for
> this functionality.
So, what we need fundamentally is a way to detect dependencies in the
devicetree. Mark is arguing that we cannot *automate* the assignment of
dependent devices to the same VM. However, just detecting that there is
a missing dependency goes a long way. What we have now is guest drivers
failing in various manners, but what they cannot do is point the user to
the specific device that they need, because they don't have the host FDT
in their VM.
For example, a driver may print something like
[ 2.035071] xuartps ff000000.serial: pclk clock not found.
To resolve this, the user needs to be proficient with the device tree.
Of course, "pclk" is not a node name in the host FDT. However, if
configuration software could detect this at the time the set of the VM's
assigned physical devices was created, it could give the user the name
of the device that *probably* also needs to be assigned to the same VM.
The user wouldn't need to learn anything about devicetree, they would
just need to do a few mouse clicks to assign the dependent device. And
now it's the software's concern if that assignment is not trivial, as
Mark warns us.
To summarize, full automation is unfeasible and it is understood, but
just the dependency information is very helpful too.
> But then, as Mark Rutland says in his other replies, locating phandles
> is far from the only problem in trying to passthrough random DT nodes
> to a guest.
--
Cyril
next prev parent reply other threads:[~2017-07-18 1:37 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-12 6:15 Virtualization difficulty -- phandles Cyril Novikov
2017-07-12 17:10 ` Florian Fainelli
[not found] ` <180baf3e-9e7b-c791-3be2-81d807b14759-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-07-13 4:23 ` Cyril Novikov
2017-07-13 16:47 ` Florian Fainelli
[not found] ` <4594fc97-9b9f-267e-ee8e-8cbe89341fe7-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-07-16 5:35 ` David Gibson
[not found] ` <20170716053548.GL17539-K0bRW+63XPQe6aEkudXLsA@public.gmane.org>
2017-07-18 1:37 ` Cyril Novikov [this message]
2017-07-19 3:30 ` David Gibson
2017-07-24 17:09 ` Frank Rowand
[not found] ` <597629DC.5060800-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-07-25 7:50 ` David Gibson
[not found] ` <20170725075034.GD8978-K0bRW+63XPQe6aEkudXLsA@public.gmane.org>
2017-07-27 20:58 ` Frank Rowand
[not found] ` <597A53E1.4010002-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-07-27 21:59 ` Pantelis Antoniou
2017-07-28 4:25 ` David Gibson
2017-07-14 10:58 ` Mark Rutland
2017-07-18 1:47 ` Cyril Novikov
2017-07-19 3:40 ` David Gibson
[not found] ` <20170719034029.GT3140-K0bRW+63XPQe6aEkudXLsA@public.gmane.org>
2017-07-22 4:24 ` Cyril Novikov
2017-07-24 6:14 ` David Gibson
2017-07-24 16:27 ` Frank Rowand
[not found] ` <59762000.7000302-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-07-24 23:00 ` Cyril Novikov
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='okjp46$s1v$1@blaine.gmane.org' \
--to=cnovikov-wte42bqeg7m@public.gmane.org \
--cc=devicetree-spec-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
/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.
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).