From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:51454) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UX9gM-0004vX-0Q for qemu-devel@nongnu.org; Tue, 30 Apr 2013 08:29:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UX9gE-0002jb-4X for qemu-devel@nongnu.org; Tue, 30 Apr 2013 08:29:17 -0400 Message-ID: <517FB911.7030204@suse.de> Date: Tue, 30 Apr 2013 14:29:05 +0200 From: Alexander Graf MIME-Version: 1.0 References: <1367296434-15453-1-git-send-email-aik@ozlabs.ru> <1367296434-15453-4-git-send-email-aik@ozlabs.ru> <5DE88D0C-C94D-4C8F-B762-E0EDFC751F04@suse.de> <517FA7BF.8010804@ozlabs.ru> <4E3C0546-C723-4911-A1D5-61A934CCDB14@suse.de> <517FB083.4090105@ozlabs.ru> <76A4381C-0268-4685-901B-7E9BD51A7AF7@suse.de> <517FB3FA.3040007@ozlabs.ru> In-Reply-To: <517FB3FA.3040007@ozlabs.ru> Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 3/4] spapr: Code more defensively against lack of primary PCI bus List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alexey Kardashevskiy Cc: "qemu-ppc@nongnu.org" , "qemu-devel@nongnu.org" , "david@gibson.dropbear.id.au" On 04/30/2013 02:07 PM, Alexey Kardashevskiy wrote: > On 04/30/2013 09:56 PM, Alexander Graf wrote: >> >> Am 30.04.2013 um 13:52 schrieb Alexey Kardashevskiy: >> >>> On 04/30/2013 09:30 PM, Alexander Graf wrote: >>>> >>>> Am 30.04.2013 um 13:15 schrieb Alexey Kardashevskiy: >>>> >>>>> On 04/30/2013 07:45 PM, Alexander Graf wrote: >>>>>> On 30.04.2013, at 06:33, Alexey Kardashevskiy wrote: >>>>>> >>>>>>> Currently sPAPR always creates a primary PCI host bridge for emulated PCI >>>>>>> devices. However, because the platform supports native virtual IO, and >>>>>>> can also support multiple independent PCI host bridges, it's quite often >>>>>>> useful to disable the primary bridge for debugging purposes. >>>>>>> >>>>>>> This patch, therefore, makes the code cope more gracefully with a missing >>>>>>> primary host bridge. >>>>>> Does this handle the -net case too? What about disks? >>>>>> >>>>>> If those use a different mechanism to find their bus, maybe it'd be better to instead do >>>>>> >>>>>> if (phb) { >>>>>> pcibus = phb->bus; >>>>>> } else { >>>>>> pcibus = find_pci_bus(); >>>>>> } >>>>>> >>>>>> In fact, maybe the code already deals with bus==NULL? >>>>> >>>>> I needed it to deal with phb==NULL. >>>>> >>>>> The story behind this patch is that while doing VFIO stuff, I have to deal >>>>> with multiple PHBs. And sometime I want to be 100% sure that it is just >>>>> VFIO PHB and no emulated PCI stuff (especially when I debug USB PCI card in >>>>> VFIO) so I simply commented out the call which creates default emulated PHB >>>>> and that would be it if the existing code did not try to use phb->bus. >>>> Then this code does nor belong in upstream. If you want to have full control over instantiated devices, implement -nodefaults. >>> >>> -nodefaults means no default devices but it is still expected to create PCI >>> bus and libvirt heavily uses this feature. >> Your patch only addresses default device creation. > > It makes it easier to disable emulated PHB by commenting out one single > line in the code. Profit. It adds untested code paths. Nack. > If there was a way to tell QEMU via command line not to create default > emulated PHB, sure I would have implemented it but it is not there. And > this is for debug, not for a normal use so there is no point in inventing > such a parameter for qemu. Take a look at what your patch does, then at your comment and then start thinking please. Alex