From: Marcel Apfelbaum <marcel@redhat.com>
To: Alexey Kardashevskiy <aik@ozlabs.ru>, Gerd Hoffmann <kraxel@redhat.com>
Cc: pbonzini@redhat.com, quintela@redhat.com, seabios@seabios.org,
qemu-devel@nongnu.org, alex.williamson@redhat.com,
kevin@koconnor.net, mst@redhat.com, hare@suse.de,
imammedo@redhat.com, amit.shah@redhat.com, qemu-ppc@nongnu.org,
leon.alrae@imgtec.com, rth@twiddle.net
Subject: Re: [Qemu-devel] [Qemu-ppc] [PATCH v4 for-2.3 00/25] hw/pc: implement multiple primary busses for pc machines
Date: Tue, 10 Mar 2015 13:03:35 +0200 [thread overview]
Message-ID: <54FECF87.6060406@redhat.com> (raw)
In-Reply-To: <54FE8DF6.9040500@ozlabs.ru>
On 03/10/2015 08:23 AM, Alexey Kardashevskiy wrote:
> On 03/10/2015 06:21 AM, Marcel Apfelbaum wrote:
>> On 03/09/2015 06:55 PM, Gerd Hoffmann wrote:
>>> On Mo, 2015-03-09 at 18:26 +0200, Marcel Apfelbaum wrote:
>>>> On 03/09/2015 04:19 PM, Gerd Hoffmann wrote:
>>>>> Hi,
>>>>>
>>>>>> My series is based on commit 09d219a. Try please on top of this commit.
>>>>>
>>>>> Ok, that works. Going to play with that now ;)
>>>> Good luck! ... and tell me what you think :)
>>>> If you need any help with the command line of the pxb device, let me know,.
>>>
>>> First thing I've noticed: You need to define a numa node so you can
>>> pass a valid numa node to the pxb-device. Guess that is ok as the whole
>>> point of this is to assign pci devices to numa nodes. More complete
>>> test instructions would be nice though.
>> Exactly, this is by design. But you can also use it without specifying the
>> NUMA node...
>>
>> A detailed command line would be:
>>
>> [qemu-bin + storage options]
>> -bios [seabios-dir]/out/bios.bin -L [seabios-dir]/out/
>> -m 2G
>> -object memory-backend-ram,size=1024M,policy=bind,host-nodes=0,id=ram-node0
>> -numa node,nodeid=0,cpus=0,memdev=ram-node0
>> -object
>> memory-backend-ram,size=1024M,policy=interleave,host-nodes=0,id=ram-node1
>> -numa node,nodeid=1,cpus=1,memdev=ram-node1
>> -device pxb-device,id=bridge1,bus=pci.0,numa_node=1,bus_nr=4 -netdev
>> user,id=nd-device e1000,bus=bridge1,addr=0x4,netdev=nd
>> -device pxb-device,id=bridge2,bus=pci.0,numa_node=0,bus_nr=8 -device
>> e1000,bus=bridge2,addr=0x3
>> -device pxb-device,id=bridge3,bus=pci.0,bus_nr=40 -drive
>> if=none,id=drive0,file=[img] -device
>> virtio-blk-pci,drive=drive0,scsi=off,bus=bridge3,addr=1
>
>
> I replayed this patchset on top of 09d219a "acpi: update generated files" and got this:
>
>
> qemu-system-x86_64: -object memory-backend-ram,size=1024M,policy=bind,host-nodes=0,id=ram-node0: NUMA node binding are not supported by this QEMU
> qemu-system-x86_64: -object memory-backend-ram,size=1024M,policy=interleave,host-nodes=0,id=ram-node1: NUMA node binding are not supported by this QEMU
Hi,
Please check your configuration (after you run ./configure script). See if you have a line like this:
- NUMA host support yes
>
>
> This is my exact command line:
>
> /scratch/alexey/p/qemu-build/x86_x86_64/x86_64-softmmu/qemu-system-x86_64 \
> -L /home/alexey/p/qemu/pc-bios/ \
> -hda x86/fc19_24GB_x86.qcow2 \
> -enable-kvm \
> -kernel x86/vmlinuz-3.12.11-201.fc19.x86_64 \
> -initrd x86/initramfs-3.12.11-201.fc19.x86_64.img \
> -append "root=/dev/sda3 console=ttyS0" \
> -nographic \
> -nodefaults \
> -chardev stdio,id=id2,signal=off,mux=on \
> -device isa-serial,id=id3,chardev=id2 \
> -mon id=id4,chardev=id2,mode=readline \
> -m 2G \
> -object memory-backend-ram,size=1024M,policy=bind,host-nodes=0,id=ram-node0 \
> -numa node,nodeid=0,cpus=0,memdev=ram-node0 \
> -object memory-backend-ram,size=1024M,policy=interleave,host-nodes=0,id=ram-node1 \
> -numa node,nodeid=1,cpus=1,memdev=ram-node1 \
> -device pxb-device,id=bridge1,bus=pci.0,numa_node=1,bus_nr=4 \
> -netdev user,id=nd-device e1000,bus=bridge1,addr=0x4,netdev=nd \
> -device pxb-device,id=bridge2,bus=pci.0,numa_node=0,bus_nr=8 \
> -device e1000,bus=bridge2,addr=0x3 \
> -device pxb-device,id=bridge3,bus=pci.0,bus_nr=40 \
> -drive if=none,id=drive0,file=debian_lenny_powerpc_desktop.qcow2 \
> -device virtio-blk-pci,drive=drive0,scsi=off,bus=bridge3,addr=1 \
>
>
> What am I missing here?
See above, check for NUMA host support
>
>
> What I actually wanted to find out (instead of asking what I am doing now) is is this PXB device a PCI device sitting on the same PCI host bus adapter (1) or it is a separate PHB (2) with its own PCI
> domain (new XXXX in XXXX:00:00.0 PCI address)? I would think it is (1) but then what exactly do you call "A primary PCI bus" here (that's my ignorance speaking, yes :) )? Thanks.
You are right, the PXB is a device on the piix host-bridge bus and its bus uses the same PCI domain.
However, the bus behind is exposed through ACPI as Primary PCI bus and starts a new PCI hierarchy.
You have a similar approach on Intel 450x chipset:
http://www.intel.com/design/chipsets/datashts/243771.htm
Look for 82454NX PCI Expander Bridge (PXB)
Thanks,
Marcel
>
>
>
>> Here you have:
>> - 2 NUMA nodes for the guest, 0 and 1. (both mapped to the same NUMA node
>> in host, but you can and should put it in different host NUMA nodes)
>> - a pxb host bridge attached to NUMA 1 with an e1000 behind it
>> - a pxb host bridge attached to NUMA 0 with an e1000 behind it
>> - a pxb host bridge not attached to any NUMA with a hard drive behind it.
>>
>> As you can see, since you already "decide" NUMA mapping at command line, it
>> is "natural" also to attach the pxbs to the NUMA nodes.
>>
>>>
>>> Second thing: Booting with an unpatched seabios has bad effects:
>>>
>>> [root@localhost ~]# cat /proc/iomem
>>> 00000000-000fffff : PCI Bus 0000:10
>>> 00000000-00000fff : reserved
>>> 00001000-0009fbff : System RAM
>>> 0009fc00-0009ffff : reserved
>>> 000c0000-000c91ff : Video ROM
>>> 000c9800-000ca1ff : Adapter ROM
>>> 000ca800-000ccbff : Adapter ROM
>>> 000f0000-000fffff : reserved
>>> 000f0000-000fffff : System ROM
>>> 00100000-3ffdffff : System RAM
>>> 01000000-0174bde4 : Kernel code
>>> 0174bde5-01d30cff : Kernel data
>>> 01eaa000-0202afff : Kernel bss
>>> 3ffe0000-3fffffff : reserved
>>> fd000000-fdffffff : 0000:00:02.0
>>> fd000000-fdffffff : bochs-drm
>>> febc0000-febdffff : 0000:00:03.0
>>> febc0000-febdffff : e1000
>>> febf0000-febf0fff : 0000:00:02.0
>>> febf0000-febf0fff : bochs-drm
>>> fec00000-fec003ff : IOAPIC 0
>>> fed00000-fed003ff : HPET 0
>>> fed00000-fed003ff : PNP0103:00
>>> fee00000-fee00fff : Local APIC
>>> feffc000-feffffff : reserved
>>> fffc0000-ffffffff : reserved
>>>
>>> "PCI Bus 0000:10" is bogus and "PCI Bus 0000:00" isn't there at all.
>> Yes, you shouldn't use pxb if you are not using the corresponding SeaBIOS.
>> However, as I understand we always attach a SeaBIOS binary with a QEMU
>> release,
>> so we should be OK with this.
>>
>> And this is the reason I wanted bios support *before* the PXB device
>> implementation,
>> but anyway, even if we have them in the same time, as long as the release
>> has both pxb and BIOS with pxb support, is OK. (I think...)
>>
>> I appreciate you looking into this and if you need further assistance
>> don't hesitate to mail me! :)
>>
>> Thanks,
>> Marcel
>>
>>>
>>> cheers,
>>> Gerd
>>>
>>>
>>
>>
>
>
next prev parent reply other threads:[~2015-03-10 11:59 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-08 11:16 [Qemu-devel] [PATCH v4 for-2.3 00/25] hw/pc: implement multiple primary busses for pc machines Marcel Apfelbaum
2015-03-08 11:16 ` [Qemu-devel] [PATCH v4 for-2.3 01/25] acpi: fix aml_equal term implementation Marcel Apfelbaum
2015-03-09 10:28 ` Igor Mammedov
2015-03-09 11:04 ` Michael S. Tsirkin
2015-03-09 12:26 ` Igor Mammedov
2015-03-09 14:46 ` Michael S. Tsirkin
2015-03-08 11:16 ` [Qemu-devel] [PATCH v4 for-2.3 02/25] acpi: add aml_or() term Marcel Apfelbaum
2015-03-09 7:58 ` Shannon Zhao
2015-03-09 9:22 ` Marcel Apfelbaum
2015-03-08 11:16 ` [Qemu-devel] [PATCH v4 for-2.3 03/25] acpi: add aml_add() term Marcel Apfelbaum
2015-03-08 11:16 ` [Qemu-devel] [PATCH v4 for-2.3 04/25] acpi: add aml_lless() term Marcel Apfelbaum
2015-03-09 8:03 ` Shannon Zhao
2015-03-08 11:16 ` [Qemu-devel] [PATCH v4 for-2.3 05/25] acpi: add aml_index() term Marcel Apfelbaum
2015-03-09 10:39 ` Igor Mammedov
2015-03-09 11:00 ` Michael S. Tsirkin
2015-03-09 11:37 ` Marcel Apfelbaum
2015-03-08 11:16 ` [Qemu-devel] [PATCH v4 for-2.3 06/25] acpi: add aml_shiftleft() term Marcel Apfelbaum
2015-03-08 11:16 ` [Qemu-devel] [PATCH v4 for-2.3 07/25] acpi: add aml_shiftright() term Marcel Apfelbaum
2015-03-08 11:16 ` [Qemu-devel] [PATCH v4 for-2.3 08/25] acpi: add aml_increment() term Marcel Apfelbaum
2015-03-09 8:08 ` Shannon Zhao
2015-03-09 8:16 ` Shannon Zhao
2015-03-08 11:16 ` [Qemu-devel] [PATCH v4 for-2.3 09/25] acpi: add aml_while() term Marcel Apfelbaum
2015-03-09 8:20 ` Shannon Zhao
2015-03-08 11:16 ` [Qemu-devel] [PATCH v4 for-2.3 10/25] hw/acpi: add support for multiple root busses Marcel Apfelbaum
2015-03-08 16:10 ` Michael S. Tsirkin
2015-03-08 18:00 ` Marcel Apfelbaum
2015-03-08 11:16 ` [Qemu-devel] [PATCH v4 for-2.3 11/25] hw/apci: add _PRT method for extra PCI " Marcel Apfelbaum
2015-03-10 17:07 ` Michael S. Tsirkin
2015-03-10 17:26 ` Marcel Apfelbaum
2015-03-10 17:40 ` Michael S. Tsirkin
2015-03-11 1:06 ` Shannon Zhao
2015-03-08 11:16 ` [Qemu-devel] [PATCH v4 for-2.3 12/25] hw/acpi: add _CRS method for extra " Marcel Apfelbaum
2015-03-08 16:27 ` Michael S. Tsirkin
2015-03-08 18:14 ` Marcel Apfelbaum
2015-03-08 11:16 ` [Qemu-devel] [PATCH v4 for-2.3 13/25] hw/acpi: remove from root bus 0 the crs resources used by other busses Marcel Apfelbaum
2015-03-08 16:13 ` Kevin O'Connor
2015-03-08 17:51 ` Marcel Apfelbaum
2015-03-08 18:26 ` Kevin O'Connor
2015-03-08 18:32 ` Marcel Apfelbaum
2015-03-08 18:34 ` Michael S. Tsirkin
2015-03-08 18:46 ` Kevin O'Connor
2015-03-09 8:44 ` Michael S. Tsirkin
2015-03-10 13:09 ` Stefan Hajnoczi
2015-03-08 11:16 ` [Qemu-devel] [PATCH v4 for-2.3 14/25] hw/pci: move pci bus related code to separate files Marcel Apfelbaum
2015-03-08 11:16 ` [Qemu-devel] [PATCH v4 for-2.3 15/25] hw/pci: made pci_bus_is_root a PCIBusClass method Marcel Apfelbaum
2015-03-08 11:16 ` [Qemu-devel] [PATCH v4 for-2.3 16/25] hw/pci: made pci_bus_num " Marcel Apfelbaum
2015-03-08 11:16 ` [Qemu-devel] [PATCH v4 for-2.3 17/25] hw/pci: introduce TYPE_PCI_MAIN_HOST_BRIDGE interface Marcel Apfelbaum
2015-03-08 11:16 ` [Qemu-devel] [PATCH v4 for-2.3 18/25] hw/pci: removed 'rootbus nr is 0' assumption from qmp_pci_query Marcel Apfelbaum
2015-03-08 11:16 ` [Qemu-devel] [PATCH v4 for-2.3 19/25] hw/pci: implement iteration over multiple host bridges Marcel Apfelbaum
2015-03-08 11:16 ` [Qemu-devel] [PATCH v4 for-2.3 20/25] hw/pci: introduce PCI Expander Bridge (PXB) Marcel Apfelbaum
2015-03-08 11:16 ` [Qemu-devel] [PATCH v4 for-2.3 21/25] hw/pci: inform bios if the system has more than one pci bridge Marcel Apfelbaum
2015-03-08 11:16 ` [Qemu-devel] [PATCH v4 for-2.3 22/25] hw/pci: piix - suport multiple host bridges Marcel Apfelbaum
2015-03-08 11:16 ` [Qemu-devel] [PATCH v4 for-2.3 23/25] hw/pxb: add map_irq func Marcel Apfelbaum
2015-03-08 11:16 ` [Qemu-devel] [PATCH v4 for-2.3 24/25] hw/pci_bus: add support for NUMA nodes Marcel Apfelbaum
2015-03-08 11:16 ` [Qemu-devel] [PATCH v4 for-2.3 25/25] hw/pxb: add numa_node parameter Marcel Apfelbaum
2015-03-09 7:43 ` [Qemu-devel] [PATCH v4 for-2.3 00/25] hw/pc: implement multiple primary busses for pc machines Gerd Hoffmann
2015-03-09 9:20 ` Marcel Apfelbaum
2015-03-09 10:18 ` Gerd Hoffmann
2015-03-09 10:21 ` Marcel Apfelbaum
2015-03-09 14:19 ` Gerd Hoffmann
2015-03-09 16:26 ` Marcel Apfelbaum
2015-03-09 16:55 ` Gerd Hoffmann
2015-03-09 19:21 ` Marcel Apfelbaum
2015-03-10 6:23 ` [Qemu-devel] [Qemu-ppc] " Alexey Kardashevskiy
2015-03-10 11:03 ` Marcel Apfelbaum [this message]
2015-03-10 8:36 ` [Qemu-devel] " Gerd Hoffmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=54FECF87.6060406@redhat.com \
--to=marcel@redhat.com \
--cc=aik@ozlabs.ru \
--cc=alex.williamson@redhat.com \
--cc=amit.shah@redhat.com \
--cc=hare@suse.de \
--cc=imammedo@redhat.com \
--cc=kevin@koconnor.net \
--cc=kraxel@redhat.com \
--cc=leon.alrae@imgtec.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=quintela@redhat.com \
--cc=rth@twiddle.net \
--cc=seabios@seabios.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.