From: Halil Pasic <pasic@linux.ibm.com>
To: Pierre Morel <pmorel@linux.ibm.com>
Cc: borntraeger@de.ibm.com, alex.williamson@redhat.com,
cohuck@redhat.com, linux-kernel@vger.kernel.org,
linux-s390@vger.kernel.org, kvm@vger.kernel.org,
frankja@linux.ibm.com, akrowiak@linux.ibm.com, david@redhat.com,
schwidefsky@de.ibm.com, heiko.carstens@de.ibm.com,
freude@linux.ibm.com, mimu@linux.ibm.com
Subject: Re: [PATCH v7 3/4] s390: ap: implement PAPQ AQIC interception in kernel
Date: Tue, 30 Apr 2019 15:26:05 +0200 [thread overview]
Message-ID: <20190430152605.3bb21f31.pasic@linux.ibm.com> (raw)
In-Reply-To: <1556283688-556-4-git-send-email-pmorel@linux.ibm.com>
On Fri, 26 Apr 2019 15:01:27 +0200
Pierre Morel <pmorel@linux.ibm.com> wrote:
> +/**
> + * vfio_ap_clrirq: Disable Interruption for a APQN
> + *
> + * @dev: the device associated with the ap_queue
> + * @q: the vfio_ap_queue holding AQIC parameters
> + *
> + * Issue the host side PQAP/AQIC
> + * On success: unpin the NIB saved in *q and unregister from GIB
> + * interface
> + *
> + * Return the ap_queue_status returned by the ap_aqic()
> + */
> +static struct ap_queue_status vfio_ap_clrirq(struct vfio_ap_queue *q)
> +{
> + struct ap_qirq_ctrl aqic_gisa = {};
> + struct ap_queue_status status;
> + int checks = 10;
> +
> + status = ap_aqic(q->apqn, aqic_gisa, NULL);
> + if (!status.response_code) {
> + while (status.irq_enabled && checks--) {
> + msleep(20);
Hm, that seems like a lot of time to me. And I suppose we are holding the
kvm lock: e.g. no other instruction can be interpreted by kvm in the
meantime.
> + status = ap_tapq(q->apqn, NULL);
> + }
> + if (checks >= 0)
> + vfio_ap_free_irq_data(q);
Actually we don't have to wait for the async part to do it's magic
(indicated by the status.irq_enabled --> !status.irq_enabled transition)
in the instruction handler. We have to wait so we can unpin the NIB but
that could be done async (e.g. workqueue).
BTW do you have any measurements here? How many msleep(20) do we
experience for one clear on average?
If linux is not using clear (you told so offline, and I also remember
something similar), we can probably get away with something like this,
and do it properly (from performance standpoint) later.
Regards,
Halil
> + else
> + WARN_ONCE("%s: failed disabling IRQ", __func__);
> + }
> +
> + return status;
> +}
next prev parent reply other threads:[~2019-04-30 13:26 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-26 13:01 [PATCH v7 0/4] vfio: ap: AP Queue Interrupt Control Pierre Morel
2019-04-26 13:01 ` [PATCH v7 1/4] s390: ap: kvm: add PQAP interception for AQIC Pierre Morel
2019-04-26 13:01 ` [PATCH v7 2/4] vfio: ap: register IOMMU VFIO notifier Pierre Morel
2019-04-29 16:07 ` Halil Pasic
2019-04-30 7:59 ` Pierre Morel
2019-04-30 9:29 ` Halil Pasic
2019-04-26 13:01 ` [PATCH v7 3/4] s390: ap: implement PAPQ AQIC interception in kernel Pierre Morel
2019-04-29 16:50 ` Halil Pasic
2019-04-30 8:18 ` Pierre Morel
2019-04-30 8:32 ` Pierre Morel
2019-04-30 9:37 ` Halil Pasic
2019-04-30 11:00 ` Pierre Morel
2019-04-30 13:26 ` Halil Pasic [this message]
2019-04-30 14:09 ` Pierre Morel
2019-05-02 7:57 ` Pierre Morel
2019-04-30 14:00 ` Halil Pasic
2019-04-30 14:03 ` Pierre Morel
2019-04-26 13:01 ` [PATCH v7 4/4] s390: ap: kvm: Enable PQAP/AQIC facility for the guest Pierre Morel
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=20190430152605.3bb21f31.pasic@linux.ibm.com \
--to=pasic@linux.ibm.com \
--cc=akrowiak@linux.ibm.com \
--cc=alex.williamson@redhat.com \
--cc=borntraeger@de.ibm.com \
--cc=cohuck@redhat.com \
--cc=david@redhat.com \
--cc=frankja@linux.ibm.com \
--cc=freude@linux.ibm.com \
--cc=heiko.carstens@de.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=mimu@linux.ibm.com \
--cc=pmorel@linux.ibm.com \
--cc=schwidefsky@de.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