]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
drm/i915/guc: Asynchronous flush of GuC log regions
authorAlan Previn <alan.previn.teres.alexis@intel.com>
Tue, 7 Jun 2022 00:23:14 +0000 (17:23 -0700)
committerJohn Harrison <John.C.Harrison@Intel.com>
Wed, 6 Jul 2022 21:38:56 +0000 (14:38 -0700)
Both error-capture and relay-logging mechanism use the GuC
log infrastructure. That means the KMD must send a log flush
complete notification back to GuC after reading the data out.
This call is currently being sent synchronously.
However, synchronous H2Gs cause problems when the system is
backed up. There is no need for this to be synchronous. The
KMD wasn't even looking at the return status from it. So make
it asynchronous and then there is no issue about time outs.

Signed-off-by: Alan Previn <alan.previn.teres.alexis@intel.com>
Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220607002314.1451656-2-alan.previn.teres.alexis@intel.com
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
drivers/gpu/drm/i915/gt/uc/intel_guc_log.c

index 97a32e610c303a3e64b0218221a3d6c92783f3e5..ffcd7a35f8dfd55fd83a4dba8f1b8ef131940c3b 100644 (file)
@@ -1261,7 +1261,8 @@ static int __guc_capture_flushlog_complete(struct intel_guc *guc)
                GUC_CAPTURE_LOG_BUFFER
        };
 
-       return intel_guc_send(guc, action, ARRAY_SIZE(action));
+       return intel_guc_send_nb(guc, action, ARRAY_SIZE(action), 0);
+
 }
 
 static void __guc_capture_process_output(struct intel_guc *guc)
index 78d2989fe9176b57c51acf9da644c28aba238460..7f1bc8af6b82fea7c36aac02228ad469f9f9fe46 100644 (file)
@@ -31,7 +31,7 @@ static int guc_action_flush_log_complete(struct intel_guc *guc)
                GUC_DEBUG_LOG_BUFFER
        };
 
-       return intel_guc_send(guc, action, ARRAY_SIZE(action));
+       return intel_guc_send_nb(guc, action, ARRAY_SIZE(action), 0);
 }
 
 static int guc_action_flush_log(struct intel_guc *guc)