On 8/2/2022 10:37, Teres Alexis, Alan Previn wrote:
Something minor in comments, so conditional R-B (please fix on the way in or 
reply to correct me):

Reviewed-by: Alan Previn <alan.previn.teres.ale...@intel.com>

On Wed, 2022-07-27 at 19:20 -0700, Harrison, John C wrote:
From: Alan Previn <alan.previn.teres.ale...@intel.com>

Add a helper to get GuC log buffer size.

Signed-off-by: Alan Previn <alan.previn.teres.ale...@intel.com>
Signed-off-by: John Harrison <john.c.harri...@intel.com>
Reviewed-by: Matthew Brost <matthew.br...@intel.com>
---
  drivers/gpu/drm/i915/gt/uc/intel_guc_log.c | 49 ++++++++++++----------
  1 file changed, 27 insertions(+), 22 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c 
b/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c
index 25b2d7ce6640d..492bbf419d4df 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c
@@ -15,6 +15,32 @@
static void guc_log_copy_debuglogs_for_relay(struct intel_guc_log *log); +static u32 intel_guc_log_size(struct intel_guc_log *log)
+{
+       /*
+        *  GuC Log buffer Layout:
+        *
+        *  NB: Ordering must follow "enum guc_log_buffer_type".
+        *
+        *  +===============================+ 00B
+        *  |      Debug state header       |
+        *  +-------------------------------+ 32B

Something we might have missed in prior updates but i think the bufer state is 
now 36 bytes long no? (9 dwords).
Good catch. Yes, an extra word was added some while back.

John.



+        *  |    Crash dump state header    |
+        *  +-------------------------------+ 64B
+        *  |     Capture state header      |
+        *  +-------------------------------+ 96B
+        *  |                               |
+        *  +===============================+ PAGE_SIZE (4KB)
+        *  |          Debug logs           |
+        *  +===============================+ + DEBUG_SIZE
+        *  |        Crash Dump logs        |
+        *  +===============================+ + CRASH_SIZE
+        *  |         Capture logs          |
+        *  +===============================+ + CAPTURE_SIZE
+        */
+       return PAGE_SIZE + CRASH_BUFFER_SIZE + DEBUG_BUFFER_SIZE + 
CAPTURE_BUFFER_SIZE;
+}
+
  /**
   * DOC: GuC firmware log
   *
@@ -461,32 +487,11 @@ int intel_guc_log_create(struct intel_guc_log *log)
GEM_BUG_ON(log->vma); - /*
-        *  GuC Log buffer Layout
-        * (this ordering must follow "enum guc_log_buffer_type" definition)
-        *
-        *  +===============================+ 00B
-        *  |      Debug state header       |
-        *  +-------------------------------+ 32B
-        *  |    Crash dump state header    |
-        *  +-------------------------------+ 64B
-        *  |     Capture state header      |
-        *  +-------------------------------+ 96B
-        *  |                               |
-        *  +===============================+ PAGE_SIZE (4KB)
-        *  |          Debug logs           |
-        *  +===============================+ + DEBUG_SIZE
-        *  |        Crash Dump logs        |
-        *  +===============================+ + CRASH_SIZE
-        *  |         Capture logs          |
-        *  +===============================+ + CAPTURE_SIZE
-        */
        if (intel_guc_capture_output_min_size_est(guc) > CAPTURE_BUFFER_SIZE)
                DRM_WARN("GuC log buffer for state_capture maybe too small. %d < 
%d\n",
                         CAPTURE_BUFFER_SIZE, 
intel_guc_capture_output_min_size_est(guc));
- guc_log_size = PAGE_SIZE + CRASH_BUFFER_SIZE + DEBUG_BUFFER_SIZE +
-                      CAPTURE_BUFFER_SIZE;
+       guc_log_size = intel_guc_log_size(log);
vma = intel_guc_allocate_vma(guc, guc_log_size);
        if (IS_ERR(vma)) {
--
2.37.1


Reply via email to