Messages in this thread Patch in this message | | | Date | Mon, 21 Sep 2020 12:21:34 +0200 | From | Cornelia Huck <> | Subject | Re: [PATCH v2 2/2] vfio/pci: Don't regenerate vconfig for all BARs if !bardirty |
| |
On Mon, 21 Sep 2020 12:51:16 +0800 Zenghui Yu <yuzenghui@huawei.com> wrote:
> Now we regenerate vconfig for all the BARs via vfio_bar_fixup(), every time > any offset of any of them are read. Though BARs aren't re-read regularly, > the regeneration can be avoid if no BARs had been written since they were
s/avoid/avoided/
> last read, in which case the vdev->bardirty is false.
s/the//
> > Let's predicate the vfio_bar_fixup() on the bardirty so that it can return > immediately if !bardirty.
Maybe
"Let's return immediately in vfio_bar_fixup() if bardirty is false." ?
> > Suggested-by: Alex Williamson <alex.williamson@redhat.com> > Signed-off-by: Zenghui Yu <yuzenghui@huawei.com> > --- > * From v1: > - Per Alex's suggestion, let vfio_bar_fixup() test vdev->bardirty to > avoid doing work if bardirty is false, instead of removing it entirely. > - Rewrite the commit message. > > drivers/vfio/pci/vfio_pci_config.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/vfio/pci/vfio_pci_config.c b/drivers/vfio/pci/vfio_pci_config.c > index d98843feddce..5e02ba07e8e8 100644 > --- a/drivers/vfio/pci/vfio_pci_config.c > +++ b/drivers/vfio/pci/vfio_pci_config.c > @@ -467,6 +467,9 @@ static void vfio_bar_fixup(struct vfio_pci_device *vdev) > __le32 *vbar; > u64 mask; > > + if (!vdev->bardirty)
Finally, bardirty can actually affect something :)
> + return; > + > vbar = (__le32 *)&vdev->vconfig[PCI_BASE_ADDRESS_0]; > > for (i = 0; i < PCI_STD_NUM_BARS; i++, vbar++) {
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
| |