public inbox for linux-s390@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/6] improve AP queue reset processing
@ 2023-01-18 20:31 Tony Krowiak
  2023-01-18 20:31 ` [PATCH v2 1/6] s390/vfio-ap: verify reset complete in separate function Tony Krowiak
                   ` (6 more replies)
  0 siblings, 7 replies; 9+ messages in thread
From: Tony Krowiak @ 2023-01-18 20:31 UTC (permalink / raw)
  To: linux-s390, linux-kernel, kvm; +Cc: jjherne, freude, borntraeger, pasic

This series introduces several improvements to the function that performs
AP queue resets:

* Breaks up reset processing into multiple smaller, more concise functions.

* Use TAPQ to verify completion of a reset in progress rather than mulitple
  invocations of ZAPQ.

* Check TAPQ response codes when verifying successful completion of ZAPQ.

* Fix erroneous handling of some error response codes.

* Increase the maximum amount of time to wait for successful completion of
  ZAPQ.
 
Change log v1 => v2:
-------------------
Remove patch 7/7 to restore original behavior since we don't know whether
interrupts are disabled when an unexpected response code is returned from 
ZAPQ. (Halil)

Tony Krowiak (6):
  s390/vfio-ap: verify reset complete in separate function
  s390/vfio_ap: check TAPQ response code when waiting for queue reset
  s390/vfio_ap: use TAPQ to verify reset in progress completes
  s390/vfio_ap: verify ZAPQ completion after return of response code
    zero
  s390/vfio_ap: fix handling of error response codes
  s390/vfio_ap: increase max wait time for reset verification

 drivers/s390/crypto/vfio_ap_ops.c | 104 +++++++++++++++++++++---------
 1 file changed, 72 insertions(+), 32 deletions(-)

-- 
2.31.1


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH v2 1/6] s390/vfio-ap: verify reset complete in separate function
  2023-01-18 20:31 [PATCH v2 0/6] improve AP queue reset processing Tony Krowiak
@ 2023-01-18 20:31 ` Tony Krowiak
  2023-01-18 20:31 ` [PATCH v2 2/6] s390/vfio_ap: check TAPQ response code when waiting for queue reset Tony Krowiak
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: Tony Krowiak @ 2023-01-18 20:31 UTC (permalink / raw)
  To: linux-s390, linux-kernel, kvm; +Cc: jjherne, freude, borntraeger, pasic

The vfio_ap_mdev_reset_queue() function contains a loop to verify that the
reset successfully completes within 40ms. This patch moves that loop into
a separate function.

Signed-off-by: Tony Krowiak <akrowiak@linux.ibm.com>
Reviewed-by: Jason J. Herne <jjherne@linux.ibm.com>
Reviewed-by: Harald Freudenberger <freude@linux.ibm.com>
---
 drivers/s390/crypto/vfio_ap_ops.c | 30 +++++++++++++++++++++---------
 1 file changed, 21 insertions(+), 9 deletions(-)

diff --git a/drivers/s390/crypto/vfio_ap_ops.c b/drivers/s390/crypto/vfio_ap_ops.c
index 9c01957e56b3..7523496bfbae 100644
--- a/drivers/s390/crypto/vfio_ap_ops.c
+++ b/drivers/s390/crypto/vfio_ap_ops.c
@@ -1598,12 +1598,30 @@ static struct vfio_ap_queue *vfio_ap_find_queue(int apqn)
 	return q;
 }
 
