<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">On Jun 12, 2017, at 10:20 AM, Jay Pipes <<a href="mailto:jaypipes@gmail.com" class="">jaypipes@gmail.com</a>> wrote:<br class=""><div><div class=""><br class="Apple-interchange-newline"></div><blockquote type="cite" class=""><div class=""><div class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">The RP uuid is part of the provider: the compute node's uuid, and (after <a href="https://review.openstack.org/#/c/469147/" class="">https://review.openstack.org/#/c/469147/</a> merges) the PCI device's uuid. So in the code that passes the PCI device information to the scheduler, we could add that new uuid field, and then the scheduler would have the information to a) select the best fit and then b) claim it with the specific uuid. Same for all the other nested/shared devices.<br class=""></blockquote><br style="font-family: Helvetica; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">How would the scheduler know that a particular SRIOV PF resource provider UUID is on a particular compute node unless the placement API returns information indicating that SRIOV PF is a child of a particular compute node resource provider?</span></div></div></blockquote></div><div class=""><br class=""></div>Because PCI devices are per compute node. The HostState object populates itself from the compute node here:<div class=""><br class=""></div><div class=""><a href="https://github.com/openstack/nova/blob/master/nova/scheduler/host_manager.py#L224-L225" class="">https://github.com/openstack/nova/blob/master/nova/scheduler/host_manager.py#L224-L225</a></div><div class=""><br class=""></div><div class="">If we add the UUID information to the PCI device, as the above-mentioned patch proposes, when the scheduler selects a particular compute node that has the device, it uses the PCI device’s UUID. I thought that having that information in the scheduler was what that patch was all about.<br class=""><div class="">
<br class="">-- Ed Leafe<br class=""><br class=""><br class=""><br class=""><br class="">

</div>
<br class=""></div></body></html>