On Wed, May 31, 2017 at 06:11:40PM +0100, Ferruh Yigit wrote: > On 5/31/2017 4:30 PM, Stephen Hemminger wrote: > > On Wed, 31 May 2017 13:20:08 +0100 > > Ferruh Yigit <ferruh.yi...@intel.com> wrote: > > > >> On 5/31/2017 12:09 PM, Shijith Thotton wrote: > >>> Set UIO info device file operations open and release. Call pci reset > >>> function inside open and release to clear device state at start and > >>> end. Copied this behaviour from vfio_pci kernel module code. With this > >>> change, it is not mandatory to issue FLR by PMD's during init and close. > >> > >> Cc: Jianfeng Tan <jianfeng....@intel.com> > >> > >> Jianfeng also implemented following patch: > >> http://dpdk.org/dev/patchwork/patch/17495/ > >> > >> Which also implements release and open ops, for slightly different > >> reason (prevent DMA access after app exit), but mainly both are to > >> gracefully handle application exit status. > >> > >> btw, for Jianfeng's case, can adding pci_clear_master() in release and > >> moving pci_set_master() to open help preventing unwanted DMA? > >> > >> > >> Gregory, > >> > >> Can you please check if this patch fixes your issue? > >> > >> Thanks, > >> ferruh > > > > pci_reset should stop all DMA. It also clears master status.
Per Alex Williamson[1], bus master will be disabled after FLR. But a disable is preferred after reset, since all device won't behave as per spec. 1. http://www.spinics.net/lists/kvm/msg115715.html > > If so, should open() call pci_set_master(), currently it has been only > called by igbuio_pci_probe() once? DPDK has pci_uio_set_bus_master/pci_vfio_set_bus_master to set bus master. Can we leave it to the application ? vfio leaves the device with bus master disabled after open.