From 9f747e28666de11d40a7b7a8cfc1385928c66013 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 23 Apr 2018 09:07:59 +0200 Subject: [PATCH] 4.16-stable patches added patches: powerpc-powernv-define-a-standard-delay-for-opal_busy-type-retry-loops.patch --- ...delay-for-opal_busy-type-retry-loops.patch | 48 +++++++++++++++++++ queue-4.16/series | 1 + 2 files changed, 49 insertions(+) create mode 100644 queue-4.16/powerpc-powernv-define-a-standard-delay-for-opal_busy-type-retry-loops.patch diff --git a/queue-4.16/powerpc-powernv-define-a-standard-delay-for-opal_busy-type-retry-loops.patch b/queue-4.16/powerpc-powernv-define-a-standard-delay-for-opal_busy-type-retry-loops.patch new file mode 100644 index 00000000000..fff9fed537f --- /dev/null +++ b/queue-4.16/powerpc-powernv-define-a-standard-delay-for-opal_busy-type-retry-loops.patch @@ -0,0 +1,48 @@ +From 34dd25de9fe3f60bfdb31b473bf04b28262d0896 Mon Sep 17 00:00:00 2001 +From: Nicholas Piggin +Date: Tue, 10 Apr 2018 21:49:31 +1000 +Subject: powerpc/powernv: define a standard delay for OPAL_BUSY type retry loops + +From: Nicholas Piggin + +commit 34dd25de9fe3f60bfdb31b473bf04b28262d0896 upstream. + +This is the start of an effort to tidy up and standardise all the +delays. Existing loops have a range of delay/sleep periods from 1ms +to 20ms, and some have no delay. They all loop forever except rtc, +which times out after 10 retries, and that uses 10ms delays. So use +10ms as our standard delay. The OPAL maintainer agrees 10ms is a +reasonable starting point. + +The idea is to use the same recipe everywhere, once this is proven to +work then it will be documented as an OPAL API standard. Then both +firmware and OS can agree, and if a particular call needs something +else, then that can be documented with reasoning. + +This is not the end-all of this effort, it's just a relatively easy +change that fixes some existing high latency delays. There should be +provision for standardising timeouts and/or interruptible loops where +possible, so non-fatal firmware errors don't cause hangs. + +Signed-off-by: Nicholas Piggin +Signed-off-by: Michael Ellerman +Cc: Nathan Chancellor +Cc: Guenter Roeck +Signed-off-by: Greg Kroah-Hartman + +--- + arch/powerpc/include/asm/opal.h | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/arch/powerpc/include/asm/opal.h ++++ b/arch/powerpc/include/asm/opal.h +@@ -21,6 +21,9 @@ + /* We calculate number of sg entries based on PAGE_SIZE */ + #define SG_ENTRIES_PER_NODE ((PAGE_SIZE - 16) / sizeof(struct opal_sg_entry)) + ++/* Default time to sleep or delay between OPAL_BUSY/OPAL_BUSY_EVENT loops */ ++#define OPAL_BUSY_DELAY_MS 10 ++ + /* /sys/firmware/opal */ + extern struct kobject *opal_kobj; + diff --git a/queue-4.16/series b/queue-4.16/series index 0f155318d3a..ab7b056b182 100644 --- a/queue-4.16/series +++ b/queue-4.16/series @@ -64,6 +64,7 @@ powerpc-64-call-h_register_proc_tbl-when-running-as-a-hpt-guest-on-power9.patch powerpc-64-fix-smp_wmb-barrier-definition-use-use-lwsync-consistently.patch powerpc-kprobes-fix-call-trace-due-to-incorrect-preempt-count.patch powerpc-kexec_file-fix-error-code-when-trying-to-load-kdump-kernel.patch +powerpc-powernv-define-a-standard-delay-for-opal_busy-type-retry-loops.patch powerpc-powernv-fix-opal-nvram-driver-opal_busy-loops.patch powerpc-mm-radix-fix-checkstops-caused-by-invalid-tlbiel.patch ceph-always-update-atime-mtime-ctime-for-new-inode.patch -- 2.47.3