Sundar- > * Cyborg drivers deal with device-specific aspects, including > discovery/enumeration of devices and handling the Device Half of the > attach (preparing devices/accelerators for attach to an instance, > post-attach cleanup (if any) after successful attach, releasing > device/accelerator resources on instance termination or failed > attach, etc.) > * os-acc plugins deal with hypervisor/system/architecture-specific > aspects, including handling the Instance Half of the attach (e.g. > for libvirt with PCI, preparing the XML snippet to be included in > the domain XML).
This sounds well and good, but discovery/enumeration will also be hypervisor/system/architecture-specific. So... > Thus, the drivers and plugins are expected to be complementary. For > example, for 2 devices of types T1 and T2, there shall be 2 separate > Cyborg drivers. Further, we would have separate plugins for, say, > x86+KVM systems and Power systems. We could then have four different > deployments -- T1 on x86+KVM, T2 on x86+KVM, T1 on Power, T2 on Power -- > by suitable combinations of the drivers and plugins. ...the discovery/enumeration code for T1 on x86+KVM (lsdev? lspci? walking the /dev file system?) will be totally different from the discovery/enumeration code for T1 on Power (pypowervm.wrappers.ManagedSystem.get(adapter)). I don't mind saying "drivers do the device side; plugins do the instance side" but I don't see getting around the fact that both "sides" will need to have platform-specific code. > One secondary detail to note is that Nova compute calls os-acc per > instance for all accelerators for that instance, not once for each > accelerator. You mean for getVAN()? Because AFAIK, os_vif.plug(list_of_vif_objects, InstanceInfo) is *not* how nova uses os-vif for plugging. Thanks, Eric . __________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev