On Thu, 17 Sep 2020 13:35:37 +0200 Cornelia Huck <cohuck@xxxxxxxxxx> wrote: > On Thu, 17 Sep 2020 11:31:28 +0800 > Zenghui Yu <yuzenghui@xxxxxxxxxx> wrote: > > > It isn't clear what purpose the @bardirty serves. It might be used to avoid > > the unnecessary vfio_bar_fixup() invoking on a user-space BAR read, which > > is not required when bardirty is unset. > > > > The variable was introduced in commit 89e1f7d4c66d ("vfio: Add PCI device > > driver") but never actually used, so it shouldn't be that important. Remove > > it. > > > > Signed-off-by: Zenghui Yu <yuzenghui@xxxxxxxxxx> > > --- > > drivers/vfio/pci/vfio_pci_config.c | 7 ------- > > drivers/vfio/pci/vfio_pci_private.h | 1 - > > 2 files changed, 8 deletions(-) > > Yes, it seems to have been write-only all the time. I suspect the intent was that vfio_bar_fixup() could test vdev->bardirty to avoid doing work if no BARs had been written since they were last read. As it is now we regenerate vconfig for all the BARs every time any offset of any of them are read. BARs aren't re-read regularly and config space is not a performance path, but maybe we should instead test if we see any regressions from returning without doing any work in vfio_bar_fixup() if vdev->bardirty is false. Thanks, Alex