On Thu, Oct 10, 2024 at 12:32:02PM +0200, Michał Winiarski wrote: > VF MMIO resource reservation, either created by system firmware and > inherited by Linux PCI subsystem or created by the subsystem itself, > contains enough space to fit the BAR of all SR-IOV Virtual Functions > that can potentially be created (total VFs supported by the device). It's *possible* that this is true, but there's no guarantee that firmware has assigned enough space for all BARs of all possible VFs. > This can be leveraged when the device is exposing lower than optimal BAR > size as a default, allowing access to the entire resource when lower > number of VFs are created. > It is achieved by dynamically resizing the BAR to largest possible value > that allows to fit all newly created VFs within the original resource > boundary. Add blank lines between paragraphs. This log doesn't actually say what the patch does. It describes a possible configuration and ways that it may be used, and even *how* something might be done, but something along the lines of the subject line should be included in the commit log. > +static void pci_iov_resource_do_extend(struct pci_dev *dev, int resno, u16 num_vfs) Please wrap to fit in 80 columns like the rest of the file. > +int pci_iov_resource_extend(struct pci_dev *dev, int resno, bool enable) Please add kerneldoc here to help users of this exported function. > @@ -480,6 +560,11 @@ static ssize_t sriov_numvfs_store(struct device *dev, > goto exit; > } > > + for (i = 0; i < PCI_SRIOV_NUM_BARS; i++) { > + if (pdev->sriov->rebar_extend[i]) > + pci_iov_resource_do_extend(pdev, i + PCI_IOV_RESOURCES, num_vfs); Wrap to fit in 80 columns. Bjorn