qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Cornelia Huck <cohuck@redhat.com>
To: Yi Min Zhao <zyimin@linux.vnet.ibm.com>
Cc: qemu-devel@nongnu.org, borntraeger@de.ibm.com,
	pasic@linux.vnet.ibm.com, pmorel@linux.vnet.ibm.com,
	agraf@suse.de, richard.henderson@linaro.org
Subject: Re: [Qemu-devel] [PATCH 3/4] s390x/pci: fixup ind_offset of msix routing entry
Date: Mon, 28 Aug 2017 17:33:24 +0200	[thread overview]
Message-ID: <20170828173324.5723a231.cohuck@redhat.com> (raw)
In-Reply-To: <1503907487-2764-4-git-send-email-zyimin@linux.vnet.ibm.com>

On Mon, 28 Aug 2017 10:04:46 +0200
Yi Min Zhao <zyimin@linux.vnet.ibm.com> wrote:

> The aibvo of zpci device should be constant after issued mpcifc
> registering irqs instruction. Each msix vector should offset from the
> aibvo. But for flic adapter interrupt, we should use the absolute
> offset within the aibv. So let's use the aibvo+vector to fixup msix
> routing entry.

This makes sense, but I would tweak the description a bit.

"The guest uses the mpcifc instruction to register the aibvo of a zpci
device, which is the starting offset of indicators in the indicator
area and thus remains constant. Each msix vector is an offset from the
aibvo. When we map a msix route to an adapter route, we should not
modify the starting offset, but instead add the vector to the starting
offset to get the absolute offset in the specific route."

I'm wondering how this was ever supposed to work?

> 
> Signed-off-by: Yi Min Zhao <zyimin@linux.vnet.ibm.com>
> ---
>  target/s390x/kvm.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c
> index e348bfb7cc..c08b7757e7 100644
> --- a/target/s390x/kvm.c
> +++ b/target/s390x/kvm.c
> @@ -2515,14 +2515,12 @@ int kvm_arch_fixup_msi_route(struct kvm_irq_routing_entry *route,
>          return -ENODEV;
>      }
>  
> -    pbdev->routes.adapter.ind_offset = vec;
> -
>      route->type = KVM_IRQ_ROUTING_S390_ADAPTER;
>      route->flags = 0;
>      route->u.adapter.summary_addr = pbdev->routes.adapter.summary_addr;
>      route->u.adapter.ind_addr = pbdev->routes.adapter.ind_addr;
>      route->u.adapter.summary_offset = pbdev->routes.adapter.summary_offset;
> -    route->u.adapter.ind_offset = pbdev->routes.adapter.ind_offset;
> +    route->u.adapter.ind_offset = pbdev->routes.adapter.ind_offset + vec;
>      route->u.adapter.adapter_id = pbdev->routes.adapter.adapter_id;
>      return 0;
>  }

  reply	other threads:[~2017-08-28 15:33 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-28  8:04 [Qemu-devel] [PATCH 0/4] four zpci patches Yi Min Zhao
2017-08-28  8:04 ` [Qemu-devel] [PATCH 1/4] s390x/pci: fixup trap_msix() Yi Min Zhao
2017-08-28 14:51   ` Cornelia Huck
2017-08-29  4:32     ` Yi Min Zhao
2017-08-29  8:00       ` Cornelia Huck
2017-08-29  8:05         ` Yi Min Zhao
2017-08-29  8:12         ` Yi Min Zhao
2017-08-29  8:22           ` Cornelia Huck
2017-08-29  8:33             ` Yi Min Zhao
2017-08-29  8:58               ` Cornelia Huck
2017-08-30  9:47   ` Cornelia Huck
2017-08-28  8:04 ` [Qemu-devel] [PATCH 2/4] s390x/pci: remove idx from msix msg data Yi Min Zhao
2017-08-28 15:04   ` Cornelia Huck
2017-08-29  4:33     ` Yi Min Zhao
2017-08-28  8:04 ` [Qemu-devel] [PATCH 3/4] s390x/pci: fixup ind_offset of msix routing entry Yi Min Zhao
2017-08-28 15:33   ` Cornelia Huck [this message]
2017-08-29  4:39     ` Yi Min Zhao
2017-08-28  8:04 ` [Qemu-devel] [PATCH 4/4] s390x/pci: add iommu replay callback Yi Min Zhao
2017-08-28 15:57   ` Cornelia Huck
2017-08-29  4:46     ` Yi Min Zhao
2017-08-29  8:07       ` Cornelia Huck
2017-08-29  8:26         ` Yi Min Zhao
2017-08-29  9:33           ` Cornelia Huck
2017-08-29  9:49             ` Cornelia Huck
2017-08-29  9:53               ` Yi Min Zhao
2017-08-29  9:51             ` Yi Min Zhao
2017-08-29  9:57               ` Cornelia Huck
2017-08-29 10:00                 ` Yi Min Zhao

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=20170828173324.5723a231.cohuck@redhat.com \
    --to=cohuck@redhat.com \
    --cc=agraf@suse.de \
    --cc=borntraeger@de.ibm.com \
    --cc=pasic@linux.vnet.ibm.com \
    --cc=pmorel@linux.vnet.ibm.com \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=zyimin@linux.vnet.ibm.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).