+static int apq_reset_check(struct vfio_ap_queue *q)
+{
+	int iters = 2;
+	struct ap_queue_status status;
+
+	while (iters--) {
+		msleep(20);
+		status = ap_tapq(q->apqn, NULL);
+		if (status.queue_empty && !status.irq_enabled)
+			return 0;
+	}
+	WARN_ONCE(iters <= 0,
+		  "timeout verifying reset of queue %02x.%04x (%u, %u, %u)",
+		  AP_QID_CARD(q->apqn), AP_QID_QUEUE(q->apqn),
+		  status.queue_empty, status.irq_enabled, status.response_code);
+
+	return -EBUSY;
+}
+
 static int vfio_ap_mdev_reset_queue(struct vfio_ap_queue *q,
 				    unsigned int retry)
 {
 	struct ap_queue_status status;
 	int ret;
-	int retry2 = 2;
 
 	if (!q)
 		return 0;
@@ -1640,14 +1658,8 @@ static int vfio_ap_mdev_reset_queue(struct vfio_ap_queue *q,
 	}
 
 	/* wait for the reset to take effect */
-	while (retry2--) {
-		if (status.queue_empty && !status.irq_enabled)
-			break;
-		msleep(20);
-		status = ap_tapq(q->apqn, NULL);
-	}
-	WARN_ONCE(retry2 <= 0, "unable to verify reset of queue %02x.%04x",
-		  AP_QID_CARD(q->apqn), AP_QID_QUEUE(q->apqn));
+	if (!(status.queue_empty && !status.irq_enabled))
+		ret = apq_reset_check(q);
 
 free_resources:
 	vfio_ap_free_aqic_resources(q);
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v2 2/6] s390/vfio_ap: check TAPQ response code when waiting for queue reset
  2023-01-18 20:31 [PATCH v2 0/6] improve AP queue reset processing Tony Krowiak
  2023-01-18 20:31 ` [PATCH v2 1/6] s390/vfio-ap: verify reset complete in separate function Tony Krowiak
@ 2023-01-18 20:31 ` Tony Krowiak
  2023-01-18 20:31 ` [PATCH v2 3/6] s390/vfio_ap: use TAPQ to verify reset in progress completes Tony Krowiak
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: Tony Krowiak @ 2023-01-18 20:31 UTC (permalink / raw)
  To: linux-s390, linux-kernel, kvm; +Cc: jjherne, freude, borntraeger, pasic

The vfio_ap_mdev_reset_queue() function does not check the status
response code returned form the PQAP(TAPQ) function when verifying the
queue's status; consequently, there is no way of knowing whether
verification failed because the wait time was exceeded, or because the
PQAP(TAPQ) failed.

This patch adds a function to check the status response code from the
PQAP(TAPQ) instruction and logs an appropriate message if it fails.

Signed-off-by: Tony Krowiak <akrowiak@linux.ibm.com>
Reviewed-by: Jason J. Herne <jjherne@linux.ibm.com>
Reviewed-by: Harald Freudenberger <freude@linux.ibm.com>
---
 drivers/s390/crypto/vfio_ap_ops.c | 36 ++++++++++++++++++++++++++-----
 1 file changed, 31 insertions(+), 5 deletions(-)

diff --git a/drivers/s390/crypto/vfio_ap_ops.c b/drivers/s390/crypto/vfio_ap_ops.c
index 7523496bfbae..b27daaaa79b4 100644
--- a/drivers/s390/crypto/vfio_ap_ops.c
+++ b/drivers/s390/crypto/vfio_ap_ops.c
@@ -1598,23 +1598,49 @@ static struct vfio_ap_queue *vfio_ap_find_queue(int apqn)
 	return q;
 }
 
+static int apq_status_check(int apqn, struct ap_queue_status *status)
+{
+	switch (status->response_code) {
+	case AP_RESPONSE_NORMAL:
+	case AP_RESPONSE_RESET_IN_PROGRESS:
+		if (status->queue_empty && !status->irq_enabled)
+			return 0;
+		return -EBUSY;
+	case AP_RESPONSE_DECONFIGURED:
+		/*
+		 * If the AP queue is deconfigured, any subsequent AP command
+		 * targeting the queue will fail with the same response code. On the
+		 * other hand, when an AP adapter is deconfigured, the associated
+		 * queues are reset, so let's return a value indicating the reset
+		 * for which we're waiting completed successfully.
+		 */
+		return 0;
+	default:
+		WARN(true,
+		     "failed to verify reset of queue %02x.%04x: TAPQ rc=%u\n",
+		     AP_QID_CARD(apqn), AP_QID_QUEUE(apqn),
+		     status->response_code);
+		return -EIO;
+	}
+}
+
 static int apq_reset_check(struct vfio_ap_queue *q)
 {
-	int iters = 2;
+	int iters = 2, ret;
 	struct ap_queue_status status;
 
 	while (iters--) {
 		msleep(20);
 		status = ap_tapq(q->apqn, NULL);
-		if (status.queue_empty && !status.irq_enabled)
-			return 0;
+		ret = apq_status_check(q->apqn, &status);
+		if (ret != -EBUSY)
+			return ret;
 	}
 	WARN_ONCE(iters <= 0,
 		  "timeout verifying reset of queue %02x.%04x (%u, %u, %u)",
 		  AP_QID_CARD(q->apqn), AP_QID_QUEUE(q->apqn),
 		  status.queue_empty, status.irq_enabled, status.response_code);
-
-	return -EBUSY;
+	return ret;
 }
 
 static int vfio_ap_mdev_reset_queue(struct vfio_ap_queue *q,
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v2 3/6] s390/vfio_ap: use TAPQ to verify reset in progress completes
  2023-01-18 20:31 [PATCH v2 0/6] improve AP queue reset processing Tony Krowiak
  2023-01-18 20:31 ` [PATCH v2 1/6] s390/vfio-ap: verify reset complete in separate function Tony Krowiak
  2023-01-18 20:31 ` [PATCH v2 2/6] s390/vfio_ap: check TAPQ response code when waiting for queue reset Tony Krowiak
@ 2023-01-18 20:31 ` Tony Krowiak
  2023-01-18 20:31 ` [PATCH v2 4/6] s390/vfio_ap: verify ZAPQ completion after return of response code zero Tony Krowiak
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: Tony Krowiak @ 2023-01-18 20:31 UTC (permalink / raw)
  To: linux-s390, linux-kernel, kvm; +Cc: jjherne, freude, borntraeger, pasic

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>
Reviewed-by: Jason J. Herne <jjherne@linux.ibm.com>
Reviewed-by: Harald Freudenberger <freude@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 b27daaaa79b4..a443ee5f7789 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
@@ -1643,8 +1643,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;
@@ -1659,12 +1658,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:
@@ -1699,7 +1701,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
@@ -1944,7 +1946,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);
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v2 4/6] s390/vfio_ap: verify ZAPQ completion after return of response code zero
  2023-01-18 20:31 [PATCH v2 0/6] improve AP queue reset processing Tony Krowiak
                   ` (2 preceding siblings ...)
  2023-01-18 20:31 ` [PATCH v2 3/6] s390/vfio_ap: use TAPQ to verify reset in progress completes Tony Krowiak
@ 2023-01-18 20:31 ` Tony Krowiak
  2023-01-18 20:31 ` [PATCH v2 5/6] s390/vfio_ap: fix handling of error response codes Tony Krowiak
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: Tony Krowiak @ 2023-01-18 20:31 UTC (permalink / raw)
  To: linux-s390, linux-kernel, kvm; +Cc: jjherne, freude, borntraeger, pasic

Verification that the asynchronous ZAPQ function has completed only needs
to be done when the response code indicates the function was successfully
initiated; so, let's call the apq_reset_check function immediately after
the response code zero is returned from the ZAPQ.

Signed-off-by: Tony Krowiak <akrowiak@linux.ibm.com>
Reviewed-by: Jason J. Herne <jjherne@linux.ibm.com>
Reviewed-by: Harald Freudenberger <freude@linux.ibm.com>
---
 drivers/s390/crypto/vfio_ap_ops.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/s390/crypto/vfio_ap_ops.c b/drivers/s390/crypto/vfio_ap_ops.c
index a443ee5f7789..e1b05e749570 100644
--- a/drivers/s390/crypto/vfio_ap_ops.c
+++ b/drivers/s390/crypto/vfio_ap_ops.c
@@ -1656,6 +1656,9 @@ static int vfio_ap_mdev_reset_queue(struct vfio_ap_queue *q)
 	switch (status.response_code) {
 	case AP_RESPONSE_NORMAL:
 		ret = 0;
+		/* if the reset has not completed, wait for it to take effect */
+		if (!status.queue_empty || status.irq_enabled)
+			ret = apq_reset_check(q);
 		break;
 	case AP_RESPONSE_RESET_IN_PROGRESS:
 		/*
@@ -1685,10 +1688,6 @@ static int vfio_ap_mdev_reset_queue(struct vfio_ap_queue *q)
 		return -EIO;
 	}
 
-	/* wait for the reset to take effect */
-	if (!(status.queue_empty && !status.irq_enabled))
-		ret = apq_reset_check(q);
-
 free_resources:
 	vfio_ap_free_aqic_resources(q);
 
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v2 5/6] s390/vfio_ap: fix handling of error response codes
  2023-01-18 20:31 [PATCH v2 0/6] improve AP queue reset processing Tony Krowiak
                   ` (3 preceding siblings ...)
  2023-01-18 20:31 ` [PATCH v2 4/6] s390/vfio_ap: verify ZAPQ completion after return of response code zero Tony Krowiak
@ 2023-01-18 20:31 ` Tony Krowiak
  2023-01-18 20:31 ` [PATCH v2 6/6] s390/vfio_ap: increase max wait time for reset verification Tony Krowiak
  2023-01-20 10:25 ` [PATCH v2 0/6] improve AP queue reset processing Christian Borntraeger
  6 siblings, 0 replies; 9+ messages in thread
From: Tony Krowiak @ 2023-01-18 20:31 UTC (permalink / raw)
  To: linux-s390, linux-kernel, kvm; +Cc: jjherne, freude, borntraeger, pasic

Some response codes returned from the queue reset function are not being
handled correctly; this patch fixes them:

1. Response code 3, AP queue deconfigured: Deconfiguring an AP adapter
   resets all of its queues, so this is handled by indicating the reset
   verification completed successfully.

2. For all response codes other than 0 (normal reset completion), 2
   (queue reset in progress) and 3 (AP deconfigured), the -EIO error will
   be returned from the vfio_ap_mdev_reset_queue() function. In all cases,
   all fields of the status word other than the response code will be
   set to zero, so it makes no sense to check status bits.

Signed-off-by: Tony Krowiak <akrowiak@linux.ibm.com>
Reviewed-by: Jason J. Herne <jjherne@linux.ibm.com>
Reviewed-by: Harald Freudenberger <freude@linux.ibm.com>
---
 drivers/s390/crypto/vfio_ap_ops.c | 17 +++++++----------
 1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/drivers/s390/crypto/vfio_ap_ops.c b/drivers/s390/crypto/vfio_ap_ops.c
index e1b05e749570..68be34362680 100644
--- a/drivers/s390/crypto/vfio_ap_ops.c
+++ b/drivers/s390/crypto/vfio_ap_ops.c
@@ -1670,17 +1670,15 @@ static int vfio_ap_mdev_reset_queue(struct vfio_ap_queue *q)
 		if (ret)
 			break;
 		goto retry_zapq;
-	case AP_RESPONSE_Q_NOT_AVAIL:
 	case AP_RESPONSE_DECONFIGURED:
-	case AP_RESPONSE_CHECKSTOPPED:
-		WARN_ONCE(status.irq_enabled,
-			  "PQAP/ZAPQ for %02x.%04x failed with rc=%u while IRQ enabled",
-			  AP_QID_CARD(q->apqn), AP_QID_QUEUE(q->apqn),
-			  status.response_code);
-		ret = -EBUSY;
-		goto free_resources;
+		/*
+		 * When an AP adapter is deconfigured, the associated
+		 * queues are reset, so let's return a value indicating the reset
+		 * completed successfully.
+		 */
+		ret = 0;
+		break;
 	default:
-		/* things are really broken, give up */
 		WARN(true,
 		     "PQAP/ZAPQ for %02x.%04x failed with invalid rc=%u\n",
 		     AP_QID_CARD(q->apqn), AP_QID_QUEUE(q->apqn),
@@ -1688,7 +1686,6 @@ static int vfio_ap_mdev_reset_queue(struct vfio_ap_queue *q)
 		return -EIO;
 	}
 
-free_resources:
 	vfio_ap_free_aqic_resources(q);
 
 	return ret;
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v2 6/6] s390/vfio_ap: increase max wait time for reset verification
  2023-01-18 20:31 [PATCH v2 0/6] improve AP queue reset processing Tony Krowiak
                   ` (4 preceding siblings ...)
  2023-01-18 20:31 ` [PATCH v2 5/6] s390/vfio_ap: fix handling of error response codes Tony Krowiak
