All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915/guc: Handle GuC log flush event in dedicated function
@ 2018-03-17 15:06 Michal Wajdeczko
  2018-03-17 16:19 ` Sagar Arun Kamble
  2018-03-19 12:29 ` Chris Wilson
  0 siblings, 2 replies; 3+ messages in thread
From: Michal Wajdeczko @ 2018-03-17 15:06 UTC (permalink / raw)
  To: intel-gfx

We already try to keep all GuC log related code in separate file,
handling flush event should be placed there too. This will also
allow future code reuse.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Michal Winiarski <michal.winiarski@intel.com>
Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Oscar Mateo <oscar.mateo@intel.com>
---
 drivers/gpu/drm/i915/intel_guc.c     | 6 +-----
 drivers/gpu/drm/i915/intel_guc_log.c | 8 ++++++++
 drivers/gpu/drm/i915/intel_guc_log.h | 1 +
 3 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_guc.c b/drivers/gpu/drm/i915/intel_guc.c
index e70bf65..36c8846 100644
--- a/drivers/gpu/drm/i915/intel_guc.c
+++ b/drivers/gpu/drm/i915/intel_guc.c
@@ -389,11 +389,7 @@ void intel_guc_to_host_event_handler(struct intel_guc *guc)
 		/* Clear the message bits that are handled */
 		I915_WRITE(SOFT_SCRATCH(15), msg & ~flush);
 
