On Wed, Jun 20, 2012 at 04:46:49PM -0500, Anthony Liguori wrote: > On 06/20/2012 04:42 PM, Michael S. Tsirkin wrote: > >On Wed, Jun 20, 2012 at 04:38:30PM -0500, Anthony Liguori wrote: > >>On 06/20/2012 04:32 PM, Michael S. Tsirkin wrote: > >>>On Wed, Jun 20, 2012 at 04:16:47PM -0500, Anthony Liguori wrote: > >>>>>diff --git a/hw/pci.h b/hw/pci.h > >>>>>index 7f223c0..ee669d9 100644 > >>>>>--- a/hw/pci.h > >>>>>+++ b/hw/pci.h > >>>>>@@ -558,10 +558,16 @@ static inline uint32_t pci_config_size(const > >>>>>PCIDevice *d) > >>>>> } > >>>>> > >>>>> /* DMA access functions */ > >>>>>+static inline DMAContext *pci_dma_context(PCIDevice *dev) > >>>>>+{ > >>>>>+ /* Stub for when we have no PCI iommu support */ > >>>>>+ return NULL; > >>>>>+} > >>>> > >>>>Why is all of this stuff static inline? > >>> > >>>Let's face it, most people don't need an MMU in their VM. > >>>inline stubs help make double sure we are not adding > >>>overhead for the sake of this niche case. > >> > >>It also makes for an overly complex pci.h with no obvious performance > >>justification. > >> > >A stub in a header plus an offline empty function is even more useless > >code. inline stubs is standard procedure. > > Look at 8/13. They don't stay stubs for long.
That does ont seem to touch pci.h? inlines in dma.h make sense too: a small inline wrapper that selects between the iommu/non iommu variant and an offline implementation for the iommu one. > Regards, > > Anthony Liguori > > > > >>Let's not prematurely optimize here. > >> > >>Regards, > >> > >>Anthony Liguori > > > >It's not just an optimization. It is easier to see what's going on this > >way. > >