<html><head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body><div>On Mon, 2018-06-04 at 10:49 -0700, Nadathur, Sundar wrote:</div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex">
    Hi,<br>
         Cyborg needs to create RCs and traits for accelerators. The
    original plan was to do that with nested RPs. To avoid rushing the
    Nova developers, I had proposed that Cyborg could start by applying
    the traits to the compute node RP, and accept the resulting caveats
    for Rocky, till we get nested RP support. That proposal did not find
    many takers, and Cyborg has essentially been in waiting mode.<br>
    <br>
    Since it is June already, and there is a risk of not delivering
    anything meaningful in Rocky, I am reviving my older proposal, which
    is summarized as below:<br>
    <ul>
      <li>Cyborg shall create the RCs and traits as per spec
        (<a class="moz-txt-link-freetext" href="https://review.openstack.org/#/c/554717/">https://review.openstack.org/#/c/554717/</a>), both in Rocky and
        beyond. Only the RPs will change post-Rocky.<br>
      </li>
      <li>In Rocky:</li>
      <ul>
        <li>Cyborg will not create nested RPs. It shall apply the device
          traits to the compute node RP.</li>
        <li>Cyborg will document the resulting caveat, i.e., all devices
          in the same host should have the same traits. In particular,
          we cannot have a GPU and a FPGA, or 2 FPGAs of different
          types, in the same host.</li>
        <li>Cyborg will document that upgrades to post-Rocky releases
          will require operator intervention (as described below).<br>
        </li>
      </ul>
      <li> For upgrade to post-Rocky world with nested RPs:</li>
      <ul>
        <li>The operator needs to stop all running instances that use an
          accelerator.</li>
        <li>The operator needs to run a script that removes the Cyborg
          traits and the inventory for Cyborg RCs from compute node RPs.</li>
        <li>The operator can then perform the upgrade. The new Cyborg
          agent/driver(s) shall created nested RPs and publish
          inventory/traits as specified.</li>
      </ul>
    </ul>
    <p>IMHO, it is acceptable for Cyborg to do this because it is new
      and we can set expectations for the (lack of) upgrade plan. The
      alternative is that potentially no meaningful use cases get
      addressed in Rocky for Cyborg. <br>
    </p>
    <p>Please LMK what you think.<br></p></blockquote><div><br></div><div>I thought nested resource providers were already supported by placement? To the best of my knowledge, what is <i>not</i> supported is virt drivers using these to report NUMA topologies but I doubt that affects you. The placement guys will need to weigh in on this as I could be missing something but it sounds like you can start using this functionality right now.</div><div><br></div><div>Stephen</div><div><br></div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><p>
    </p>
    Regards,<br>
    Sundar<br>
  

<pre>__________________________________________________________________________</pre><pre>OpenStack Development Mailing List (not for usage questions)</pre><pre>Unsubscribe: <a href="mailto:OpenStack-dev-request@lists.openstack.org">OpenStack-dev-request@lists.openstack.org</a>?subject:unsubscribe</pre><pre><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a></pre><pre><br></pre></blockquote><div><br></div></body></html>