@ 2023-01-18 20:31 ` Tony Krowiak
  2023-01-20 10:25 ` [PATCH v2 0/6] improve AP queue reset processing Christian Borntraeger
  6 siblings, 0 replies; 9+ messages in thread
From: Tony Krowiak @ 2023-01-18 20:31 UTC (permalink / raw)
  To: linux-s390, linux-kernel, kvm; +Cc: jjherne, freude, borntraeger, pasic

Increase the maximum time to wait for verification of a queue reset
operation to 200ms.

Signed-off-by: Tony Krowiak <akrowiak@linux.ibm.com>
Reviewed-by: Jason J. Herne <jjherne@linux.ibm.com>
Reviewed-by: Harald Freudenberger <freude@linux.ibm.com>
---
 drivers/s390/crypto/vfio_ap_ops.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/drivers/s390/crypto/vfio_ap_ops.c b/drivers/s390/crypto/vfio_ap_ops.c
index 68be34362680..d665e1bc494a 100644
--- a/drivers/s390/crypto/vfio_ap_ops.c
+++ b/drivers/s390/crypto/vfio_ap_ops.c
@@ -30,6 +30,9 @@
 #define AP_QUEUE_UNASSIGNED "unassigned"
 #define AP_QUEUE_IN_USE "in use"
 
+#define MAX_RESET_CHECK_WAIT	200	/* Sleep max 200ms for reset check	*/
+#define AP_RESET_INTERVAL		20	/* Reset sleep interval (20ms)		*/
+
 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;
