From: Peter Xu <peterx@redhat.com>
To: Eric Auger <eric.auger@redhat.com>
Cc: peter.maydell@linaro.org, kevin.tian@intel.com, mst@redhat.com,
tn@semihalf.com, qemu-devel@nongnu.org,
alex.williamson@redhat.com, qemu-arm@nongnu.org,
jean-philippe@linaro.org, bharat.bhushan@nxp.com,
eric.auger.pro@gmail.com
Subject: Re: [Qemu-devel] [PATCH for-4.2 v10 05/15] virtio-iommu: Add the iommu regions
Date: Fri, 16 Aug 2019 12:00:16 +0800 [thread overview]
Message-ID: <20190816040016.GA3114@xz-x1> (raw)
In-Reply-To: <20190730172137.23114-6-eric.auger@redhat.com>
On Tue, Jul 30, 2019 at 07:21:27PM +0200, Eric Auger wrote:
[...]
> static void virtio_iommu_get_config(VirtIODevice *vdev, uint8_t *config_data)
> {
> VirtIOIOMMU *dev = VIRTIO_IOMMU(vdev);
> @@ -266,6 +333,15 @@ static void virtio_iommu_device_realize(DeviceState *dev, Error **errp)
> virtio_add_feature(&s->features, VIRTIO_IOMMU_F_MAP_UNMAP);
> virtio_add_feature(&s->features, VIRTIO_IOMMU_F_BYPASS);
> virtio_add_feature(&s->features, VIRTIO_IOMMU_F_MMIO);
> +
> + memset(s->as_by_bus_num, 0, sizeof(s->as_by_bus_num));
> + s->as_by_busptr = g_hash_table_new(NULL, NULL);
VT-d was using g_hash_table_new_full() so that potentially VTDBus can
still be freed. Here for IOMMUPCIBus allocated in
virtio_iommu_find_add_as() I think it'll be leaked if we remove
entries in the hash table?
So I started to wonder whether PCI/PCIe buses are allowed to be
plugged/unplugged after all because I never tried. With latest
5.3.0-rc4 guest I gave it a shot and I see the error below. It could
be something that I did wrong or it could be simply that it's not
working at all. Have you tried anything like that? Michael/Alex?
bin=x86_64-softmmu/qemu-system-x86_64
$bin -M q35,accel=kvm,kernel-irqchip=on -smp 8 -m 2G -cpu host \
-monitor telnet::6666,server,nowait -nographic \
-device e1000,netdev=net0 \
-netdev user,id=net0,hostfwd=tcp::5555-:22 \
-device pcie-pci-bridge,bus=pcie.0,id=pci.1 \
-drive file=/images/default.qcow2,if=none,cache=none,id=drive0 \
-device virtio-blk,drive=drive0
(qemu) device_add pci-bridge,bus=pci.1,id=pci.2,chassis_nr=1,addr=1.0
[ 66.172352] pci 0000:01:01.0: [1b36:0001] type 01 class 0x060400
[ 66.176897] pci 0000:01:01.0: reg 0x10: [mem 0x00000000-0x000000ff 64bit]
[ 66.186130] pci 0000:01:01.0: No bus number available for hot-added bridge
[ 66.189489] shpchp 0000:00:03.0: BAR 14: assigned [mem 0x80000000-0x800fffff]
[ 66.193235] pci 0000:01:01.0: BAR 0: assigned [mem 0x80000000-0x800000ff 64bit]
[ 66.198587] shpchp 0000:00:03.0: PCI bridge to [bus 01]
[ 66.204113] shpchp 0000:00:03.0: bridge window [mem 0x80000000-0x800fffff]
[ 66.215212] shpchp 0000:01:01.0: HPC vendor_id 1b36 device_id 1 ss_vid 0 ss_did 0
[ 66.218531] shpchp 0000:01:01.0: enabling device (0000 -> 0002)
[ 66.229204] BUG: kernel NULL pointer dereference, address: 00000000000000e2
[ 66.232124] #PF: supervisor write access in kernel mode
[ 66.234369] #PF: error_code(0x0002) - not-present page
[ 66.236585] PGD 0 P4D 0
[ 66.237431] Oops: 0002 [#1] SMP PTI
[ 66.238617] CPU: 2 PID: 277 Comm: kworker/2:1 Kdump: loaded Not tainted 5.3.0-rc4 #85
[ 66.241200] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.12.1-0-ga5cab58e9a3f-prebuilt.qemu.org 04/01/2014
[ 66.244916] Workqueue: shpchp-1 shpchp_pushbutton_thread
[ 66.246583] RIP: 0010:shpc_init.cold+0x5c3/0x8a1
[ 66.248041] Code: 24 90 01 00 00 8b 49 08 40 80 fe 02 0f 85 f4 01 00 00 f7 c1 00 00 00 f0 0f 84 b2 01 00 00 b9 13 00 00 00 80 3d 33 40 38 02 00 <88> 8a e26
[ 66.253771] RSP: 0018:ffffc9000025bb68 EFLAGS: 00010246
[ 66.255418] RAX: 00000000000000ff RBX: 0000000000000000 RCX: 0000000000000000
[ 66.257763] RDX: 0000000000000000 RSI: ffffffff826bcd01 RDI: ffffffff826bcd60
[ 66.260065] RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000000
[ 66.263184] R10: 0000000000000005 R11: 0000000000000000 R12: ffff888032425400
[ 66.265706] R13: ffffc9000017109c R14: ffff888033da7000 R15: 000000000000001f
[ 66.268200] FS: 0000000000000000(0000) GS:ffff88807fc80000(0000) knlGS:0000000000000000
[ 66.270826] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 66.272731] CR2: 00000000000000e2 CR3: 0000000033afc002 CR4: 0000000000360ee0
[ 66.275373] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 66.277947] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[ 66.279965] Call Trace:
[ 66.280627] shpc_probe+0x91/0x32b
[ 66.281644] local_pci_probe+0x42/0x80
[ 66.282752] pci_device_probe+0x107/0x1a0
[ 66.283877] really_probe+0xf0/0x380
[ 66.284862] driver_probe_device+0x59/0xd0
[ 66.285988] ? driver_allows_async_probing+0x50/0x50
[ 66.287937] bus_for_each_drv+0x7e/0xc0
[ 66.289752] __device_attach+0xe1/0x160
[ 66.292076] pci_bus_add_device+0x4b/0x70
[ 66.295244] pci_bus_add_devices+0x2c/0x64
[ 66.297429] shpchp_configure_device+0xc1/0xe0
[ 66.299692] board_added+0x117/0x240
[ 66.301589] shpchp_enable_slot+0x121/0x2e0
[ 66.303686] shpchp_pushbutton_thread+0x70/0xa0
[ 66.305941] process_one_work+0x221/0x500
[ 66.308253] worker_thread+0x50/0x3b0
[ 66.310512] kthread+0xfb/0x130
[ 66.312422] ? process_one_work+0x500/0x500
[ 66.314617] ? kthread_park+0x80/0x80
[ 66.316489] ret_from_fork+0x3a/0x50
[ 66.318293] Modules linked in: intel_rapl_msr intel_rapl_common kvm_intel kvm crct10dif_pclmul bochs_drm crc32_pclmul drm_vram_helper ghash_clmulni_intel o
[ 66.331179] CR2: 00000000000000e2
[ 66.333090] ---[ end trace cfc73b2e92e207d4 ]---
[ 66.335431] RIP: 0010:shpc_init.cold+0x5c3/0x8a1
[ 66.337790] Code: 24 90 01 00 00 8b 49 08 40 80 fe 02 0f 85 f4 01 00 00 f7 c1 00 00 00 f0 0f 84 b2 01 00 00 b9 13 00 00 00 80 3d 33 40 38 02 00 <88> 8a e26
[ 66.346561] RSP: 0018:ffffc9000025bb68 EFLAGS: 00010246
[ 66.348659] RAX: 00000000000000ff RBX: 0000000000000000 RCX: 0000000000000000
[ 66.351412] RDX: 0000000000000000 RSI: ffffffff826bcd01 RDI: ffffffff826bcd60
[ 66.354204] RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000000
[ 66.357013] R10: 0000000000000005 R11: 0000000000000000 R12: ffff888032425400
[ 66.360117] R13: ffffc9000017109c R14: ffff888033da7000 R15: 000000000000001f
[ 66.362953] FS: 0000000000000000(0000) GS:ffff88807fc80000(0000) knlGS:0000000000000000
[ 66.366003] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 66.368756] CR2: 00000000000000e2 CR3: 0000000033afc002 CR4: 0000000000360ee0
[ 66.371769] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 66.376036] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Regards,
--
Peter Xu
next prev parent reply other threads:[~2019-08-16 4:01 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-30 17:21 [Qemu-devel] [PATCH for-4.2 v10 00/15] VIRTIO-IOMMU device Eric Auger
2019-07-30 17:21 ` [Qemu-devel] [PATCH for-4.2 v10 01/15] update-linux-headers: Import virtio_iommu.h Eric Auger
2019-07-30 17:21 ` [Qemu-devel] [PATCH for-4.2 v10 02/15] linux-headers: update against 5.3-rc2 Eric Auger
2019-07-30 17:21 ` [Qemu-devel] [PATCH for-4.2 v10 03/15] virtio-iommu: Add skeleton Eric Auger
2019-08-15 13:54 ` Peter Xu
2019-08-29 12:18 ` Auger Eric
2019-08-30 1:26 ` Peter Xu
2019-08-30 8:12 ` Auger Eric
2019-07-30 17:21 ` [Qemu-devel] [PATCH for-4.2 v10 04/15] virtio-iommu: Decode the command payload Eric Auger
2019-07-30 17:21 ` [Qemu-devel] [PATCH for-4.2 v10 05/15] virtio-iommu: Add the iommu regions Eric Auger
2019-08-16 4:00 ` Peter Xu [this message]
2019-08-29 12:51 ` Auger Eric
2019-07-30 17:21 ` [Qemu-devel] [PATCH for-4.2 v10 06/15] virtio-iommu: Endpoint and domains structs and helpers Eric Auger
2019-08-16 4:17 ` Peter Xu
2019-11-04 18:31 ` Jean-Philippe Brucker
2019-11-25 13:14 ` Auger Eric
2019-07-30 17:21 ` [Qemu-devel] [PATCH for-4.2 v10 07/15] virtio-iommu: Implement attach/detach command Eric Auger
2019-08-16 4:27 ` Peter Xu
2019-08-29 14:24 ` Auger Eric
2019-07-30 17:21 ` [Qemu-devel] [PATCH for-4.2 v10 08/15] virtio-iommu: Implement map/unmap Eric Auger
2019-08-19 8:11 ` Peter Xu
2019-09-03 11:37 ` Auger Eric
2019-09-04 1:44 ` Peter Xu
2019-09-04 4:23 ` Tian, Kevin
2019-09-04 5:37 ` Peter Xu
2019-09-04 5:46 ` Tian, Kevin
2019-09-04 7:54 ` Auger Eric
2019-09-04 8:32 ` Peter Xu
2019-07-30 17:21 ` [Qemu-devel] [PATCH for-4.2 v10 09/15] virtio-iommu: Implement translate Eric Auger
2019-08-19 8:24 ` Peter Xu
2019-09-03 11:45 ` Auger Eric
2019-09-04 1:58 ` Peter Xu
2019-07-30 17:21 ` [Qemu-devel] [PATCH for-4.2 v10 10/15] virtio-iommu: Implement probe request Eric Auger
2019-08-19 12:08 ` Peter Xu
2019-09-03 12:23 ` Auger Eric
2019-07-30 17:21 ` [Qemu-devel] [PATCH for-4.2 v10 11/15] virtio-iommu: Expose the IOAPIC MSI reserved region when relevant Eric Auger
2019-07-30 19:38 ` Michael S. Tsirkin
2019-07-30 23:20 ` Tian, Kevin
2019-07-31 9:05 ` Auger Eric
2019-07-31 19:25 ` Michael S. Tsirkin
2019-07-31 19:44 ` Auger Eric
2019-07-31 23:23 ` Tian, Kevin
2019-07-30 17:21 ` [Qemu-devel] [PATCH for-4.2 v10 12/15] virtio-iommu: Implement fault reporting Eric Auger
2019-07-30 17:21 ` [Qemu-devel] [PATCH for-4.2 v10 13/15] virtio_iommu: Handle reserved regions in translation process Eric Auger
2019-08-19 12:44 ` Peter Xu
2019-09-01 6:38 ` Michael S. Tsirkin
2019-07-30 17:21 ` [Qemu-devel] [PATCH for-4.2 v10 14/15] virtio-iommu-pci: Add virtio iommu pci support Eric Auger
2019-07-30 19:35 ` Michael S. Tsirkin
2019-08-01 12:15 ` Auger Eric
2019-08-01 13:06 ` Michael S. Tsirkin
2019-08-01 13:49 ` Auger Eric
2019-09-01 6:40 ` Michael S. Tsirkin
2019-09-04 14:19 ` Auger Eric
2019-09-04 21:36 ` Michael S. Tsirkin
2019-07-30 17:21 ` [Qemu-devel] [PATCH for-4.2 v10 15/15] hw/arm/virt: Add the virtio-iommu device tree mappings Eric Auger
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=20190816040016.GA3114@xz-x1 \
--to=peterx@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=bharat.bhushan@nxp.com \
--cc=eric.auger.pro@gmail.com \
--cc=eric.auger@redhat.com \
--cc=jean-philippe@linaro.org \
--cc=kevin.tian@intel.com \
--cc=mst@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=tn@semihalf.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).