From: Jani Nikula <jani.nikula@intel.com>
To: intel-gfx@lists.freedesktop.org
Subject: Re: [Intel-gfx] [CI 1/3] drm/i915/tasklet: separate local hacks around struct tasklet_struct
Date: Tue, 07 Jun 2022 22:07:59 +0300 [thread overview]
Message-ID: <87a6aopa0g.fsf@intel.com> (raw)
In-Reply-To: <20220607094207.536699-1-jani.nikula@intel.com>
On Tue, 07 Jun 2022, Jani Nikula <jani.nikula@intel.com> wrote:
> Add a dedicated file for the local functions around struct
> tasklet_struct. Far from ideal, but better placed in a dedicated file
> than i915_gem.h.
>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> Acked-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Series pushed to drm-intel-next.
BR,
Jani.
> ---
> drivers/gpu/drm/i915/TODO.txt | 2 +-
> drivers/gpu/drm/i915/i915_gem.h | 33 --------------------
> drivers/gpu/drm/i915/i915_scheduler.h | 1 +
> drivers/gpu/drm/i915/i915_tasklet.h | 43 +++++++++++++++++++++++++++
> 4 files changed, 45 insertions(+), 34 deletions(-)
> create mode 100644 drivers/gpu/drm/i915/i915_tasklet.h
>
> diff --git a/drivers/gpu/drm/i915/TODO.txt b/drivers/gpu/drm/i915/TODO.txt
> index 81a82c9c203f..879b08ca32b3 100644
> --- a/drivers/gpu/drm/i915/TODO.txt
> +++ b/drivers/gpu/drm/i915/TODO.txt
> @@ -37,5 +37,5 @@ Smaller things:
>
> https://lore.kernel.org/linux-mm/20210301083320.943079-1-hch@lst.de/
>
> -- tasklet helpers in i915_gem.h also look a bit misplaced and should
> +- tasklet helpers in i915_tasklet.h also look a bit misplaced and should
> probably be moved to tasklet headers.
> diff --git a/drivers/gpu/drm/i915/i915_gem.h b/drivers/gpu/drm/i915/i915_gem.h
> index a2be323a4be5..68d8d52bd541 100644
> --- a/drivers/gpu/drm/i915/i915_gem.h
> +++ b/drivers/gpu/drm/i915/i915_gem.h
> @@ -26,7 +26,6 @@
> #define __I915_GEM_H__
>
> #include <linux/bug.h>
> -#include <linux/interrupt.h>
>
> #include <drm/drm_drv.h>
>
> @@ -85,36 +84,4 @@ struct drm_i915_private;
>
> #define I915_GEM_IDLE_TIMEOUT (HZ / 5)
>
> -static inline void tasklet_lock(struct tasklet_struct *t)
> -{
> - while (!tasklet_trylock(t))
> - cpu_relax();
> -}
> -
> -static inline bool tasklet_is_locked(const struct tasklet_struct *t)
> -{
> - return test_bit(TASKLET_STATE_RUN, &t->state);
> -}
> -
> -static inline void __tasklet_disable_sync_once(struct tasklet_struct *t)
> -{
> - if (!atomic_fetch_inc(&t->count))
> - tasklet_unlock_spin_wait(t);
> -}
> -
> -static inline bool __tasklet_is_enabled(const struct tasklet_struct *t)
> -{
> - return !atomic_read(&t->count);
> -}
> -
> -static inline bool __tasklet_enable(struct tasklet_struct *t)
> -{
> - return atomic_dec_and_test(&t->count);
> -}
> -
> -static inline bool __tasklet_is_scheduled(struct tasklet_struct *t)
> -{
> - return test_bit(TASKLET_STATE_SCHED, &t->state);
> -}
> -
> #endif /* __I915_GEM_H__ */
> diff --git a/drivers/gpu/drm/i915/i915_scheduler.h b/drivers/gpu/drm/i915/i915_scheduler.h
> index 0b9b86af6c7f..c229c91071d7 100644
> --- a/drivers/gpu/drm/i915/i915_scheduler.h
> +++ b/drivers/gpu/drm/i915/i915_scheduler.h
> @@ -12,6 +12,7 @@
> #include <linux/kernel.h>
>
> #include "i915_scheduler_types.h"
> +#include "i915_tasklet.h"
>
> struct drm_printer;
>
> diff --git a/drivers/gpu/drm/i915/i915_tasklet.h b/drivers/gpu/drm/i915/i915_tasklet.h
> new file mode 100644
> index 000000000000..5d7069bdf2c0
> --- /dev/null
> +++ b/drivers/gpu/drm/i915/i915_tasklet.h
> @@ -0,0 +1,43 @@
> +/* SPDX-License-Identifier: MIT */
> +/*
> + * Copyright © 2022 Intel Corporation
> + */
> +
> +#ifndef __I915_TASKLET_H__
> +#define __I915_TASKLET_H__
> +
> +#include <linux/interrupt.h>
> +
> +static inline void tasklet_lock(struct tasklet_struct *t)
> +{
> + while (!tasklet_trylock(t))
> + cpu_relax();
> +}
> +
> +static inline bool tasklet_is_locked(const struct tasklet_struct *t)
> +{
> + return test_bit(TASKLET_STATE_RUN, &t->state);
> +}
> +
> +static inline void __tasklet_disable_sync_once(struct tasklet_struct *t)
> +{
> + if (!atomic_fetch_inc(&t->count))
> + tasklet_unlock_spin_wait(t);
> +}
> +
> +static inline bool __tasklet_is_enabled(const struct tasklet_struct *t)
> +{
> + return !atomic_read(&t->count);
> +}
> +
> +static inline bool __tasklet_enable(struct tasklet_struct *t)
> +{
> + return atomic_dec_and_test(&t->count);
> +}
> +
> +static inline bool __tasklet_is_scheduled(struct tasklet_struct *t)
> +{
> + return test_bit(TASKLET_STATE_SCHED, &t->state);
> +}
> +
> +#endif /* __I915_TASKLET_H__ */
--
Jani Nikula, Intel Open Source Graphics Center
prev parent reply other threads:[~2022-06-07 19:33 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-07 9:42 [Intel-gfx] [CI 1/3] drm/i915/tasklet: separate local hacks around struct tasklet_struct Jani Nikula
2022-06-07 9:42 ` [Intel-gfx] [CI 2/3] drm/i915/drv: drop intel_bios.h include Jani Nikula
2022-06-07 9:42 ` [Intel-gfx] [CI 3/3] drm/i915/utils: throw out unused stuff Jani Nikula
2022-06-07 12:40 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [CI,1/3] drm/i915/tasklet: separate local hacks around struct tasklet_struct Patchwork
2022-06-07 12:40 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2022-06-07 13:01 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2022-06-07 16:52 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
2022-06-07 19:07 ` Jani Nikula [this message]
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=87a6aopa0g.fsf@intel.com \
--to=jani.nikula@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.