Message ID | 20221213154437.15480-7-akrowiak@linux.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | improve AP queue reset processing | expand |
On 2022-12-13 16:44, Tony Krowiak wrote: > Increase the maximum time to wait for verification of a queue reset > operation to 200ms. > > Signed-off-by: Tony Krowiak <akrowiak@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 dbf681715a6d..e80c5a6b91be 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; > @@ -1615,11 +1618,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) Reviewed-by: Harald Freudenberger <freude@linux.ibm.com>
On 12/15/22 5:58 AM, Harald Freudenberger wrote: > On 2022-12-13 16:44, Tony Krowiak wrote: >> Increase the maximum time to wait for verification of a queue reset >> operation to 200ms. >> >> Signed-off-by: Tony Krowiak <akrowiak@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 dbf681715a6d..e80c5a6b91be 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; >> @@ -1615,11 +1618,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) > > Reviewed-by: Harald Freudenberger <freude@linux.ibm.com> Thanks for the review.
diff --git a/drivers/s390/crypto/vfio_ap_ops.c b/drivers/s390/crypto/vfio_ap_ops.c index dbf681715a6d..e80c5a6b91be 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; @@ -1615,11 +1618,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)
Increase the maximum time to wait for verification of a queue reset operation to 200ms. Signed-off-by: Tony Krowiak <akrowiak@linux.ibm.com> --- drivers/s390/crypto/vfio_ap_ops.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)