[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] xen/evtchn: Add design for static event channel signaling for domUs..



Hi Stefano,

On 12/04/2022 21:39, Stefano Stabellini wrote:
I should mention that it would be also possible to use sub-nodes to
express this information:

2)
          domU1: domU1 {
              ...
              /* one sub-node per local event channel */
              ec1: evtchn@a {
                  compatible = "xen,evtchn-v1";
                  /* local-evtchn link-to-foreign-evtchn */
                  xen,evtchn = <0xa &ec3>
              };
              ec2: evtchn@c {
                  compatible = "xen,evtchn-v1";
                  xen,evtchn = <0xc &ec4>
              };
          };

          domU2: domU2 {
              ...
              ec3: evtchn@b {
                  compatible = "xen,evtchn-v1";
                  xen,evtchn = <0xb &ec1>
              };
              ec4: evtchn@d {
                  compatible = "xen,evtchn-v1";
                  xen,evtchn = <0xd &ec2>
              };
          };
      };

As for 1), you could combine all the ports in one node.

I thought about it but I couldn't come up with a way to do that which
retains the simplicity of this example. The problem is that in device
tree you can only link to nodes, not to individual properties. So I
think we would have to have separate nodes for each event channel so
that we could separately link to them.

Ah yes. I overlooked it when making the suggestion. That said, I think my point in my previous e-mail stands.

If this is too verbose, then we could provide macro to generate the event channel node.


Otherwise, we would have to add the foreign event channel number in
addition to the link to be able to distinguish them. And that would
result in duplicated information. E.g.:

This is not indeed not great.


        domU1: domU1 {
            ...
            /* one sub-node per local event channel */
            ec1: evtchn@a {
                compatible = "xen,evtchn-v1";
                /* local-evtchn link-to-foreign foreign-evtchn */
                xen,evtchn = <0xa &ec2 0xa 0xc &ec2 0xd>
            };
        };

        domU2: domU2 {
            ...
            ec2: evtchn@b {
                compatible = "xen,evtchn-v1";
                xen,evtchn = <0xb &ec1 0xa 0xd &ec1 0xc>
            };
        };

Cheers,

--
Julien Grall



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.