[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 06/19] util/vfio-helpers: Trace PCI I/O config accesses
From: |
Auger Eric |
Subject: |
Re: [PATCH v2 06/19] util/vfio-helpers: Trace PCI I/O config accesses |
Date: |
Mon, 26 Oct 2020 19:02:14 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 |
Hi Philippe,
On 10/26/20 11:54 AM, Philippe Mathieu-Daudé wrote:
> We sometime get kernel panic with some devices on Aarch64
> hosts. Alex Williamson suggests it might be broken PCIe
> root complex. Add trace event to record the latest I/O
> access before crashing. In case, assert our accesses are
> aligned.
>
> Reviewed-by: Fam Zheng <fam@euphon.net>
> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
> util/vfio-helpers.c | 8 ++++++++
> util/trace-events | 2 ++
> 2 files changed, 10 insertions(+)
>
> diff --git a/util/vfio-helpers.c b/util/vfio-helpers.c
> index 14a549510fe..1d4efafcaa4 100644
> --- a/util/vfio-helpers.c
> +++ b/util/vfio-helpers.c
> @@ -227,6 +227,10 @@ static int qemu_vfio_pci_read_config(QEMUVFIOState *s,
> void *buf,
> {
> int ret;
>
> + trace_qemu_vfio_pci_read_config(buf, ofs, size,
> + s->config_region_info.offset,
> + s->config_region_info.size);
> + assert(QEMU_IS_ALIGNED(s->config_region_info.offset + ofs, size));
> do {
> ret = pread(s->device, buf, size, s->config_region_info.offset +
> ofs);
> } while (ret == -1 && errno == EINTR);
> @@ -237,6 +241,10 @@ static int qemu_vfio_pci_write_config(QEMUVFIOState *s,
> void *buf, int size, int
> {
> int ret;
>
> + trace_qemu_vfio_pci_write_config(buf, ofs, size,
> + s->config_region_info.offset,
> + s->config_region_info.size);
> + assert(QEMU_IS_ALIGNED(s->config_region_info.offset + ofs, size));
> do {
> ret = pwrite(s->device, buf, size, s->config_region_info.offset +
> ofs);
> } while (ret == -1 && errno == EINTR);
> diff --git a/util/trace-events b/util/trace-events
> index 24c31803b01..c048f85f828 100644
> --- a/util/trace-events
> +++ b/util/trace-events
> @@ -85,3 +85,5 @@ qemu_vfio_new_mapping(void *s, void *host, size_t size, int
> index, uint64_t iova
> qemu_vfio_do_mapping(void *s, void *host, size_t size, uint64_t iova) "s %p
> host %p size 0x%zx iova 0x%"PRIx64
> qemu_vfio_dma_map(void *s, void *host, size_t size, bool temporary, uint64_t
> *iova) "s %p host %p size 0x%zx temporary %d iova %p"
> qemu_vfio_dma_unmap(void *s, void *host) "s %p host %p"
> +qemu_vfio_pci_read_config(void *buf, int ofs, int size, uint64_t region_ofs,
> uint64_t region_size) "read cfg ptr %p ofs 0x%x size %d (region ofs
> 0x%"PRIx64" size %"PRId64")"
> +qemu_vfio_pci_write_config(void *buf, int ofs, int size, uint64_t
> region_ofs, uint64_t region_size) "write cfg ptr %p ofs 0x%x size %d (region
> ofs 0x%"PRIx64" size %"PRId64")"
I would personally use 0x%PRIx64 for the size too as generally done in
hw/vfio/trace-events .
Thanks
Eric
>
- [PATCH v2 03/19] block/nvme: Introduce device/iommu 'page_size_min' variables, (continued)
- [PATCH v2 03/19] block/nvme: Introduce device/iommu 'page_size_min' variables, Philippe Mathieu-Daudé, 2020/10/26
- [PATCH v2 04/19] block/nvme: Trace controller capabilities, Philippe Mathieu-Daudé, 2020/10/26
- [PATCH v2 05/19] util/vfio-helpers: Improve reporting unsupported IOMMU type, Philippe Mathieu-Daudé, 2020/10/26
- [PATCH v2 07/19] util/vfio-helpers: Trace PCI BAR region info, Philippe Mathieu-Daudé, 2020/10/26
- [PATCH v2 06/19] util/vfio-helpers: Trace PCI I/O config accesses, Philippe Mathieu-Daudé, 2020/10/26
- Re: [PATCH v2 06/19] util/vfio-helpers: Trace PCI I/O config accesses,
Auger Eric <=
- [PATCH v2 08/19] util/vfio-helpers: Trace where BARs are mapped, Philippe Mathieu-Daudé, 2020/10/26
- [PATCH v2 09/19] util/vfio-helpers: Improve DMA trace events, Philippe Mathieu-Daudé, 2020/10/26
- [PATCH v2 10/19] util/vfio-helpers: Convert vfio_dump_mapping to trace events, Philippe Mathieu-Daudé, 2020/10/26
- [PATCH v2 11/19] util/vfio-helpers: Let qemu_vfio_dma_map() propagate Error, Philippe Mathieu-Daudé, 2020/10/26
- [PATCH v2 12/19] util/vfio-helpers: Let qemu_vfio_do_mapping() propagate Error, Philippe Mathieu-Daudé, 2020/10/26
- [PATCH v2 13/19] util/vfio-helpers: Let qemu_vfio_verify_mappings() use error_report(), Philippe Mathieu-Daudé, 2020/10/26
- [PATCH v2 14/19] util/vfio-helpers: Pass minimum page size to qemu_vfio_open_pci(), Philippe Mathieu-Daudé, 2020/10/26