-		/* Handle flush interrupt in bottom half */
-		queue_work(guc->log.runtime.flush_wq,
-			   &guc->log.runtime.flush_work);
-
-		guc->log.flush_interrupt_count++;
+		intel_guc_log_handle_flush_event(&guc->log);
 	} else {
 		/*
 		 * Not clearing of unhandled event bits won't result in
diff --git a/drivers/gpu/drm/i915/intel_guc_log.c b/drivers/gpu/drm/i915/intel_guc_log.c
index 1c2127b..394f295 100644
--- a/drivers/gpu/drm/i915/intel_guc_log.c
+++ b/drivers/gpu/drm/i915/intel_guc_log.c
@@ -558,6 +558,14 @@ static void guc_flush_logs(struct intel_guc_log *log)
 	guc_log_capture_logs(log);
 }
 
+void intel_guc_log_handle_flush_event(struct intel_guc_log *log)
+{
+	/* Handle flush event in bottom half */
+	queue_work(log->runtime.flush_wq, &log->runtime.flush_work);
+
+	log->flush_interrupt_count++;
+}
+
 int intel_guc_log_create(struct intel_guc_log *log)
 {
 	struct intel_guc *guc = log_to_guc(log);
diff --git a/drivers/gpu/drm/i915/intel_guc_log.h b/drivers/gpu/drm/i915/intel_guc_log.h
index 6264bd5..fc3d58d 100644
--- a/drivers/gpu/drm/i915/intel_guc_log.h
+++ b/drivers/gpu/drm/i915/intel_guc_log.h
@@ -63,6 +63,7 @@ struct intel_guc_log {
 void intel_guc_log_init_early(struct intel_guc_log *log);
 int intel_guc_log_create(struct intel_guc_log *log);
 int intel_guc_log_register(struct intel_guc_log *log);
+void intel_guc_log_handle_flush_event(struct intel_guc_log *log);
 void intel_guc_log_unregister(struct intel_guc_log *log);
 void intel_guc_log_destroy(struct intel_guc_log *log);
 
-- 
1.9.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] drm/i915/guc: Handle GuC log flush event in dedicated function
  2018-03-17 15:06 [PATCH] drm/i915/guc: Handle GuC log flush event in dedicated function Michal Wajdeczko
@ 2018-03-17 16:19 ` Sagar Arun Kamble
  2018-03-19 12:29 ` Chris Wilson
  1 sibling, 0 replies; 3+ messages in thread
From: Sagar Arun Kamble @ 2018-03-17 16:19 UTC (permalink / raw)
  To: Michal Wajdeczko, intel-gfx



On 3/17/2018 8:36 PM, Michal Wajdeczko wrote:
> We already try to keep all GuC log related code in separate file,
> handling flush event should be placed there too. This will also
> allow future code reuse.
>
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> Cc: Michal Winiarski <michal.winiarski@intel.com>
> Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Oscar Mateo <oscar.mateo@intel.com>
Reviewed-by: Sagar Arun Kamble <sagar.a.kamble@intel.com>

Ordering of the declarations is an issue but not critical.
> ---
>   drivers/gpu/drm/i915/intel_guc.c     | 6 +-----
>   drivers/gpu/drm/i915/intel_guc_log.c | 8 ++++++++
>   drivers/gpu/drm/i915/intel_guc_log.h | 1 +
>   3 files changed, 10 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_guc.c b/drivers/gpu/drm/i915/intel_guc.c
> index e70bf65..36c8846 100644
> --- a/drivers/gpu/drm/i915/intel_guc.c
> +++ b/drivers/gpu/drm/i915/intel_guc.c
> @@ -389,11 +389,7 @@ void intel_guc_to_host_event_handler(struct intel_guc *guc)
>   		/* Clear the message bits that are handled */
>   		I915_WRITE(SOFT_SCRATCH(15), msg & ~flush);
>   
> -		/* Handle flush interrupt in bottom half */
> -		queue_work(guc->log.runtime.flush_wq,
> -			   &guc->log.runtime.flush_work);
> -
> -		guc->log.flush_interrupt_count++;
> +		intel_guc_log_handle_flush_event(&guc->log);
>   	} else {
>   		/*
>   		 * Not clearing of unhandled event bits won't result in
> diff --git a/drivers/gpu/drm/i915/intel_guc_log.c b/drivers/gpu/drm/i915/intel_guc_log.c
> index 1c2127b..394f295 100644
> --- a/drivers/gpu/drm/i915/intel_guc_log.c
> +++ b/drivers/gpu/drm/i915/intel_guc_log.c
> @@ -558,6 +558,14 @@ static void guc_flush_logs(struct intel_guc_log *log)
>   	guc_log_capture_logs(log);
>   }
>   
> +void intel_guc_log_handle_flush_event(struct intel_guc_log *log)
> +{
> +	/* Handle flush event in bottom half */
> +	queue_work(log->runtime.flush_wq, &log->runtime.flush_work);
> +
> +	log->flush_interrupt_count++;
> +}
> +
>   int intel_guc_log_create(struct intel_guc_log *log)
>   {
>   	struct intel_guc *guc = log_to_guc(log);
> diff --git a/drivers/gpu/drm/i915/intel_guc_log.h b/drivers/gpu/drm/i915/intel_guc_log.h
> index 6264bd5..fc3d58d 100644
> --- a/drivers/gpu/drm/i915/intel_guc_log.h
> +++ b/drivers/gpu/drm/i915/intel_guc_log.h
> @@ -63,6 +63,7 @@ struct intel_guc_log {
>   void intel_guc_log_init_early(struct intel_guc_log *log);
>   int intel_guc_log_create(struct intel_guc_log *log);
>   int intel_guc_log_register(struct intel_guc_log *log);
> +void intel_guc_log_handle_flush_event(struct intel_guc_log *log);
>   void intel_guc_log_unregister(struct intel_guc_log *log);
>   void intel_guc_log_destroy(struct intel_guc_log *log);
>   

-- 
Thanks,
Sagar

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] drm/i915/guc: Handle GuC log flush event in dedicated function
  2018-03-17 15:06 [PATCH] drm/i915/guc: Handle GuC log flush event in dedicated function Michal Wajdeczko
  2018-03-17 16:19 ` Sagar Arun Kamble
@ 2018-03-19 12:29 ` Chris Wilson
  1 sibling, 0 replies; 3+ messages in thread
From: Chris Wilson @ 2018-03-19 12:29 UTC (permalink / raw)
  To: Michal Wajdeczko, intel-gfx

Quoting Michal Wajdeczko (2018-03-17 15:06:39)
> +void intel_guc_log_handle_flush_event(struct intel_guc_log *log)
> +{
> +       /* Handle flush event in bottom half */
> +       queue_work(log->runtime.flush_wq, &log->runtime.flush_work);
> +
> +       log->flush_interrupt_count++;

Document the locking or delete it. If the stats are corrupt, nobody has
noticed the bug and so no one is looking at the stats...
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-03-19 12:29 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-17 15:06 [PATCH] drm/i915/guc: Handle GuC log flush event in dedicated function Michal Wajdeczko
2018-03-17 16:19 ` Sagar Arun Kamble
2018-03-19 12:29 ` Chris Wilson

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.