* [PATCH v3 1/2] powerpc/pseries: fix max polling time in plpks_confirm_object_flushed() function
@ 2024-03-29 2:09 Nayna Jain
2024-03-29 2:09 ` [PATCH v3 2/2] powerpc/pseries: increase timeout value for plpks_signed_update_var() H_CALL Nayna Jain
0 siblings, 1 reply; 3+ messages in thread
From: Nayna Jain @ 2024-03-29 2:09 UTC (permalink / raw)
To: linuxppc-dev
Cc: Andrew Donnellan, Greg Joyce, Nageswara R Sastry, Nayna Jain, npiggin
usleep_range() function takes input time and range in usec. However,
currently it is assumed in msec in the function
plpks_confirm_object_flushed().
Fix the total polling time for the object flushing from 5msec to 5sec.
Reported-by: Nageswara R Sastry <rnsastry@linux.ibm.com>
Fixes: 2454a7af0f2a ("powerpc/pseries: define driver for Platform KeyStore")
Signed-off-by: Nayna Jain <nayna@linux.ibm.com>
Tested-by: Nageswara R Sastry <rnsastry@linux.ibm.com>
---
v3:
No change
v2:
* Updated based on feedback from Michael Ellerman
Replaced usleep_range with fsleep.
Since there is no more need to specify range, sleep time is
reverted back to 10 msec.
arch/powerpc/include/asm/plpks.h | 5 ++---
arch/powerpc/platforms/pseries/plpks.c | 3 +--
2 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/arch/powerpc/include/asm/plpks.h b/arch/powerpc/include/asm/plpks.h
index 23b77027c916..7a84069759b0 100644
--- a/arch/powerpc/include/asm/plpks.h
+++ b/arch/powerpc/include/asm/plpks.h
@@ -44,9 +44,8 @@
#define PLPKS_MAX_DATA_SIZE 4000
// Timeouts for PLPKS operations
-#define PLPKS_MAX_TIMEOUT 5000 // msec
-#define PLPKS_FLUSH_SLEEP 10 // msec
-#define PLPKS_FLUSH_SLEEP_RANGE 400
+#define PLPKS_MAX_TIMEOUT (5 * USEC_PER_SEC)
+#define PLPKS_FLUSH_SLEEP 10000 // usec
struct plpks_var {
char *component;
diff --git a/arch/powerpc/platforms/pseries/plpks.c b/arch/powerpc/platforms/pseries/plpks.c
index febe18f251d0..bcfcd5acc5c2 100644
--- a/arch/powerpc/platforms/pseries/plpks.c
+++ b/arch/powerpc/platforms/pseries/plpks.c
@@ -415,8 +415,7 @@ static int plpks_confirm_object_flushed(struct label *label,
break;
}
- usleep_range(PLPKS_FLUSH_SLEEP,
- PLPKS_FLUSH_SLEEP + PLPKS_FLUSH_SLEEP_RANGE);
+ fsleep(PLPKS_FLUSH_SLEEP);
timeout = timeout + PLPKS_FLUSH_SLEEP;
} while (timeout < PLPKS_MAX_TIMEOUT);
--
2.31.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH v3 2/2] powerpc/pseries: increase timeout value for plpks_signed_update_var() H_CALL
2024-03-29 2:09 [PATCH v3 1/2] powerpc/pseries: fix max polling time in plpks_confirm_object_flushed() function Nayna Jain
@ 2024-03-29 2:09 ` Nayna Jain
2024-04-02 4:02 ` Andrew Donnellan
0 siblings, 1 reply; 3+ messages in thread
From: Nayna Jain @ 2024-03-29 2:09 UTC (permalink / raw)
To: linuxppc-dev
Cc: Andrew Donnellan, Greg Joyce, Nageswara R Sastry, Nayna Jain, npiggin
Signed update H_CALL currently polls PHYP for 5msec. Update this to
5sec.
Signed-off-by: Nayna Jain <nayna@linux.ibm.com>
Tested-by: Nageswara R Sastry <rnsastry@linux.ibm.com>
---
v3:
* Addition to Patch 1 timeout patch based on Andrew's feedback.
arch/powerpc/platforms/pseries/plpks.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/arch/powerpc/platforms/pseries/plpks.c b/arch/powerpc/platforms/pseries/plpks.c
index bcfcd5acc5c2..4a595493d28a 100644
--- a/arch/powerpc/platforms/pseries/plpks.c
+++ b/arch/powerpc/platforms/pseries/plpks.c
@@ -463,9 +463,10 @@ int plpks_signed_update_var(struct plpks_var *var, u64 flags)
continuetoken = retbuf[0];
if (pseries_status_to_err(rc) == -EBUSY) {
- int delay_ms = get_longbusy_msecs(rc);
- mdelay(delay_ms);
- timeout += delay_ms;
+ int delay_us = get_longbusy_msecs(rc) * 1000;
+
+ fsleep(delay_us);
+ timeout += delay_us;
}
rc = pseries_status_to_err(rc);
} while (rc == -EBUSY && timeout < PLPKS_MAX_TIMEOUT);
--
2.31.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v3 2/2] powerpc/pseries: increase timeout value for plpks_signed_update_var() H_CALL
2024-03-29 2:09 ` [PATCH v3 2/2] powerpc/pseries: increase timeout value for plpks_signed_update_var() H_CALL Nayna Jain
@ 2024-04-02 4:02 ` Andrew Donnellan
0 siblings, 0 replies; 3+ messages in thread
From: Andrew Donnellan @ 2024-04-02 4:02 UTC (permalink / raw)
To: Nayna Jain, linuxppc-dev; +Cc: Greg Joyce, npiggin, Nageswara R Sastry
On Thu, 2024-03-28 at 22:09 -0400, Nayna Jain wrote:
> Signed update H_CALL currently polls PHYP for 5msec. Update this to
> 5sec.
I think this description of the existing code's behaviour is incorrect:
- without your patch #1, the existing code polls for up to 5,000ms
- with your patch #1, the existing code polls for up to 5,000,000ms
(PLPKS_MAX_TIMEOUT is redefined in terms of microseconds, while we
still assume it's in milliseconds).
This patch should just be squashed into patch #1.
Andrew
>
> Signed-off-by: Nayna Jain <nayna@linux.ibm.com>
> Tested-by: Nageswara R Sastry <rnsastry@linux.ibm.com>
> ---
> v3:
> * Addition to Patch 1 timeout patch based on Andrew's feedback.
>
> arch/powerpc/platforms/pseries/plpks.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/arch/powerpc/platforms/pseries/plpks.c
> b/arch/powerpc/platforms/pseries/plpks.c
> index bcfcd5acc5c2..4a595493d28a 100644
> --- a/arch/powerpc/platforms/pseries/plpks.c
> +++ b/arch/powerpc/platforms/pseries/plpks.c
> @@ -463,9 +463,10 @@ int plpks_signed_update_var(struct plpks_var
> *var, u64 flags)
>
> continuetoken = retbuf[0];
> if (pseries_status_to_err(rc) == -EBUSY) {
> - int delay_ms = get_longbusy_msecs(rc);
> - mdelay(delay_ms);
> - timeout += delay_ms;
> + int delay_us = get_longbusy_msecs(rc) *
> 1000;
> +
> + fsleep(delay_us);
> + timeout += delay_us;
> }
> rc = pseries_status_to_err(rc);
> } while (rc == -EBUSY && timeout < PLPKS_MAX_TIMEOUT);
--
Andrew Donnellan OzLabs, ADL Canberra
ajd@linux.ibm.com IBM Australia Limited
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-04-02 4:19 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-29 2:09 [PATCH v3 1/2] powerpc/pseries: fix max polling time in plpks_confirm_object_flushed() function Nayna Jain
2024-03-29 2:09 ` [PATCH v3 2/2] powerpc/pseries: increase timeout value for plpks_signed_update_var() H_CALL Nayna Jain
2024-04-02 4:02 ` Andrew Donnellan
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.