qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: BALATON Zoltan <balaton@eik.bme.hu>
To: "Philippe Mathieu-Daudé" <philmd@linaro.org>
Cc: qemu-devel@nongnu.org, "Michael S. Tsirkin" <mst@redhat.com>,
	 Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
Subject: Re: [PATCH] hw/pci: Display correct size for unmapped BARs in HMP 'info pci'
Date: Tue, 3 Jan 2023 18:39:44 +0100 (CET)	[thread overview]
Message-ID: <6bb76a1c-475e-1fe4-a7b6-8317a4388afd@eik.bme.hu> (raw)
In-Reply-To: <20230103164825.95329-1-philmd@linaro.org>

[-- Attachment #1: Type: text/plain, Size: 3422 bytes --]

On Tue, 3 Jan 2023, Philippe Mathieu-Daudé wrote:
> When a BAR is not mapped, the displayed size is shifted by 1 byte:
>
>  (qemu) info pci
>    ...
>    Bus  0, device  11, function 0:
>      Ethernet controller: PCI device 1022:2000
>        PCI subsystem 0000:0000
>        IRQ 10, pin A
>        BAR0: I/O at 0xffffffffffffffff [0x001e].
>        BAR1: 32 bit memory at 0xffffffffffffffff [0x0000001e].   <===
>        BAR6: 32 bit memory at 0xffffffffffffffff [0x0003fffe].   <===
>        id ""
>    Bus  0, device  18, function 0:
>      VGA controller: PCI device 1013:00b8
>        PCI subsystem 1af4:1100
>        BAR0: 32 bit prefetchable memory at 0x10000000 [0x11ffffff].
>        BAR1: 32 bit memory at 0x12050000 [0x12050fff].
>        BAR6: 32 bit memory at 0xffffffffffffffff [0x0000fffe].   <===
>        id ""
>
> Only substract this byte when the BAR is mapped to display
> the correct size:
>
>  (qemu) info pci
>    ...
>    Bus  0, device  11, function 0:
>      Ethernet controller: PCI device 1022:2000
>        PCI subsystem 0000:0000
>        IRQ 10, pin A
>        BAR0: I/O at 0xffffffffffffffff [0x001f].
>        BAR1: 32 bit memory at 0xffffffffffffffff [0x0000001f].   <===
>        BAR6: 32 bit memory at 0xffffffffffffffff [0x0003ffff].   <===
>        id ""
>    Bus  0, device  18, function 0:
>      VGA controller: PCI device 1013:00b8
>        PCI subsystem 1af4:1100
>        BAR0: 32 bit prefetchable memory at 0x10000000 [0x11ffffff].
>        BAR1: 32 bit memory at 0x12050000 [0x12050fff].
>        BAR6: 32 bit memory at 0xffffffffffffffff [0x0000ffff].   <===
>        id ""
>
> Fixes: 0ac32c8375 ("PCI interrupt support - 'info pci' monitor command")
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> hw/pci/pci-hmp-cmds.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/hw/pci/pci-hmp-cmds.c b/hw/pci/pci-hmp-cmds.c
> index fb7591d6ab..8cfa5f9cd1 100644
> --- a/hw/pci/pci-hmp-cmds.c
> +++ b/hw/pci/pci-hmp-cmds.c
> @@ -75,22 +75,24 @@ static void hmp_info_pci_device(Monitor *mon, const PciDeviceInfo *dev)
>
>     for (region = dev->regions; region; region = region->next) {
>         uint64_t addr, size;
> +        bool mapped;
>
>         addr = region->value->address;
>         size = region->value->size;

As size is not used for anything else, you could adjust the value here 
once either as

size = region->value->size - (addr != -1 ? 1 : 0);

or in an if then you don't need the bool and tweak the value when 
printing. This looks simpler to me.

Regards,
BALATON Zoltan

> +        mapped = addr != -1;
>
>         monitor_printf(mon, "      BAR%" PRId64 ": ", region->value->bar);
>
>         if (!strcmp(region->value->type, "io")) {
>             monitor_printf(mon, "I/O at 0x%04" PRIx64
>                                 " [0x%04" PRIx64 "].\n",
> -                           addr, addr + size - 1);
> +                           addr, addr + size + (mapped ? -1 : 0));
>         } else {
>             monitor_printf(mon, "%d bit%s memory at 0x%08" PRIx64
>                                " [0x%08" PRIx64 "].\n",
>                            region->value->mem_type_64 ? 64 : 32,
>                            region->value->prefetch ? " prefetchable" : "",
> -                           addr, addr + size - 1);
> +                           addr, addr + size + (mapped ? -1 : 0));
>         }
>     }
>
>

  reply	other threads:[~2023-01-03 17:42 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-03 16:48 [PATCH] hw/pci: Display correct size for unmapped BARs in HMP 'info pci' Philippe Mathieu-Daudé
2023-01-03 17:39 ` BALATON Zoltan [this message]
2023-01-03 19:39   ` Philippe Mathieu-Daudé
2023-01-03 19:45     ` Philippe Mathieu-Daudé
2023-01-04  7:29       ` Philippe Mathieu-Daudé

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=6bb76a1c-475e-1fe4-a7b6-8317a4388afd@eik.bme.hu \
    --to=balaton@eik.bme.hu \
    --cc=marcel.apfelbaum@gmail.com \
    --cc=mst@redhat.com \
    --cc=philmd@linaro.org \
    --cc=qemu-devel@nongnu.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 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).