All of lore.kernel.org
 help / color / mirror / Atom feed
From: Harald Freudenberger <freude@linux.ibm.com>
To: Tony Krowiak <akrowiak@linux.ibm.com>
Cc: linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org,
	kvm@vger.kernel.org, jjherne@linux.ibm.com,
	borntraeger@de.ibm.com, cohuck@redhat.com,
	mjrosato@linux.ibm.com, pasic@linux.ibm.com,
	alex.williamson@redhat.com, kwankhede@nvidia.com,
	fiuczy@linux.ibm.com
Subject: Re: [PATCH 3/7] s390/vfio_ap: use TAPQ to verify reset in progress completes
Date: Thu, 15 Dec 2022 11:51:41 +0100	[thread overview]
Message-ID: <2541e0d3d4fb38af995e8bd91a34986d@linux.ibm.com> (raw)
In-Reply-To: <20221213154437.15480-4-akrowiak@linux.ibm.com>

On 2022-12-13 16:44, Tony Krowiak wrote:
> To eliminate the repeated calls to the PQAP(ZAPQ) function to verify 
> that
> a reset in progress completed successfully and ensure that error 
> response
> codes get appropriately logged, let's call the apq_reset_check() 
> function
> when the ZAPQ response code indicates that a reset that is already in
> progress.
> 
> Signed-off-by: Tony Krowiak <akrowiak@linux.ibm.com>
> ---
>  drivers/s390/crypto/vfio_ap_ops.c | 24 +++++++++++++-----------
>  1 file changed, 13 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/s390/crypto/vfio_ap_ops.c
> b/drivers/s390/crypto/vfio_ap_ops.c
> index a5530a46cf31..5bf2d93ae8af 100644
> --- a/drivers/s390/crypto/vfio_ap_ops.c
> +++ b/drivers/s390/crypto/vfio_ap_ops.c
> @@ -33,7 +33,7 @@
>  static int vfio_ap_mdev_reset_queues(struct ap_queue_table *qtable);
>  static struct vfio_ap_queue *vfio_ap_find_queue(int apqn);
>  static const struct vfio_device_ops vfio_ap_matrix_dev_ops;
> -static int vfio_ap_mdev_reset_queue(struct vfio_ap_queue *q, unsigned
> int retry);
> +static int vfio_ap_mdev_reset_queue(struct vfio_ap_queue *q);
> 
>  /**
>   * get_update_locks_for_kvm: Acquire the locks required to dynamically 
> update a
> @@ -1632,8 +1632,7 @@ static int apq_reset_check(struct vfio_ap_queue 
> *q)
>  	return ret;
>  }
> 
> -static int vfio_ap_mdev_reset_queue(struct vfio_ap_queue *q,
> -				    unsigned int retry)
> +static int vfio_ap_mdev_reset_queue(struct vfio_ap_queue *q)
>  {
>  	struct ap_queue_status status;
>  	int ret;
> @@ -1648,12 +1647,15 @@ static int vfio_ap_mdev_reset_queue(struct
> vfio_ap_queue *q,
>  		ret = 0;
>  		break;
>  	case AP_RESPONSE_RESET_IN_PROGRESS:
> -		if (retry--) {
> -			msleep(20);
> -			goto retry_zapq;
> -		}
> -		ret = -EBUSY;
> -		break;
> +		/*
> +		 * There is a reset issued by another process in progress. Let's 
> wait
> +		 * for that to complete. Since we have no idea whether it was a RAPQ 
> or
> +		 * ZAPQ, then if it completes successfully, let's issue the ZAPQ.
> +		 */
> +		ret = apq_reset_check(q);
> +		if (ret)
> +			break;
> +		goto retry_zapq;
>  	case AP_RESPONSE_Q_NOT_AVAIL:
>  	case AP_RESPONSE_DECONFIGURED:
>  	case AP_RESPONSE_CHECKSTOPPED:
> @@ -1688,7 +1690,7 @@ static int vfio_ap_mdev_reset_queues(struct
> ap_queue_table *qtable)
>  	struct vfio_ap_queue *q;
> 
>  	hash_for_each(qtable->queues, loop_cursor, q, mdev_qnode) {
> -		ret = vfio_ap_mdev_reset_queue(q, 1);
> +		ret = vfio_ap_mdev_reset_queue(q);
>  		/*
>  		 * Regardless whether a queue turns out to be busy, or
>  		 * is not operational, we need to continue resetting
> @@ -1931,7 +1933,7 @@ void vfio_ap_mdev_remove_queue(struct ap_device 
> *apdev)
>  		}
>  	}
> 
> -	vfio_ap_mdev_reset_queue(q, 1);
> +	vfio_ap_mdev_reset_queue(q);
>  	dev_set_drvdata(&apdev->device, NULL);
>  	kfree(q);
>  	release_update_locks_for_mdev(matrix_mdev);

Reviewed-by: Harald Freudenberger <freude@linux.ibm.com>

  reply	other threads:[~2022-12-15 10:52 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-13 15:44 [PATCH 0/7] improve AP queue reset processing Tony Krowiak
2022-12-13 15:44 ` [PATCH 1/7] s390/vfio-ap: verify reset complete in separate function Tony Krowiak
2022-12-15  8:24   ` Harald Freudenberger
2022-12-13 15:44 ` [PATCH 2/7] s390/vfio_ap: check TAPQ response code when waiting for queue reset Tony Krowiak
2022-12-15 10:48   ` Harald Freudenberger
2022-12-13 15:44 ` [PATCH 3/7] s390/vfio_ap: use TAPQ to verify reset in progress completes Tony Krowiak
2022-12-15 10:51   ` Harald Freudenberger [this message]
2022-12-20 14:22     ` Anthony Krowiak
2022-12-13 15:44 ` [PATCH 4/7] s390/vfio_ap: verify ZAPQ completion after return of response code zero Tony Krowiak
2022-12-15 10:54   ` Harald Freudenberger
2022-12-20 14:24     ` Anthony Krowiak
2022-12-13 15:44 ` [PATCH 5/7] s390/vfio_ap: fix handling of error response codes Tony Krowiak
2022-12-15 10:56   ` Harald Freudenberger
2022-12-20 14:25     ` Anthony Krowiak
2022-12-13 15:44 ` [PATCH 6/7] s390/vfio_ap: increase max wait time for reset verification Tony Krowiak
2022-12-15 10:58   ` Harald Freudenberger
2022-12-20 14:27     ` Anthony Krowiak
2022-12-13 15:44 ` [PATCH 7/7] s390/vfio_ap: always clean up IRQ resources Tony Krowiak
2022-12-15 10:58   ` Harald Freudenberger
2022-12-19 14:10   ` Halil Pasic
2022-12-20 14:33     ` Anthony Krowiak
2022-12-20 17:24       ` Halil Pasic
2023-01-09 19:40         ` Anthony Krowiak
2022-12-14 15:16 ` [PATCH 0/7] improve AP queue reset processing Jason J. Herne
2022-12-14 19:10   ` Anthony Krowiak

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=2541e0d3d4fb38af995e8bd91a34986d@linux.ibm.com \
    --to=freude@linux.ibm.com \
    --cc=akrowiak@linux.ibm.com \
    --cc=alex.williamson@redhat.com \
    --cc=borntraeger@de.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=fiuczy@linux.ibm.com \
    --cc=jjherne@linux.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=kwankhede@nvidia.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=mjrosato@linux.ibm.com \
    --cc=pasic@linux.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.