Dan Kenigsberg has posted comments on this change. Change subject: hostdev: fix creation and deletion of multiple udev rules ......................................................................
Patch Set 4: (3 comments) https://gerrit.ovirt.org/#/c/38208/4//COMMIT_MSG Commit Message: Line 7: hostdev: fix creation and deletion of multiple udev rules Line 8: Line 9: When attaching multiple devices from the same group, each of the Line 10: devices needs to be detached and then later reattached to the host. To Line 11: this routine is hooked udev rule creation to give qemu access to English here is a bit clanky (/me do not understand) and it is slightly out of date. Line 12: /dev/vfio endpoint. This patch corrects behaviour of udev if the file Line 13: already exists or does not exist due to creation or deletion of VM. Line 14: Line 15: Change-Id: I83fffb2f6e42cc1746f30ca2b63c5d594de014e5 https://gerrit.ovirt.org/#/c/38208/4/vdsm/supervdsmServer File vdsm/supervdsmServer: Line 313: if not os.path.isfile(rule_file): Line 314: # If the file exists, different device from the same group has Line 315: # already been detached and we therefore can skip overwriting the Line 316: # file. Also, this file should only be created/removed via the Line 317: # means of supervdsm, therefore no races should occur. the last statement is false, as super vdsm is multithreaded. in this case, however, we do not care about the race as at the worst case, both concurrent calls would simply overwrite the same files Line 318: Line 319: rule = ('KERNEL=="{}", SUBSYSTEM=="vfio" RUN+="{} {}:{} ' Line 320: '/dev/vfio/{}"').format(iommu_group, EXT_CHOWN, Line 321: QEMU_PROCESS_USER, Line 340: error = False Line 341: Line 342: try: Line 343: os.remove(rule_file) Line 344: self.log.debug("Removing rule %s", rule_file) please move the logging out of the try-block and into the "else" clause of it. We do not want to conduse an OSError while logging with OSerror whiule removing. Line 345: except OSError as e: Line 346: if e.errno == errno.ENOENT: Line 347: # OSError with ENOENT errno here means that the rule file does Line 348: # not exist - this is expected when multiple devices in one -- To view, visit https://gerrit.ovirt.org/38208 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I83fffb2f6e42cc1746f30ca2b63c5d594de014e5 Gerrit-PatchSet: 4 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Martin Polednik <mpoled...@redhat.com> Gerrit-Reviewer: Dan Kenigsberg <dan...@redhat.com> Gerrit-Reviewer: Francesco Romani <from...@redhat.com> Gerrit-Reviewer: Ido Barkan <ibar...@redhat.com> Gerrit-Reviewer: Martin Betak <mbe...@redhat.com> Gerrit-Reviewer: Martin Polednik <mpoled...@redhat.com> Gerrit-Reviewer: Michal Skrivanek <michal.skriva...@redhat.com> Gerrit-Reviewer: automat...@ovirt.org Gerrit-Reviewer: oVirt Jenkins CI Server Gerrit-HasComments: Yes _______________________________________________ vdsm-patches mailing list vdsm-patches@lists.fedorahosted.org https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches