On Wed, 2018-05-30 at 18:46 +0200, Michal Wajdeczko wrote: > On Wed, 30 May 2018 15:53:34 +0200, Piotr Piorkowski > <piotr.piorkowski@xxxxxxxxx> wrote: > > > At this moment we can define GuC logs sizes only using pages. > > But GuC also allows use for this values expressed in megabytes. > > Lets add support for define guc_log_size in megabytes when we > > debug of GuC. > > > > Signed-off-by: Piotr Piórkowski <piotr.piorkowski@xxxxxxxxx> > > Cc: Michal Wajdeczko <michal.wajdeczko@xxxxxxxxx> > > Cc: Michał Winiarski <michal.winiarski@xxxxxxxxx> > > Cc: Joonas Lahtinen <joonas.lahtinen@xxxxxxxxxxxxxxx> > > Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > > --- > > drivers/gpu/drm/i915/intel_guc.c | 12 ++++++++++-- > > drivers/gpu/drm/i915/intel_guc_log.h | 6 ++++++ > > 2 files changed, 16 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/intel_guc.c > > b/drivers/gpu/drm/i915/intel_guc.c > > index e15047fedb45..5a42db47521b 100644 > > --- a/drivers/gpu/drm/i915/intel_guc.c > > +++ b/drivers/gpu/drm/i915/intel_guc.c > > @@ -263,7 +263,13 @@ static u32 guc_ctl_log_params_flags(struct > > intel_guc *guc) > > u32 offset = intel_guc_ggtt_offset(guc, guc->log.vma) >> > > PAGE_SHIFT; > > u32 flags; > > + #if (((CRASH_BUFFER_SIZE) % (1 << 20)) == 0) > > + #define UNIT (1 << 20) > > + #define FLAG GUC_LOG_ALLOC_IN_MEGABYTE > > + #else > > #define UNIT (4 << 10) > > + #define FLAG 0 > > + #endif > > BUILD_BUG_ON(!CRASH_BUFFER_SIZE); > > BUILD_BUG_ON(!IS_ALIGNED(CRASH_BUFFER_SIZE, UNIT)); > > @@ -280,13 +286,15 @@ static u32 guc_ctl_log_params_flags(struct > > intel_guc *guc) > > (GUC_LOG_ISR_MASK >> GUC_LOG_ISR_SHIFT)); > > flags = GUC_LOG_VALID | > > - GUC_LOG_NOTIFY_ON_HALF_FULL | > > - ((CRASH_BUFFER_SIZE/UNIT - 1) << > > GUC_LOG_CRASH_SHIFT) | > > + GUC_LOG_NOTIFY_ON_HALF_FULL; > > + flags |= FLAG; > > I think you can inject FLAG into existing statement without > introducing two additional |= > > > + flags |= ((CRASH_BUFFER_SIZE/UNIT - 1) << > > GUC_LOG_CRASH_SHIFT) | > > ((DPC_BUFFER_SIZE/UNIT - 1) << GUC_LOG_DPC_SHIFT) > > | > > ((ISR_BUFFER_SIZE/UNIT - 1) << GUC_LOG_ISR_SHIFT) > > | > > (offset << GUC_LOG_BUF_ADDR_SHIFT); > > #undef UNIT > > + #undef FLAG > > return flags; > > } > > diff --git a/drivers/gpu/drm/i915/intel_guc_log.h > > b/drivers/gpu/drm/i915/intel_guc_log.h > > index 1b3afdae6d0d..de39b965ae7a 100644 > > --- a/drivers/gpu/drm/i915/intel_guc_log.h > > +++ b/drivers/gpu/drm/i915/intel_guc_log.h > > @@ -34,9 +34,15 @@ > > struct intel_guc; > > +#ifdef DRM_I915_DEBUG_GUC > > +#define CRASH_BUFFER_SIZE 2097152 > > +#define DPC_BUFFER_SIZE 8388608 > > +#define ISR_BUFFER_SIZE 8388608 > > can we make it more friendly: (8 * 1024 * 1024) > > > +#else > > #define CRASH_BUFFER_SIZE 8192 > > #define DPC_BUFFER_SIZE 32768 > > #define ISR_BUFFER_SIZE 32768 > > +#endif > > btw, are these values just max possible or selected > as most valuable ? question for both debug/ndebug For debug I use the possibility of defining values in MB and I set the maximum possible values, and for ndebug I set old values of these buffers > > Michal > > > /* > > * While we're using plain log level in i915, GuC controls are > > much > > more...
Attachment:
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx