From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
To: akash.goel@intel.com, intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 02/11] drm/i915: Add GuC ukernel logging related fields to fw interface file
Date: Mon, 27 Jun 2016 16:09:56 +0100 [thread overview]
Message-ID: <577141C4.1020809@linux.intel.com> (raw)
In-Reply-To: <1467029818-3417-3-git-send-email-akash.goel@intel.com>
On 27/06/16 13:16, akash.goel@intel.com wrote:
> From: Sagar Arun Kamble <sagar.a.kamble@intel.com>
>
> The first page of the GuC log buffer contains state info or meta data
> which is required to parse the logs contained in the subsequent pages.
> The structure representing the state info is added to interface file
> as Driver would need to handle log buffer flush interrupts from GuC.
> Added an enum for the different message/event types that can be send
> by the GuC ukernel to Host.
> Also added 2 new Host to GuC action types to inform GuC when Host has
> flushed the log buffer and forcefuly cause the GuC to send a new
> log buffer flush interrupt.
>
> Signed-off-by: Sagar Arun Kamble <sagar.a.kamble@intel.com>
> Signed-off-by: Akash Goel <akash.goel@intel.com>
> ---
> drivers/gpu/drm/i915/intel_guc_fwif.h | 53 +++++++++++++++++++++++++++++++++++
> 1 file changed, 53 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/intel_guc_fwif.h b/drivers/gpu/drm/i915/intel_guc_fwif.h
> index 944786d..eb10324 100644
> --- a/drivers/gpu/drm/i915/intel_guc_fwif.h
> +++ b/drivers/gpu/drm/i915/intel_guc_fwif.h
> @@ -418,15 +418,62 @@ struct guc_ads {
> u32 reserved2[4];
> } __packed;
>
> +/* GuC logging structures */
> +
> +enum guc_log_buffer_type {
> + GUC_ISR_LOG_BUFFER,
> + GUC_DPC_LOG_BUFFER,
> + GUC_CRASH_DUMP_LOG_BUFFER,
> + GUC_MAX_LOG_BUFFER
> +};
> +
> +/*
> + * Below state is used for coordination of retrival of GuC logs
> + * by i915. read_ptr is where i915 read last. GuC keeps incrementing
> + * write_ptr on each log entry. When buffer gets half filled and i915
> + * has requested interrupt, GuC will set flush_to_file field and raise the
> + * interrupt. i915 should read the buffer and clear flush_to_file field.
> + * i915 should also update the read_ptr.
> +*/
> +struct guc_log_buffer_state {
> + u32 marker[2];
> + u32 read_ptr;
> + u32 write_ptr;
> + u32 size;
> + u32 sampled_write_ptr;
> + union {
> + struct {
> + u32 flush_to_file:1;
> + u32 buffer_full_cnt:4;
> + u32 reserved:27;
> + };
> + u32 flags;
> + };
> + u32 version;
> +} __packed;
Suggest documenting things like the unit of read/write_ptr, size, which
files are NA/RO/RW for i915, what is sampled_write_ptr, what is the
marker etc.
> +
> +union guc_log_control {
> + struct {
> + u32 logging_enabled:1;
> + u32 reserved1:3;
> + u32 verbosity:4;
> + u32 reserved2:24;
> + };
> + u32 value;
> +} __packed;
> +
> /* This Action will be programmed in C180 - SOFT_SCRATCH_O_REG */
> enum host2guc_action {
> HOST2GUC_ACTION_DEFAULT = 0x0,
> HOST2GUC_ACTION_SAMPLE_FORCEWAKE = 0x6,
> HOST2GUC_ACTION_ALLOCATE_DOORBELL = 0x10,
> HOST2GUC_ACTION_DEALLOCATE_DOORBELL = 0x20,
> + HOST2GUC_ACTION_LOG_BUFFER_FILE_FLUSH_COMPLETE = 0x30,
> + HOST2GUC_ACTION_FORCE_LOGBUFFERFLUSH = 0x302,
Not that important but just strikes me it would be better to settle for
either LOG_BUFFER_FLUSH or LOGBUFFERFLUSH and not use both conventions.
> HOST2GUC_ACTION_ENTER_S_STATE = 0x501,
> HOST2GUC_ACTION_EXIT_S_STATE = 0x502,
> HOST2GUC_ACTION_SLPC_REQUEST = 0x3003,
> + HOST2GUC_ACTION_UK_LOG_ENABLE_LOGGING = 0x0E000,
> HOST2GUC_ACTION_LIMIT
> };
>
> @@ -448,4 +495,10 @@ enum guc2host_status {
> GUC2HOST_STATUS_GENERIC_FAIL = GUC2HOST_STATUS(0x0000F000)
> };
>
> +/* This action will be programmed in C1BC - SOFT_SCRATCH_15_REG */
> +enum guc2host_message {
> + GUC2HOST_MSG_CRASH_DUMP_POSTED = (1 << 1),
> + GUC2HOST_MSG_FLUSH_LOG_BUFFER = (1 << 3)
> +};
> +
> #endif
>
Regards,
Tvrtko
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2016-06-27 15:09 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-27 12:16 [PATCH v2 00/11] Support for sustained capturing of GuC firmware logs akash.goel
2016-06-27 12:16 ` [PATCH 01/11] drm/i915: Decouple GuC log setup from verbosity parameter akash.goel
2016-06-27 15:00 ` Tvrtko Ursulin
2016-06-27 15:32 ` Goel, Akash
2016-06-27 15:56 ` Tvrtko Ursulin
2016-06-27 16:25 ` Goel, Akash
2016-06-27 12:16 ` [PATCH 02/11] drm/i915: Add GuC ukernel logging related fields to fw interface file akash.goel
2016-06-27 15:09 ` Tvrtko Ursulin [this message]
2016-06-27 12:16 ` [PATCH 03/11] drm/i915: Add low level set of routines for programming PM IER/IIR/IMR register set akash.goel
2016-06-27 15:46 ` Tvrtko Ursulin
2016-06-27 16:35 ` Goel, Akash
2016-06-28 8:35 ` Tvrtko Ursulin
2016-06-28 9:21 ` Goel, Akash
2016-06-27 12:16 ` [PATCH 04/11] drm/i915: Support for GuC interrupts akash.goel
2016-06-28 10:03 ` Tvrtko Ursulin
2016-06-28 11:12 ` Goel, Akash
2016-06-28 13:44 ` Tvrtko Ursulin
2016-07-01 6:16 ` Goel, Akash
2016-07-01 8:47 ` Tvrtko Ursulin
2016-07-01 9:57 ` Goel, Akash
2016-06-27 12:16 ` [PATCH 05/11] drm/i915: Handle log buffer flush interrupt event from GuC akash.goel
2016-06-27 12:16 ` [PATCH 06/11] drm/i915: Add a relay backed debugfs interface for capturing GuC logs akash.goel
2016-06-27 14:23 ` kbuild test robot
2016-06-27 17:50 ` kbuild test robot
2016-06-28 9:47 ` Chris Wilson
2016-06-28 10:01 ` Goel, Akash
2016-06-27 12:16 ` [PATCH 07/11] drm/i915: Forcefully flush GuC log buffer on reset akash.goel
2016-06-27 12:16 ` [PATCH 08/11] drm/i915: Debugfs support for GuC logging control akash.goel
2016-06-27 12:16 ` [PATCH 09/11] drm/i915: New module param to control the size of buffer used for storing GuC firmware logs akash.goel
2016-06-27 13:31 ` Jani Nikula
2016-06-27 14:55 ` Goel, Akash
2016-06-27 12:16 ` [PATCH 10/11] drm/i915: Support to create write combined type vmaps akash.goel
2016-06-28 9:52 ` Chris Wilson
2016-06-28 10:25 ` Goel, Akash
2016-06-28 10:42 ` Chris Wilson
2016-06-27 12:16 ` [PATCH 11/11] drm/i915: Use uncached(WC) mapping for acessing the GuC log buffer akash.goel
2016-06-27 13:46 ` ✗ Ro.CI.BAT: failure for Support for sustained capturing of GuC firmware logs (rev3) Patchwork
-- strict thread matches above, loose matches on Subject: below --
2016-06-10 13:36 [PATCH 00/11] Support for sustained capturing of GuC firmware logs akash.goel
2016-06-10 13:36 ` [PATCH 02/11] drm/i915: Add GuC ukernel logging related fields to fw interface file akash.goel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=577141C4.1020809@linux.intel.com \
--to=tvrtko.ursulin@linux.intel.com \
--cc=akash.goel@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.