@@ -1626,11 +1629,12 @@ static int apq_status_check(int apqn, struct ap_queue_status *status)
 
 static int apq_reset_check(struct vfio_ap_queue *q)
 {
-	int iters = 2, ret;
+	int ret;
+	int iters = MAX_RESET_CHECK_WAIT / AP_RESET_INTERVAL;
 	struct ap_queue_status status;
 
-	while (iters--) {
-		msleep(20);
+	for (; iters > 0; iters--) {
+		msleep(AP_RESET_INTERVAL);
 		status = ap_tapq(q->apqn, NULL);
 		ret = apq_status_check(q->apqn, &status);
 		if (ret != -EBUSY)
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 0/6] improve AP queue reset processing
  2023-01-18 20:31 [PATCH v2 0/6] improve AP queue reset processing Tony Krowiak
                   ` (5 preceding siblings ...)
  2023-01-18 20:31 ` [PATCH v2 6/6] s390/vfio_ap: increase max wait time for reset verification Tony Krowiak
@ 2023-01-20 10:25 ` Christian Borntraeger
  2023-01-20 14:02   ` Anthony Krowiak
  6 siblings, 1 reply; 9+ messages in thread
From: Christian Borntraeger @ 2023-01-20 10:25 UTC (permalink / raw)
  To: Tony Krowiak, linux-s390, linux-kernel, kvm
  Cc: jjherne, freude, pasic, Heiko Carstens, Vasily Gorbik,
	Alexander Gordeev

Am 18.01.23 um 21:31 schrieb Tony Krowiak:
> This series introduces several improvements to the function that performs
> AP queue resets:
> 
> * Breaks up reset processing into multiple smaller, more concise functions.
> 
> * Use TAPQ to verify completion of a reset in progress rather than mulitple
>    invocations of ZAPQ.
> 
> * Check TAPQ response codes when verifying successful completion of ZAPQ.
> 
> * Fix erroneous handling of some error response codes.
> 
> * Increase the maximum amount of time to wait for successful completion of
>    ZAPQ.
>   
> Change log v1 => v2:
> -------------------
> Remove patch 7/7 to restore original behavior since we don't know whether
> interrupts are disabled when an unexpected response code is returned from
> ZAPQ. (Halil)
> 
> Tony Krowiak (6):
>    s390/vfio-ap: verify reset complete in separate function
>    s390/vfio_ap: check TAPQ response code when waiting for queue reset
>    s390/vfio_ap: use TAPQ to verify reset in progress completes
>    s390/vfio_ap: verify ZAPQ completion after return of response code
>      zero
>    s390/vfio_ap: fix handling of error response codes
>    s390/vfio_ap: increase max wait time for reset verification
> 
>   drivers/s390/crypto/vfio_ap_ops.c | 104 +++++++++++++++++++++---------
>   1 file changed, 72 insertions(+), 32 deletions(-)
> 

Thanks applied and queued for CI and regression runs. Will likely go via s390 tree.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 0/6] improve AP queue reset processing
  2023-01-20 10:25 ` [PATCH v2 0/6] improve AP queue reset processing Christian Borntraeger
@ 2023-01-20 14:02   ` Anthony Krowiak
  0 siblings, 0 replies; 9+ messages in thread
From: Anthony Krowiak @ 2023-01-20 14:02 UTC (permalink / raw)
  To: Christian Borntraeger, linux-s390, linux-kernel, kvm
  Cc: jjherne, freude, pasic, Heiko Carstens, Vasily Gorbik,
	Alexander Gordeev


On 1/20/23 5:25 AM, Christian Borntraeger wrote:
> Am 18.01.23 um 21:31 schrieb Tony Krowiak:
>> This series introduces several improvements to the function that 
>> performs
>> AP queue resets:
>>
>> * Breaks up reset processing into multiple smaller, more concise 
>> functions.
>>
>> * Use TAPQ to verify completion of a reset in progress rather than 
>> mulitple
>>    invocations of ZAPQ.
>>
>> * Check TAPQ response codes when verifying successful completion of 
>> ZAPQ.
>>
>> * Fix erroneous handling of some error response codes.
>>
>> * Increase the maximum amount of time to wait for successful 
>> completion of
>>    ZAPQ.
>>   Change log v1 => v2:
>> -------------------
>> Remove patch 7/7 to restore original behavior since we don't know 
>> whether
>> interrupts are disabled when an unexpected response code is returned 
>> from
>> ZAPQ. (Halil)
>>
>> Tony Krowiak (6):
>>    s390/vfio-ap: verify reset complete in separate function
>>    s390/vfio_ap: check TAPQ response code when waiting for queue reset
>>    s390/vfio_ap: use TAPQ to verify reset in progress completes
>>    s390/vfio_ap: verify ZAPQ completion after return of response code
>>      zero
>>    s390/vfio_ap: fix handling of error response codes
>>    s390/vfio_ap: increase max wait time for reset verification
>>
>>   drivers/s390/crypto/vfio_ap_ops.c | 104 +++++++++++++++++++++---------
>>   1 file changed, 72 insertions(+), 32 deletions(-)
>>
>
> Thanks applied and queued for CI and regression runs. Will likely go 
> via s390 tree.


Got it, thanks.



^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2023-01-20 14:02 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-01-18 20:31 [PATCH v2 0/6] improve AP queue reset processing Tony Krowiak
2023-01-18 20:31 ` [PATCH v2 1/6] s390/vfio-ap: verify reset complete in separate function Tony Krowiak
2023-01-18 20:31 ` [PATCH v2 2/6] s390/vfio_ap: check TAPQ response code when waiting for queue reset Tony Krowiak
2023-01-18 20:31 ` [PATCH v2 3/6] s390/vfio_ap: use TAPQ to verify reset in progress completes Tony Krowiak
2023-01-18 20:31 ` [PATCH v2 4/6] s390/vfio_ap: verify ZAPQ completion after return of response code zero Tony Krowiak
2023-01-18 20:31 ` [PATCH v2 5/6] s390/vfio_ap: fix handling of error response codes Tony Krowiak
2023-01-18 20:31 ` [PATCH v2 6/6] s390/vfio_ap: increase max wait time for reset verification Tony Krowiak
2023-01-20 10:25 ` [PATCH v2 0/6] improve AP queue reset processing Christian Borntraeger
2023-01-20 14:02   ` Anthony Krowiak

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox