* [Intel-gfx] [PATCH 1/2] drm/i915/perf: Register sysctl path globally
@ 2019-12-11 16:07 Venkata Sandeep Dhanalakota
2019-12-11 16:07 ` [Intel-gfx] [PATCH 2/2] drm/i915: Make warned variable private Venkata Sandeep Dhanalakota
` (4 more replies)
0 siblings, 5 replies; 24+ messages in thread
From: Venkata Sandeep Dhanalakota @ 2019-12-11 16:07 UTC (permalink / raw)
To: intel-gfx; +Cc: chris.p.wilson
We do not require to register the sysctl paths per instance,
so making registration global.
Cc: Sudeep Dutt <sudeep.dutt@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Venkata Sandeep Dhanalakota <venkata.s.dhanalakota@intel.com>
---
drivers/gpu/drm/i915/i915_perf.c | 10 ++++++++--
drivers/gpu/drm/i915/i915_perf_types.h | 1 -
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
index 8d2e37949f46..426d04214a5d 100644
--- a/drivers/gpu/drm/i915/i915_perf.c
+++ b/drivers/gpu/drm/i915/i915_perf.c
@@ -387,6 +387,8 @@ struct i915_oa_config_bo {
struct i915_vma *vma;
};
+static struct ctl_table_header *sysctl_header;
+
static enum hrtimer_restart oa_poll_check_timer_cb(struct hrtimer *hrtimer);
void i915_oa_config_release(struct kref *ref)
@@ -4345,7 +4347,8 @@ void i915_perf_init(struct drm_i915_private *i915)
oa_sample_rate_hard_limit = 1000 *
(RUNTIME_INFO(i915)->cs_timestamp_frequency_khz / 2);
- perf->sysctl_header = register_sysctl_table(dev_root);
+ if (!sysctl_header)
+ sysctl_header = register_sysctl_table(dev_root);
mutex_init(&perf->metrics_lock);
idr_init(&perf->metrics_idr);
@@ -4395,7 +4398,10 @@ void i915_perf_fini(struct drm_i915_private *i915)
idr_for_each(&perf->metrics_idr, destroy_config, perf);
idr_destroy(&perf->metrics_idr);
- unregister_sysctl_table(perf->sysctl_header);
+ if (sysctl_header) {
+ unregister_sysctl_table(sysctl_header);
+ sysctl_header = NULL;
+ }
memset(&perf->ops, 0, sizeof(perf->ops));
perf->i915 = NULL;
diff --git a/drivers/gpu/drm/i915/i915_perf_types.h b/drivers/gpu/drm/i915/i915_perf_types.h
index 74ddc20a0d37..45e581455f5d 100644
--- a/drivers/gpu/drm/i915/i915_perf_types.h
+++ b/drivers/gpu/drm/i915/i915_perf_types.h
@@ -380,7 +380,6 @@ struct i915_perf {
struct drm_i915_private *i915;
struct kobject *metrics_kobj;
- struct ctl_table_header *sysctl_header;
/*
* Lock associated with adding/modifying/removing OA configs
--
2.21.0.5.gaeb582a983
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [Intel-gfx] [PATCH 2/2] drm/i915: Make warned variable private
2019-12-11 16:07 [Intel-gfx] [PATCH 1/2] drm/i915/perf: Register sysctl path globally Venkata Sandeep Dhanalakota
@ 2019-12-11 16:07 ` Venkata Sandeep Dhanalakota
2019-12-11 16:17 ` Chris Wilson
2019-12-11 16:13 ` [Intel-gfx] [PATCH 1/2] drm/i915/perf: Register sysctl path globally Lionel Landwerlin
` (3 subsequent siblings)
4 siblings, 1 reply; 24+ messages in thread
From: Venkata Sandeep Dhanalakota @ 2019-12-11 16:07 UTC (permalink / raw)
To: intel-gfx; +Cc: chris.p.wilson
Make each instance to report the hang only once.
Cc: Sudeep Dutt <sudeep.dutt@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Venkata Sandeep Dhanalakota <venkata.s.dhanalakota@intel.com>
---
drivers/gpu/drm/i915/i915_drv.h | 2 ++
drivers/gpu/drm/i915/i915_gpu_error.c | 3 +--
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index ce130e1f1e47..8e35f92f914e 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1284,6 +1284,8 @@ struct drm_i915_private {
/* Mutex to protect the above hdcp component related values. */
struct mutex hdcp_comp_mutex;
+ bool warned;
+
I915_SELFTEST_DECLARE(struct i915_selftest_stash selftest;)
/*
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
index 8374d50c0770..ea282d9a9a3a 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.c
+++ b/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -1785,7 +1785,6 @@ void i915_capture_error_state(struct drm_i915_private *i915,
intel_engine_mask_t engine_mask,
const char *msg)
{
- static bool warned;
struct i915_gpu_state *error;
unsigned long flags;
@@ -1815,7 +1814,7 @@ void i915_capture_error_state(struct drm_i915_private *i915,
return;
}
- if (!xchg(&warned, true) &&
+ if (!xchg(&i915->warned, true) &&
ktime_get_real_seconds() - DRIVER_TIMESTAMP < DAY_AS_SECONDS(180)) {
pr_info("GPU hangs can indicate a bug anywhere in the entire gfx stack, including userspace.\n");
pr_info("Please file a _new_ bug report on bugs.freedesktop.org against DRI -> DRM/Intel\n");
--
2.21.0.5.gaeb582a983
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [Intel-gfx] [PATCH 2/2] drm/i915: Make warned variable private
2019-12-11 16:07 ` [Intel-gfx] [PATCH 2/2] drm/i915: Make warned variable private Venkata Sandeep Dhanalakota
@ 2019-12-11 16:17 ` Chris Wilson
2019-12-11 16:19 ` Chris Wilson
0 siblings, 1 reply; 24+ messages in thread
From: Chris Wilson @ 2019-12-11 16:17 UTC (permalink / raw)
To: Venkata Sandeep Dhanalakota, intel-gfx
Quoting Venkata Sandeep Dhanalakota (2019-12-11 16:07:24)
> Make each instance to report the hang only once.
>
> Cc: Sudeep Dutt <sudeep.dutt@intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Signed-off-by: Venkata Sandeep Dhanalakota <venkata.s.dhanalakota@intel.com>
I still don't think so, since the we only want to pester the _user_ once
to file a bug, and that is irrespective of the device.
-Chris
---------------------------------------------------------------------
Intel Corporation (UK) Limited
Registered No. 1134945 (England)
Registered Office: Pipers Way, Swindon SN3 1RJ
VAT No: 860 2173 47
This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Intel-gfx] [PATCH 2/2] drm/i915: Make warned variable private
2019-12-11 16:17 ` Chris Wilson
@ 2019-12-11 16:19 ` Chris Wilson
2019-12-11 22:20 ` Lucas De Marchi
0 siblings, 1 reply; 24+ messages in thread
From: Chris Wilson @ 2019-12-11 16:19 UTC (permalink / raw)
To: Venkata Sandeep Dhanalakota, intel-gfx
Quoting Chris Wilson (2019-12-11 16:17:23)
> Quoting Venkata Sandeep Dhanalakota (2019-12-11 16:07:24)
> > Make each instance to report the hang only once.
> >
> > Cc: Sudeep Dutt <sudeep.dutt@intel.com>
> > Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> > Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> > Cc: Chris Wilson <chris@chris-wilson.co.uk>
> > Cc: Jani Nikula <jani.nikula@intel.com>
> > Signed-off-by: Venkata Sandeep Dhanalakota <venkata.s.dhanalakota@intel.com>
>
> I still don't think so, since the we only want to pester the _user_ once
> to file a bug, and that is irrespective of the device.
Or to put it another way, the dmesg stream is global and this is a flag
around that stream.
-Chris
---------------------------------------------------------------------
Intel Corporation (UK) Limited
Registered No. 1134945 (England)
Registered Office: Pipers Way, Swindon SN3 1RJ
VAT No: 860 2173 47
This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Intel-gfx] [PATCH 2/2] drm/i915: Make warned variable private
2019-12-11 16:19 ` Chris Wilson
@ 2019-12-11 22:20 ` Lucas De Marchi
2019-12-11 22:22 ` Chris Wilson
0 siblings, 1 reply; 24+ messages in thread
From: Lucas De Marchi @ 2019-12-11 22:20 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
On Wed, Dec 11, 2019 at 04:19:58PM +0000, Chris Wilson wrote:
>Quoting Chris Wilson (2019-12-11 16:17:23)
>> Quoting Venkata Sandeep Dhanalakota (2019-12-11 16:07:24)
>> > Make each instance to report the hang only once.
>> >
>> > Cc: Sudeep Dutt <sudeep.dutt@intel.com>
>> > Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
>> > Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
>> > Cc: Chris Wilson <chris@chris-wilson.co.uk>
>> > Cc: Jani Nikula <jani.nikula@intel.com>
>> > Signed-off-by: Venkata Sandeep Dhanalakota <venkata.s.dhanalakota@intel.com>
>>
>> I still don't think so, since the we only want to pester the _user_ once
>> to file a bug, and that is irrespective of the device.
>
>Or to put it another way, the dmesg stream is global and this is a flag
>around that stream.
maybe we could use WARN_ONCE()?
Lucas De Marchi
>-Chris
>---------------------------------------------------------------------
>Intel Corporation (UK) Limited
>Registered No. 1134945 (England)
>Registered Office: Pipers Way, Swindon SN3 1RJ
>VAT No: 860 2173 47
>
>This e-mail and any attachments may contain confidential material for
>the sole use of the intended recipient(s). Any review or distribution
>by others is strictly prohibited. If you are not the intended
>recipient, please contact the sender and delete all copies.
>_______________________________________________
>Intel-gfx mailing list
>Intel-gfx@lists.freedesktop.org
>https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Intel-gfx] [PATCH 2/2] drm/i915: Make warned variable private
2019-12-11 22:20 ` Lucas De Marchi
@ 2019-12-11 22:22 ` Chris Wilson
0 siblings, 0 replies; 24+ messages in thread
From: Chris Wilson @ 2019-12-11 22:22 UTC (permalink / raw)
To: Lucas De Marchi; +Cc: intel-gfx
Quoting Lucas De Marchi (2019-12-11 22:20:13)
> On Wed, Dec 11, 2019 at 04:19:58PM +0000, Chris Wilson wrote:
> >Quoting Chris Wilson (2019-12-11 16:17:23)
> >> Quoting Venkata Sandeep Dhanalakota (2019-12-11 16:07:24)
> >> > Make each instance to report the hang only once.
> >> >
> >> > Cc: Sudeep Dutt <sudeep.dutt@intel.com>
> >> > Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> >> > Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> >> > Cc: Chris Wilson <chris@chris-wilson.co.uk>
> >> > Cc: Jani Nikula <jani.nikula@intel.com>
> >> > Signed-off-by: Venkata Sandeep Dhanalakota <venkata.s.dhanalakota@intel.com>
> >>
> >> I still don't think so, since the we only want to pester the _user_ once
> >> to file a bug, and that is irrespective of the device.
> >
> >Or to put it another way, the dmesg stream is global and this is a flag
> >around that stream.
>
> maybe we could use WARN_ONCE()?
It's not a warning and doesn't justify being one.
-Chris
---------------------------------------------------------------------
Intel Corporation (UK) Limited
Registered No. 1134945 (England)
Registered Office: Pipers Way, Swindon SN3 1RJ
VAT No: 860 2173 47
This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Intel-gfx] [PATCH 1/2] drm/i915/perf: Register sysctl path globally
2019-12-11 16:07 [Intel-gfx] [PATCH 1/2] drm/i915/perf: Register sysctl path globally Venkata Sandeep Dhanalakota
2019-12-11 16:07 ` [Intel-gfx] [PATCH 2/2] drm/i915: Make warned variable private Venkata Sandeep Dhanalakota
@ 2019-12-11 16:13 ` Lionel Landwerlin
2019-12-11 16:31 ` Tvrtko Ursulin
` (2 subsequent siblings)
4 siblings, 0 replies; 24+ messages in thread
From: Lionel Landwerlin @ 2019-12-11 16:13 UTC (permalink / raw)
To: Venkata Sandeep Dhanalakota, intel-gfx; +Cc: chris.p.wilson
On 11/12/2019 18:07, Venkata Sandeep Dhanalakota wrote:
> We do not require to register the sysctl paths per instance,
> so making registration global.
>
> Cc: Sudeep Dutt <sudeep.dutt@intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Signed-off-by: Venkata Sandeep Dhanalakota <venkata.s.dhanalakota@intel.com>
Not sure what the pattern should be like for global settings like this one.
Anyway it's definitely required going forward :
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Thanks!
> ---
> drivers/gpu/drm/i915/i915_perf.c | 10 ++++++++--
> drivers/gpu/drm/i915/i915_perf_types.h | 1 -
> 2 files changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
> index 8d2e37949f46..426d04214a5d 100644
> --- a/drivers/gpu/drm/i915/i915_perf.c
> +++ b/drivers/gpu/drm/i915/i915_perf.c
> @@ -387,6 +387,8 @@ struct i915_oa_config_bo {
> struct i915_vma *vma;
> };
>
> +static struct ctl_table_header *sysctl_header;
> +
> static enum hrtimer_restart oa_poll_check_timer_cb(struct hrtimer *hrtimer);
>
> void i915_oa_config_release(struct kref *ref)
> @@ -4345,7 +4347,8 @@ void i915_perf_init(struct drm_i915_private *i915)
>
> oa_sample_rate_hard_limit = 1000 *
> (RUNTIME_INFO(i915)->cs_timestamp_frequency_khz / 2);
> - perf->sysctl_header = register_sysctl_table(dev_root);
> + if (!sysctl_header)
> + sysctl_header = register_sysctl_table(dev_root);
>
> mutex_init(&perf->metrics_lock);
> idr_init(&perf->metrics_idr);
> @@ -4395,7 +4398,10 @@ void i915_perf_fini(struct drm_i915_private *i915)
> idr_for_each(&perf->metrics_idr, destroy_config, perf);
> idr_destroy(&perf->metrics_idr);
>
> - unregister_sysctl_table(perf->sysctl_header);
> + if (sysctl_header) {
> + unregister_sysctl_table(sysctl_header);
> + sysctl_header = NULL;
> + }
>
> memset(&perf->ops, 0, sizeof(perf->ops));
> perf->i915 = NULL;
> diff --git a/drivers/gpu/drm/i915/i915_perf_types.h b/drivers/gpu/drm/i915/i915_perf_types.h
> index 74ddc20a0d37..45e581455f5d 100644
> --- a/drivers/gpu/drm/i915/i915_perf_types.h
> +++ b/drivers/gpu/drm/i915/i915_perf_types.h
> @@ -380,7 +380,6 @@ struct i915_perf {
> struct drm_i915_private *i915;
>
> struct kobject *metrics_kobj;
> - struct ctl_table_header *sysctl_header;
>
> /*
> * Lock associated with adding/modifying/removing OA configs
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Intel-gfx] [PATCH 1/2] drm/i915/perf: Register sysctl path globally
2019-12-11 16:07 [Intel-gfx] [PATCH 1/2] drm/i915/perf: Register sysctl path globally Venkata Sandeep Dhanalakota
2019-12-11 16:07 ` [Intel-gfx] [PATCH 2/2] drm/i915: Make warned variable private Venkata Sandeep Dhanalakota
2019-12-11 16:13 ` [Intel-gfx] [PATCH 1/2] drm/i915/perf: Register sysctl path globally Lionel Landwerlin
@ 2019-12-11 16:31 ` Tvrtko Ursulin
2019-12-11 16:39 ` Tvrtko Ursulin
2019-12-11 22:48 ` [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/2] " Patchwork
2019-12-12 9:08 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
4 siblings, 1 reply; 24+ messages in thread
From: Tvrtko Ursulin @ 2019-12-11 16:31 UTC (permalink / raw)
To: Venkata Sandeep Dhanalakota, intel-gfx; +Cc: chris.p.wilson
On 11/12/2019 16:07, Venkata Sandeep Dhanalakota wrote:
> We do not require to register the sysctl paths per instance,
> so making registration global.
>
> Cc: Sudeep Dutt <sudeep.dutt@intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Signed-off-by: Venkata Sandeep Dhanalakota <venkata.s.dhanalakota@intel.com>
> ---
> drivers/gpu/drm/i915/i915_perf.c | 10 ++++++++--
> drivers/gpu/drm/i915/i915_perf_types.h | 1 -
> 2 files changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
> index 8d2e37949f46..426d04214a5d 100644
> --- a/drivers/gpu/drm/i915/i915_perf.c
> +++ b/drivers/gpu/drm/i915/i915_perf.c
> @@ -387,6 +387,8 @@ struct i915_oa_config_bo {
> struct i915_vma *vma;
> };
>
> +static struct ctl_table_header *sysctl_header;
> +
> static enum hrtimer_restart oa_poll_check_timer_cb(struct hrtimer *hrtimer);
>
> void i915_oa_config_release(struct kref *ref)
> @@ -4345,7 +4347,8 @@ void i915_perf_init(struct drm_i915_private *i915)
>
> oa_sample_rate_hard_limit = 1000 *
> (RUNTIME_INFO(i915)->cs_timestamp_frequency_khz / 2);
> - perf->sysctl_header = register_sysctl_table(dev_root);
> + if (!sysctl_header)
> + sysctl_header = register_sysctl_table(dev_root);
>
> mutex_init(&perf->metrics_lock);
> idr_init(&perf->metrics_idr);
> @@ -4395,7 +4398,10 @@ void i915_perf_fini(struct drm_i915_private *i915)
> idr_for_each(&perf->metrics_idr, destroy_config, perf);
> idr_destroy(&perf->metrics_idr);
>
> - unregister_sysctl_table(perf->sysctl_header);
> + if (sysctl_header) {
> + unregister_sysctl_table(sysctl_header);
> + sysctl_header = NULL;
> + }
I am not sure if this could be racy with manual unbind from sysfs. Does
PCI core serialize for us?
Regards,
Tvrtko
>
> memset(&perf->ops, 0, sizeof(perf->ops));
> perf->i915 = NULL;
> diff --git a/drivers/gpu/drm/i915/i915_perf_types.h b/drivers/gpu/drm/i915/i915_perf_types.h
> index 74ddc20a0d37..45e581455f5d 100644
> --- a/drivers/gpu/drm/i915/i915_perf_types.h
> +++ b/drivers/gpu/drm/i915/i915_perf_types.h
> @@ -380,7 +380,6 @@ struct i915_perf {
> struct drm_i915_private *i915;
>
> struct kobject *metrics_kobj;
> - struct ctl_table_header *sysctl_header;
>
> /*
> * Lock associated with adding/modifying/removing OA configs
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Intel-gfx] [PATCH 1/2] drm/i915/perf: Register sysctl path globally
2019-12-11 16:31 ` Tvrtko Ursulin
@ 2019-12-11 16:39 ` Tvrtko Ursulin
2019-12-11 17:13 ` Venkata Sandeep Dhanalakota
0 siblings, 1 reply; 24+ messages in thread
From: Tvrtko Ursulin @ 2019-12-11 16:39 UTC (permalink / raw)
To: Venkata Sandeep Dhanalakota, intel-gfx; +Cc: chris.p.wilson
On 11/12/2019 16:31, Tvrtko Ursulin wrote:
> On 11/12/2019 16:07, Venkata Sandeep Dhanalakota wrote:
>> We do not require to register the sysctl paths per instance,
>> so making registration global.
>>
>> Cc: Sudeep Dutt <sudeep.dutt@intel.com>
>> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
>> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
>> Cc: Chris Wilson <chris@chris-wilson.co.uk>
>> Cc: Jani Nikula <jani.nikula@intel.com>
>> Signed-off-by: Venkata Sandeep Dhanalakota
>> <venkata.s.dhanalakota@intel.com>
>> ---
>> drivers/gpu/drm/i915/i915_perf.c | 10 ++++++++--
>> drivers/gpu/drm/i915/i915_perf_types.h | 1 -
>> 2 files changed, 8 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_perf.c
>> b/drivers/gpu/drm/i915/i915_perf.c
>> index 8d2e37949f46..426d04214a5d 100644
>> --- a/drivers/gpu/drm/i915/i915_perf.c
>> +++ b/drivers/gpu/drm/i915/i915_perf.c
>> @@ -387,6 +387,8 @@ struct i915_oa_config_bo {
>> struct i915_vma *vma;
>> };
>> +static struct ctl_table_header *sysctl_header;
>> +
>> static enum hrtimer_restart oa_poll_check_timer_cb(struct hrtimer
>> *hrtimer);
>> void i915_oa_config_release(struct kref *ref)
>> @@ -4345,7 +4347,8 @@ void i915_perf_init(struct drm_i915_private *i915)
>> oa_sample_rate_hard_limit = 1000 *
>> (RUNTIME_INFO(i915)->cs_timestamp_frequency_khz / 2);
>> - perf->sysctl_header = register_sysctl_table(dev_root);
>> + if (!sysctl_header)
>> + sysctl_header = register_sysctl_table(dev_root);
>> mutex_init(&perf->metrics_lock);
>> idr_init(&perf->metrics_idr);
>> @@ -4395,7 +4398,10 @@ void i915_perf_fini(struct drm_i915_private *i915)
>> idr_for_each(&perf->metrics_idr, destroy_config, perf);
>> idr_destroy(&perf->metrics_idr);
>> - unregister_sysctl_table(perf->sysctl_header);
>> + if (sysctl_header) {
>> + unregister_sysctl_table(sysctl_header);
>> + sysctl_header = NULL;
>> + }
>
> I am not sure if this could be racy with manual unbind from sysfs. Does
> PCI core serialize for us?
Actually with two devices you also need to reference count it since you
don't want removal of the first device to remove the node but last.
> Regards,
>
> Tvrtko
>
>> memset(&perf->ops, 0, sizeof(perf->ops));
>> perf->i915 = NULL;
>> diff --git a/drivers/gpu/drm/i915/i915_perf_types.h
>> b/drivers/gpu/drm/i915/i915_perf_types.h
>> index 74ddc20a0d37..45e581455f5d 100644
>> --- a/drivers/gpu/drm/i915/i915_perf_types.h
>> +++ b/drivers/gpu/drm/i915/i915_perf_types.h
>> @@ -380,7 +380,6 @@ struct i915_perf {
>> struct drm_i915_private *i915;
>> struct kobject *metrics_kobj;
>> - struct ctl_table_header *sysctl_header;
>> /*
>> * Lock associated with adding/modifying/removing OA configs
>>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Intel-gfx] [PATCH 1/2] drm/i915/perf: Register sysctl path globally
2019-12-11 16:39 ` Tvrtko Ursulin
@ 2019-12-11 17:13 ` Venkata Sandeep Dhanalakota
2019-12-11 17:25 ` Tvrtko Ursulin
2019-12-11 22:14 ` Lucas De Marchi
0 siblings, 2 replies; 24+ messages in thread
From: Venkata Sandeep Dhanalakota @ 2019-12-11 17:13 UTC (permalink / raw)
To: Tvrtko Ursulin; +Cc: intel-gfx, chris.p.wilson
On 19/12/11 04:39, Tvrtko Ursulin wrote:
>
> On 11/12/2019 16:31, Tvrtko Ursulin wrote:
> > On 11/12/2019 16:07, Venkata Sandeep Dhanalakota wrote:
> > > We do not require to register the sysctl paths per instance,
> > > so making registration global.
> > >
> > > Cc: Sudeep Dutt <sudeep.dutt@intel.com>
> > > Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> > > Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> > > Cc: Chris Wilson <chris@chris-wilson.co.uk>
> > > Cc: Jani Nikula <jani.nikula@intel.com>
> > > Signed-off-by: Venkata Sandeep Dhanalakota
> > > <venkata.s.dhanalakota@intel.com>
> > > ---
> > > drivers/gpu/drm/i915/i915_perf.c | 10 ++++++++--
> > > drivers/gpu/drm/i915/i915_perf_types.h | 1 -
> > > 2 files changed, 8 insertions(+), 3 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/i915/i915_perf.c
> > > b/drivers/gpu/drm/i915/i915_perf.c
> > > index 8d2e37949f46..426d04214a5d 100644
> > > --- a/drivers/gpu/drm/i915/i915_perf.c
> > > +++ b/drivers/gpu/drm/i915/i915_perf.c
> > > @@ -387,6 +387,8 @@ struct i915_oa_config_bo {
> > > struct i915_vma *vma;
> > > };
> > > +static struct ctl_table_header *sysctl_header;
> > > +
> > > static enum hrtimer_restart oa_poll_check_timer_cb(struct hrtimer
> > > *hrtimer);
> > > void i915_oa_config_release(struct kref *ref)
> > > @@ -4345,7 +4347,8 @@ void i915_perf_init(struct drm_i915_private *i915)
> > > oa_sample_rate_hard_limit = 1000 *
> > > (RUNTIME_INFO(i915)->cs_timestamp_frequency_khz / 2);
> > > - perf->sysctl_header = register_sysctl_table(dev_root);
> > > + if (!sysctl_header)
> > > + sysctl_header = register_sysctl_table(dev_root);
> > > mutex_init(&perf->metrics_lock);
> > > idr_init(&perf->metrics_idr);
> > > @@ -4395,7 +4398,10 @@ void i915_perf_fini(struct drm_i915_private *i915)
> > > idr_for_each(&perf->metrics_idr, destroy_config, perf);
> > > idr_destroy(&perf->metrics_idr);
> > > - unregister_sysctl_table(perf->sysctl_header);
> > > + if (sysctl_header) {
> > > + unregister_sysctl_table(sysctl_header);
> > > + sysctl_header = NULL;
> > > + }
> >
> > I am not sure if this could be racy with manual unbind from sysfs. Does
> > PCI core serialize for us?
>
> Actually with two devices you also need to reference count it since you
> don't want removal of the first device to remove the node but last.
>
Apparently this is not called during module exit, using krefs is
way go to or have some helper which are called during module init/exit.
void i915_perf_sysctl_register() {
sysctl_header = register_sysctl_table(dev_root);
}
void i915_perf_sysctl_unregister() {
unregister_sysctl_table(sysctl_header);
}
> > Regards,
> >
> > Tvrtko
> >
> > > memset(&perf->ops, 0, sizeof(perf->ops));
> > > perf->i915 = NULL;
> > > diff --git a/drivers/gpu/drm/i915/i915_perf_types.h
> > > b/drivers/gpu/drm/i915/i915_perf_types.h
> > > index 74ddc20a0d37..45e581455f5d 100644
> > > --- a/drivers/gpu/drm/i915/i915_perf_types.h
> > > +++ b/drivers/gpu/drm/i915/i915_perf_types.h
> > > @@ -380,7 +380,6 @@ struct i915_perf {
> > > struct drm_i915_private *i915;
> > > struct kobject *metrics_kobj;
> > > - struct ctl_table_header *sysctl_header;
> > > /*
> > > * Lock associated with adding/modifying/removing OA configs
> > >
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Intel-gfx] [PATCH 1/2] drm/i915/perf: Register sysctl path globally
2019-12-11 17:13 ` Venkata Sandeep Dhanalakota
@ 2019-12-11 17:25 ` Tvrtko Ursulin
2019-12-11 22:14 ` Lucas De Marchi
1 sibling, 0 replies; 24+ messages in thread
From: Tvrtko Ursulin @ 2019-12-11 17:25 UTC (permalink / raw)
To: Venkata Sandeep Dhanalakota; +Cc: intel-gfx, chris.p.wilson
On 11/12/2019 17:13, Venkata Sandeep Dhanalakota wrote:
> On 19/12/11 04:39, Tvrtko Ursulin wrote:
>>
>> On 11/12/2019 16:31, Tvrtko Ursulin wrote:
>>> On 11/12/2019 16:07, Venkata Sandeep Dhanalakota wrote:
>>>> We do not require to register the sysctl paths per instance,
>>>> so making registration global.
>>>>
>>>> Cc: Sudeep Dutt <sudeep.dutt@intel.com>
>>>> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
>>>> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
>>>> Cc: Chris Wilson <chris@chris-wilson.co.uk>
>>>> Cc: Jani Nikula <jani.nikula@intel.com>
>>>> Signed-off-by: Venkata Sandeep Dhanalakota
>>>> <venkata.s.dhanalakota@intel.com>
>>>> ---
>>>> drivers/gpu/drm/i915/i915_perf.c | 10 ++++++++--
>>>> drivers/gpu/drm/i915/i915_perf_types.h | 1 -
>>>> 2 files changed, 8 insertions(+), 3 deletions(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/i915/i915_perf.c
>>>> b/drivers/gpu/drm/i915/i915_perf.c
>>>> index 8d2e37949f46..426d04214a5d 100644
>>>> --- a/drivers/gpu/drm/i915/i915_perf.c
>>>> +++ b/drivers/gpu/drm/i915/i915_perf.c
>>>> @@ -387,6 +387,8 @@ struct i915_oa_config_bo {
>>>> struct i915_vma *vma;
>>>> };
>>>> +static struct ctl_table_header *sysctl_header;
>>>> +
>>>> static enum hrtimer_restart oa_poll_check_timer_cb(struct hrtimer
>>>> *hrtimer);
>>>> void i915_oa_config_release(struct kref *ref)
>>>> @@ -4345,7 +4347,8 @@ void i915_perf_init(struct drm_i915_private *i915)
>>>> oa_sample_rate_hard_limit = 1000 *
>>>> (RUNTIME_INFO(i915)->cs_timestamp_frequency_khz / 2);
>>>> - perf->sysctl_header = register_sysctl_table(dev_root);
>>>> + if (!sysctl_header)
>>>> + sysctl_header = register_sysctl_table(dev_root);
>>>> mutex_init(&perf->metrics_lock);
>>>> idr_init(&perf->metrics_idr);
>>>> @@ -4395,7 +4398,10 @@ void i915_perf_fini(struct drm_i915_private *i915)
>>>> idr_for_each(&perf->metrics_idr, destroy_config, perf);
>>>> idr_destroy(&perf->metrics_idr);
>>>> - unregister_sysctl_table(perf->sysctl_header);
>>>> + if (sysctl_header) {
>>>> + unregister_sysctl_table(sysctl_header);
>>>> + sysctl_header = NULL;
>>>> + }
>>>
>>> I am not sure if this could be racy with manual unbind from sysfs. Does
>>> PCI core serialize for us?
>>
>> Actually with two devices you also need to reference count it since you
>> don't want removal of the first device to remove the node but last.
>>
> Apparently this is not called during module exit, using krefs is
> way go to or have some helper which are called during module init/exit.
What is not called? i915_perf_fini? It better be! :)
Regards,
Tvrtko
>
> void i915_perf_sysctl_register() {
> sysctl_header = register_sysctl_table(dev_root);
> }
>
> void i915_perf_sysctl_unregister() {
> unregister_sysctl_table(sysctl_header);
> }
>
>
>>> Regards,
>>>
>>> Tvrtko
>>>
>>>> memset(&perf->ops, 0, sizeof(perf->ops));
>>>> perf->i915 = NULL;
>>>> diff --git a/drivers/gpu/drm/i915/i915_perf_types.h
>>>> b/drivers/gpu/drm/i915/i915_perf_types.h
>>>> index 74ddc20a0d37..45e581455f5d 100644
>>>> --- a/drivers/gpu/drm/i915/i915_perf_types.h
>>>> +++ b/drivers/gpu/drm/i915/i915_perf_types.h
>>>> @@ -380,7 +380,6 @@ struct i915_perf {
>>>> struct drm_i915_private *i915;
>>>> struct kobject *metrics_kobj;
>>>> - struct ctl_table_header *sysctl_header;
>>>> /*
>>>> * Lock associated with adding/modifying/removing OA configs
>>>>
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Intel-gfx] [PATCH 1/2] drm/i915/perf: Register sysctl path globally
2019-12-11 17:13 ` Venkata Sandeep Dhanalakota
2019-12-11 17:25 ` Tvrtko Ursulin
@ 2019-12-11 22:14 ` Lucas De Marchi
1 sibling, 0 replies; 24+ messages in thread
From: Lucas De Marchi @ 2019-12-11 22:14 UTC (permalink / raw)
To: Venkata Sandeep Dhanalakota; +Cc: intel-gfx, chris.p.wilson
On Wed, Dec 11, 2019 at 09:13:18AM -0800, Venkata Sandeep Dhanalakota wrote:
>On 19/12/11 04:39, Tvrtko Ursulin wrote:
>>
>> On 11/12/2019 16:31, Tvrtko Ursulin wrote:
>> > On 11/12/2019 16:07, Venkata Sandeep Dhanalakota wrote:
>> > > We do not require to register the sysctl paths per instance,
>> > > so making registration global.
>> > >
>> > > Cc: Sudeep Dutt <sudeep.dutt@intel.com>
>> > > Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
>> > > Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
>> > > Cc: Chris Wilson <chris@chris-wilson.co.uk>
>> > > Cc: Jani Nikula <jani.nikula@intel.com>
>> > > Signed-off-by: Venkata Sandeep Dhanalakota
>> > > <venkata.s.dhanalakota@intel.com>
>> > > ---
>> > > drivers/gpu/drm/i915/i915_perf.c | 10 ++++++++--
>> > > drivers/gpu/drm/i915/i915_perf_types.h | 1 -
>> > > 2 files changed, 8 insertions(+), 3 deletions(-)
>> > >
>> > > diff --git a/drivers/gpu/drm/i915/i915_perf.c
>> > > b/drivers/gpu/drm/i915/i915_perf.c
>> > > index 8d2e37949f46..426d04214a5d 100644
>> > > --- a/drivers/gpu/drm/i915/i915_perf.c
>> > > +++ b/drivers/gpu/drm/i915/i915_perf.c
>> > > @@ -387,6 +387,8 @@ struct i915_oa_config_bo {
>> > > struct i915_vma *vma;
>> > > };
>> > > +static struct ctl_table_header *sysctl_header;
>> > > +
>> > > static enum hrtimer_restart oa_poll_check_timer_cb(struct hrtimer
>> > > *hrtimer);
>> > > void i915_oa_config_release(struct kref *ref)
>> > > @@ -4345,7 +4347,8 @@ void i915_perf_init(struct drm_i915_private *i915)
>> > > oa_sample_rate_hard_limit = 1000 *
>> > > (RUNTIME_INFO(i915)->cs_timestamp_frequency_khz / 2);
>> > > - perf->sysctl_header = register_sysctl_table(dev_root);
>> > > + if (!sysctl_header)
>> > > + sysctl_header = register_sysctl_table(dev_root);
>> > > mutex_init(&perf->metrics_lock);
>> > > idr_init(&perf->metrics_idr);
>> > > @@ -4395,7 +4398,10 @@ void i915_perf_fini(struct drm_i915_private *i915)
>> > > idr_for_each(&perf->metrics_idr, destroy_config, perf);
>> > > idr_destroy(&perf->metrics_idr);
>> > > - unregister_sysctl_table(perf->sysctl_header);
>> > > + if (sysctl_header) {
>> > > + unregister_sysctl_table(sysctl_header);
>> > > + sysctl_header = NULL;
>> > > + }
>> >
>> > I am not sure if this could be racy with manual unbind from sysfs. Does
>> > PCI core serialize for us?
>>
>> Actually with two devices you also need to reference count it since you
>> don't want removal of the first device to remove the node but last.
>>
>Apparently this is not called during module exit, using krefs is
>way go to or have some helper which are called during module init/exit.
>
>void i915_perf_sysctl_register() {
> sysctl_header = register_sysctl_table(dev_root);
>}
>
>void i915_perf_sysctl_unregister() {
> unregister_sysctl_table(sysctl_header);
>}
yeah, since you are moving this to be global, I don't think it belongs
to the device, but rather to the module. So, IMO it makes more sense to
use this approach than kref/kunref on bind/unbind.
Lucas De Marchi
>
>
>> > Regards,
>> >
>> > Tvrtko
>> >
>> > > memset(&perf->ops, 0, sizeof(perf->ops));
>> > > perf->i915 = NULL;
>> > > diff --git a/drivers/gpu/drm/i915/i915_perf_types.h
>> > > b/drivers/gpu/drm/i915/i915_perf_types.h
>> > > index 74ddc20a0d37..45e581455f5d 100644
>> > > --- a/drivers/gpu/drm/i915/i915_perf_types.h
>> > > +++ b/drivers/gpu/drm/i915/i915_perf_types.h
>> > > @@ -380,7 +380,6 @@ struct i915_perf {
>> > > struct drm_i915_private *i915;
>> > > struct kobject *metrics_kobj;
>> > > - struct ctl_table_header *sysctl_header;
>> > > /*
>> > > * Lock associated with adding/modifying/removing OA configs
>> > >
>_______________________________________________
>Intel-gfx mailing list
>Intel-gfx@lists.freedesktop.org
>https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 24+ messages in thread
* [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915/perf: Register sysctl path globally
2019-12-11 16:07 [Intel-gfx] [PATCH 1/2] drm/i915/perf: Register sysctl path globally Venkata Sandeep Dhanalakota
` (2 preceding siblings ...)
2019-12-11 16:31 ` Tvrtko Ursulin
@ 2019-12-11 22:48 ` Patchwork
2019-12-12 9:08 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
4 siblings, 0 replies; 24+ messages in thread
From: Patchwork @ 2019-12-11 22:48 UTC (permalink / raw)
To: Venkata Sandeep Dhanalakota; +Cc: intel-gfx
== Series Details ==
Series: series starting with [1/2] drm/i915/perf: Register sysctl path globally
URL : https://patchwork.freedesktop.org/series/70768/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_7543 -> Patchwork_15695
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/index.html
Known issues
------------
Here are the changes found in Patchwork_15695 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_selftest@live_gem_contexts:
- fi-cfl-guc: [PASS][1] -> [INCOMPLETE][2] ([fdo#106070] / [i915#424])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/fi-cfl-guc/igt@i915_selftest@live_gem_contexts.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/fi-cfl-guc/igt@i915_selftest@live_gem_contexts.html
* igt@kms_busy@basic-flip-pipe-a:
- fi-icl-u2: [PASS][3] -> [INCOMPLETE][4] ([i915#140])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/fi-icl-u2/igt@kms_busy@basic-flip-pipe-a.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/fi-icl-u2/igt@kms_busy@basic-flip-pipe-a.html
#### Possible fixes ####
* igt@gem_exec_gttfill@basic:
- {fi-tgl-u}: [INCOMPLETE][5] ([fdo#111593]) -> [PASS][6]
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/fi-tgl-u/igt@gem_exec_gttfill@basic.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/fi-tgl-u/igt@gem_exec_gttfill@basic.html
* igt@i915_pm_rpm@module-reload:
- fi-skl-6770hq: [FAIL][7] ([i915#178]) -> [PASS][8]
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html
* igt@i915_selftest@live_requests:
- fi-ivb-3770: [INCOMPLETE][9] ([i915#773]) -> [PASS][10]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/fi-ivb-3770/igt@i915_selftest@live_requests.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/fi-ivb-3770/igt@i915_selftest@live_requests.html
- fi-hsw-4770: [INCOMPLETE][11] ([i915#773]) -> [PASS][12]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/fi-hsw-4770/igt@i915_selftest@live_requests.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/fi-hsw-4770/igt@i915_selftest@live_requests.html
* igt@kms_busy@basic-flip-pipe-a:
- fi-kbl-soraka: [DMESG-WARN][13] ([i915#95]) -> [PASS][14]
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/fi-kbl-soraka/igt@kms_busy@basic-flip-pipe-a.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/fi-kbl-soraka/igt@kms_busy@basic-flip-pipe-a.html
#### Warnings ####
* igt@i915_pm_rpm@basic-pci-d3-state:
- fi-kbl-x1275: [DMESG-WARN][15] ([i915#62] / [i915#92]) -> [DMESG-WARN][16] ([i915#62] / [i915#92] / [i915#95]) +4 similar issues
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/fi-kbl-x1275/igt@i915_pm_rpm@basic-pci-d3-state.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/fi-kbl-x1275/igt@i915_pm_rpm@basic-pci-d3-state.html
* igt@kms_chamelium@hdmi-hpd-fast:
- fi-kbl-7500u: [FAIL][17] ([fdo#111096] / [i915#323]) -> [FAIL][18] ([fdo#111407])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
* igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
- fi-kbl-x1275: [DMESG-WARN][19] ([i915#62] / [i915#92] / [i915#95]) -> [DMESG-WARN][20] ([i915#62] / [i915#92]) +5 similar issues
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/fi-kbl-x1275/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/fi-kbl-x1275/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#106070]: https://bugs.freedesktop.org/show_bug.cgi?id=106070
[fdo#111096]: https://bugs.freedesktop.org/show_bug.cgi?id=111096
[fdo#111407]: https://bugs.freedesktop.org/show_bug.cgi?id=111407
[fdo#111593]: https://bugs.freedesktop.org/show_bug.cgi?id=111593
[i915#140]: https://gitlab.freedesktop.org/drm/intel/issues/140
[i915#178]: https://gitlab.freedesktop.org/drm/intel/issues/178
[i915#323]: https://gitlab.freedesktop.org/drm/intel/issues/323
[i915#424]: https://gitlab.freedesktop.org/drm/intel/issues/424
[i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62
[i915#773]: https://gitlab.freedesktop.org/drm/intel/issues/773
[i915#92]: https://gitlab.freedesktop.org/drm/intel/issues/92
[i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95
Participating hosts (51 -> 47)
------------------------------
Additional (3): fi-hsw-4770r fi-tgl-guc fi-tgl-y
Missing (7): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus
Build changes
-------------
* CI: CI-20190529 -> None
* Linux: CI_DRM_7543 -> Patchwork_15695
CI-20190529: 20190529
CI_DRM_7543: 91752f80df9b582561be6bbac12ef780b12f606c @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_5345: 9e0c82b6d70065db894ececf2be8de372e983cf0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_15695: 619f60d048a67acded1d56ab93ca5dbc74f8b9e1 @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
619f60d048a6 drm/i915: Make warned variable private
f6ce998a02af drm/i915/perf: Register sysctl path globally
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 24+ messages in thread
* [Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [1/2] drm/i915/perf: Register sysctl path globally
2019-12-11 16:07 [Intel-gfx] [PATCH 1/2] drm/i915/perf: Register sysctl path globally Venkata Sandeep Dhanalakota
` (3 preceding siblings ...)
2019-12-11 22:48 ` [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/2] " Patchwork
@ 2019-12-12 9:08 ` Patchwork
4 siblings, 0 replies; 24+ messages in thread
From: Patchwork @ 2019-12-12 9:08 UTC (permalink / raw)
To: Venkata Sandeep Dhanalakota; +Cc: intel-gfx
== Series Details ==
Series: series starting with [1/2] drm/i915/perf: Register sysctl path globally
URL : https://patchwork.freedesktop.org/series/70768/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_7543_full -> Patchwork_15695_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Known issues
------------
Here are the changes found in Patchwork_15695_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_ctx_persistence@vcs0-mixed-process:
- shard-tglb: [PASS][1] -> [FAIL][2] ([i915#679])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-tglb7/igt@gem_ctx_persistence@vcs0-mixed-process.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-tglb8/igt@gem_ctx_persistence@vcs0-mixed-process.html
* igt@gem_ctx_persistence@vcs1-cleanup:
- shard-iclb: [PASS][3] -> [SKIP][4] ([fdo#109276] / [fdo#112080])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-iclb4/igt@gem_ctx_persistence@vcs1-cleanup.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-iclb8/igt@gem_ctx_persistence@vcs1-cleanup.html
* igt@gem_ctx_shared@exec-single-timeline-bsd:
- shard-iclb: [PASS][5] -> [SKIP][6] ([fdo#110841])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-iclb3/igt@gem_ctx_shared@exec-single-timeline-bsd.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-iclb4/igt@gem_ctx_shared@exec-single-timeline-bsd.html
* igt@gem_exec_parse_blt@allowed-all:
- shard-glk: [PASS][7] -> [DMESG-WARN][8] ([i915#716])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-glk6/igt@gem_exec_parse_blt@allowed-all.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-glk4/igt@gem_exec_parse_blt@allowed-all.html
* igt@gem_exec_parse_blt@allowed-single:
- shard-skl: [PASS][9] -> [DMESG-WARN][10] ([i915#716])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-skl5/igt@gem_exec_parse_blt@allowed-single.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-skl7/igt@gem_exec_parse_blt@allowed-single.html
* igt@gem_exec_schedule@preempt-queue-bsd1:
- shard-iclb: [PASS][11] -> [SKIP][12] ([fdo#109276]) +10 similar issues
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-iclb1/igt@gem_exec_schedule@preempt-queue-bsd1.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-iclb6/igt@gem_exec_schedule@preempt-queue-bsd1.html
* igt@gem_exec_schedule@preempt-queue-contexts-bsd:
- shard-iclb: [PASS][13] -> [SKIP][14] ([fdo#112146])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-iclb3/igt@gem_exec_schedule@preempt-queue-contexts-bsd.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-iclb4/igt@gem_exec_schedule@preempt-queue-contexts-bsd.html
* igt@gem_exec_store@basic-vcs1:
- shard-iclb: [PASS][15] -> [SKIP][16] ([fdo#112080]) +3 similar issues
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-iclb4/igt@gem_exec_store@basic-vcs1.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-iclb8/igt@gem_exec_store@basic-vcs1.html
* igt@gem_persistent_relocs@forked-faulting-reloc-thrash-inactive:
- shard-snb: [PASS][17] -> [TIMEOUT][18] ([i915#530])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-snb5/igt@gem_persistent_relocs@forked-faulting-reloc-thrash-inactive.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-snb7/igt@gem_persistent_relocs@forked-faulting-reloc-thrash-inactive.html
* igt@gem_ppgtt@flink-and-close-vma-leak:
- shard-kbl: [PASS][19] -> [FAIL][20] ([i915#644])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-kbl7/igt@gem_ppgtt@flink-and-close-vma-leak.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-kbl7/igt@gem_ppgtt@flink-and-close-vma-leak.html
* igt@gem_userptr_blits@sync-unmap:
- shard-snb: [PASS][21] -> [DMESG-WARN][22] ([fdo#111870])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-snb7/igt@gem_userptr_blits@sync-unmap.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-snb2/igt@gem_userptr_blits@sync-unmap.html
* igt@i915_pm_rpm@modeset-stress-extra-wait:
- shard-glk: [PASS][23] -> [DMESG-WARN][24] ([i915#118] / [i915#95])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-glk9/igt@i915_pm_rpm@modeset-stress-extra-wait.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-glk8/igt@i915_pm_rpm@modeset-stress-extra-wait.html
* igt@i915_pm_rpm@system-suspend-modeset:
- shard-tglb: [PASS][25] -> [INCOMPLETE][26] ([i915#456] / [i915#460]) +1 similar issue
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-tglb8/igt@i915_pm_rpm@system-suspend-modeset.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-tglb8/igt@i915_pm_rpm@system-suspend-modeset.html
* igt@i915_suspend@fence-restore-untiled:
- shard-kbl: [PASS][27] -> [DMESG-WARN][28] ([i915#180])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-kbl1/igt@i915_suspend@fence-restore-untiled.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-kbl4/igt@i915_suspend@fence-restore-untiled.html
* igt@kms_color@pipe-a-ctm-max:
- shard-skl: [PASS][29] -> [DMESG-WARN][30] ([i915#109])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-skl3/igt@kms_color@pipe-a-ctm-max.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-skl9/igt@kms_color@pipe-a-ctm-max.html
* igt@kms_cursor_crc@pipe-c-cursor-256x85-onscreen:
- shard-iclb: [PASS][31] -> [DMESG-WARN][32] ([IGT#6])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-iclb3/igt@kms_cursor_crc@pipe-c-cursor-256x85-onscreen.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-iclb3/igt@kms_cursor_crc@pipe-c-cursor-256x85-onscreen.html
- shard-skl: [PASS][33] -> [FAIL][34] ([i915#54])
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-skl6/igt@kms_cursor_crc@pipe-c-cursor-256x85-onscreen.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-skl10/igt@kms_cursor_crc@pipe-c-cursor-256x85-onscreen.html
* igt@kms_draw_crc@draw-method-rgb565-render-xtiled:
- shard-kbl: [PASS][35] -> [INCOMPLETE][36] ([fdo#103665] / [i915#667]) +1 similar issue
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-kbl7/igt@kms_draw_crc@draw-method-rgb565-render-xtiled.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-kbl2/igt@kms_draw_crc@draw-method-rgb565-render-xtiled.html
- shard-iclb: [PASS][37] -> [INCOMPLETE][38] ([i915#140])
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-iclb2/igt@kms_draw_crc@draw-method-rgb565-render-xtiled.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-iclb5/igt@kms_draw_crc@draw-method-rgb565-render-xtiled.html
* igt@kms_draw_crc@draw-method-xrgb8888-render-ytiled:
- shard-skl: [PASS][39] -> [INCOMPLETE][40] ([fdo#112347] / [i915#646] / [i915#667])
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-skl8/igt@kms_draw_crc@draw-method-xrgb8888-render-ytiled.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-skl2/igt@kms_draw_crc@draw-method-xrgb8888-render-ytiled.html
* igt@kms_frontbuffer_tracking@fbc-suspend:
- shard-tglb: [PASS][41] -> [INCOMPLETE][42] ([i915#456] / [i915#460] / [i915#474])
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-tglb3/igt@kms_frontbuffer_tracking@fbc-suspend.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-tglb4/igt@kms_frontbuffer_tracking@fbc-suspend.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-plflip-blt:
- shard-tglb: [PASS][43] -> [FAIL][44] ([i915#49]) +1 similar issue
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-tglb8/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-plflip-blt.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-tglb8/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-rte:
- shard-iclb: [PASS][45] -> [INCOMPLETE][46] ([i915#123] / [i915#140])
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-iclb7/igt@kms_frontbuffer_tracking@fbcpsr-1p-rte.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-iclb4/igt@kms_frontbuffer_tracking@fbcpsr-1p-rte.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-gtt:
- shard-tglb: [PASS][47] -> [INCOMPLETE][48] ([fdo#112393] / [i915#435] / [i915#667])
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-tglb9/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-gtt.html
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-tglb4/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-gtt.html
* igt@kms_pipe_crc_basic@suspend-read-crc-pipe-d:
- shard-tglb: [PASS][49] -> [INCOMPLETE][50] ([i915#460])
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-tglb4/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-d.html
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-tglb3/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-d.html
* igt@kms_plane@pixel-format-pipe-b-planes:
- shard-kbl: [PASS][51] -> [INCOMPLETE][52] ([fdo#103665] / [i915#648] / [i915#667])
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-kbl6/igt@kms_plane@pixel-format-pipe-b-planes.html
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-kbl4/igt@kms_plane@pixel-format-pipe-b-planes.html
* igt@kms_plane_alpha_blend@pipe-a-coverage-7efc:
- shard-skl: [PASS][53] -> [FAIL][54] ([fdo#108145]) +1 similar issue
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-skl10/igt@kms_plane_alpha_blend@pipe-a-coverage-7efc.html
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-skl5/igt@kms_plane_alpha_blend@pipe-a-coverage-7efc.html
* igt@kms_psr@psr2_sprite_plane_move:
- shard-iclb: [PASS][55] -> [SKIP][56] ([fdo#109441]) +2 similar issues
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-iclb2/igt@kms_psr@psr2_sprite_plane_move.html
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-iclb7/igt@kms_psr@psr2_sprite_plane_move.html
* igt@kms_vblank@pipe-b-ts-continuation-suspend:
- shard-apl: [PASS][57] -> [DMESG-WARN][58] ([i915#180]) +1 similar issue
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-apl6/igt@kms_vblank@pipe-b-ts-continuation-suspend.html
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-apl6/igt@kms_vblank@pipe-b-ts-continuation-suspend.html
#### Possible fixes ####
* igt@gem_busy@extended-parallel-vcs1:
- shard-iclb: [SKIP][59] ([fdo#112080]) -> [PASS][60] +1 similar issue
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-iclb3/igt@gem_busy@extended-parallel-vcs1.html
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-iclb4/igt@gem_busy@extended-parallel-vcs1.html
* {igt@gem_exec_schedule@pi-distinct-iova-bsd}:
- shard-iclb: [SKIP][61] ([i915#677]) -> [PASS][62] +1 similar issue
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-iclb2/igt@gem_exec_schedule@pi-distinct-iova-bsd.html
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-iclb7/igt@gem_exec_schedule@pi-distinct-iova-bsd.html
* igt@gem_exec_schedule@preempt-bsd:
- shard-iclb: [SKIP][63] ([fdo#112146]) -> [PASS][64] +4 similar issues
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-iclb2/igt@gem_exec_schedule@preempt-bsd.html
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-iclb7/igt@gem_exec_schedule@preempt-bsd.html
* igt@gem_exec_suspend@basic-s3:
- shard-kbl: [INCOMPLETE][65] ([fdo#103665]) -> [PASS][66]
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-kbl3/igt@gem_exec_suspend@basic-s3.html
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-kbl1/igt@gem_exec_suspend@basic-s3.html
* igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrash-inactive:
- shard-snb: [TIMEOUT][67] ([i915#530]) -> [PASS][68]
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-snb1/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrash-inactive.html
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-snb1/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrash-inactive.html
* igt@gem_userptr_blits@map-fixed-invalidate-busy:
- shard-snb: [DMESG-WARN][69] ([fdo#110789] / [fdo#111870]) -> [PASS][70]
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-snb2/igt@gem_userptr_blits@map-fixed-invalidate-busy.html
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-snb6/igt@gem_userptr_blits@map-fixed-invalidate-busy.html
* igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy:
- shard-snb: [DMESG-WARN][71] ([fdo#111870]) -> [PASS][72]
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-snb6/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-snb6/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html
* igt@gem_wait@await-vecs0:
- shard-skl: [DMESG-WARN][73] ([i915#109]) -> [PASS][74] +1 similar issue
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-skl4/igt@gem_wait@await-vecs0.html
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-skl3/igt@gem_wait@await-vecs0.html
* igt@i915_pm_dc@dc5-dpms:
- shard-iclb: [FAIL][75] ([i915#447]) -> [PASS][76]
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-iclb3/igt@i915_pm_dc@dc5-dpms.html
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-iclb7/igt@i915_pm_dc@dc5-dpms.html
* igt@i915_selftest@live_gt_timelines:
- shard-tglb: [INCOMPLETE][77] ([i915#455]) -> [PASS][78]
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-tglb3/igt@i915_selftest@live_gt_timelines.html
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-tglb4/igt@i915_selftest@live_gt_timelines.html
* igt@i915_selftest@mock_sanitycheck:
- shard-skl: [DMESG-WARN][79] ([i915#747]) -> [PASS][80]
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-skl8/igt@i915_selftest@mock_sanitycheck.html
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-skl3/igt@i915_selftest@mock_sanitycheck.html
* igt@i915_suspend@sysfs-reader:
- shard-apl: [DMESG-WARN][81] ([i915#180]) -> [PASS][82] +2 similar issues
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-apl6/igt@i915_suspend@sysfs-reader.html
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-apl4/igt@i915_suspend@sysfs-reader.html
* igt@kms_cursor_crc@pipe-c-cursor-256x85-sliding:
- shard-skl: [FAIL][83] ([i915#54]) -> [PASS][84] +3 similar issues
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-skl2/igt@kms_cursor_crc@pipe-c-cursor-256x85-sliding.html
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-skl10/igt@kms_cursor_crc@pipe-c-cursor-256x85-sliding.html
* igt@kms_draw_crc@draw-method-rgb565-blt-xtiled:
- shard-tglb: [INCOMPLETE][85] ([i915#667]) -> [PASS][86]
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-tglb9/igt@kms_draw_crc@draw-method-rgb565-blt-xtiled.html
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-tglb7/igt@kms_draw_crc@draw-method-rgb565-blt-xtiled.html
* igt@kms_draw_crc@draw-method-xrgb8888-render-ytiled:
- shard-tglb: [INCOMPLETE][87] ([fdo#112393] / [i915#667]) -> [PASS][88]
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-tglb8/igt@kms_draw_crc@draw-method-xrgb8888-render-ytiled.html
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-tglb8/igt@kms_draw_crc@draw-method-xrgb8888-render-ytiled.html
* igt@kms_flip@2x-flip-vs-expired-vblank-interruptible:
- shard-glk: [FAIL][89] ([i915#79]) -> [PASS][90]
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-glk8/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible.html
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-glk7/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible.html
* igt@kms_flip@flip-vs-expired-vblank:
- shard-skl: [FAIL][91] ([i915#79]) -> [PASS][92] +1 similar issue
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-skl3/igt@kms_flip@flip-vs-expired-vblank.html
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-skl1/igt@kms_flip@flip-vs-expired-vblank.html
* igt@kms_frontbuffer_tracking@fbc-suspend:
- shard-kbl: [DMESG-WARN][93] ([i915#180]) -> [PASS][94] +6 similar issues
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-kbl6/igt@kms_frontbuffer_tracking@fbc-suspend.html
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-kbl1/igt@kms_frontbuffer_tracking@fbc-suspend.html
* igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min:
- shard-skl: [FAIL][95] ([fdo#108145]) -> [PASS][96]
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-skl3/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min.html
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-skl9/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min.html
* igt@prime_vgem@fence-wait-bsd2:
- shard-iclb: [SKIP][97] ([fdo#109276]) -> [PASS][98] +1 similar issue
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-iclb7/igt@prime_vgem@fence-wait-bsd2.html
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-iclb4/igt@prime_vgem@fence-wait-bsd2.html
#### Warnings ####
* igt@kms_plane@pixel-format-pipe-a-planes-source-clamping:
- shard-skl: [INCOMPLETE][99] ([i915#648] / [i915#667]) -> [INCOMPLETE][100] ([i915#648])
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-skl1/igt@kms_plane@pixel-format-pipe-a-planes-source-clamping.html
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-skl4/igt@kms_plane@pixel-format-pipe-a-planes-source-clamping.html
* igt@kms_plane@pixel-format-pipe-b-planes:
- shard-skl: [INCOMPLETE][101] ([fdo#112347] / [fdo#112391] / [i915#648] / [i915#667]) -> [INCOMPLETE][102] ([fdo#112347] / [i915#648] / [i915#667])
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-skl6/igt@kms_plane@pixel-format-pipe-b-planes.html
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-skl10/igt@kms_plane@pixel-format-pipe-b-planes.html
* igt@runner@aborted:
- shard-skl: [FAIL][103] ([i915#69] / [k.org#204565]) -> [FAIL][104] ([i915#69])
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7543/shard-skl8/igt@runner@aborted.html
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/shard-skl7/igt@runner@aborted.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[IGT#6]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/6
[fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
[fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
[fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#110789]: https://bugs.freedesktop.org/show_bug.cgi?id=110789
[fdo#110841]: https://bugs.freedesktop.org/show_bug.cgi?id=110841
[fdo#111870]: https://bugs.freedesktop.org/show_bug.cgi?id=111870
[fdo#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080
[fdo#112146]: https://bugs.freedesktop.org/show_bug.cgi?id=112146
[fdo#112347]: https://bugs.freedesktop.org/show_bug.cgi?id=112347
[fdo#112391]: https://bugs.freedesktop.org/show_bug.cgi?id=112391
[fdo#112393]: https://bugs.freedesktop.org/show_bug.cgi?id=112393
[i915#109]: https://gitlab.freedesktop.org/drm/intel/issues/109
[i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
[i915#123]: https://gitlab.freedesktop.org/drm/intel/issues/123
[i915#140]: https://gitlab.freedesktop.org/drm/intel/issues/140
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#435]: https://gitlab.freedesktop.org/drm/intel/issues/435
[i915#447]: https://gitlab.freedesktop.org/drm/intel/issues/447
[i915#455]: https://gitlab.freedesktop.org/drm/intel/issues/455
[i915#456]: https://gitlab.freedesktop.org/drm/intel/issues/456
[i915#460]: https://gitlab.freedesktop.org/drm/intel/issues/460
[i915#474]: https://gitlab.freedesktop.org/drm/intel/issues/474
[i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49
[i915#530]: https://gitlab.freedesktop.org/drm/intel/issues/530
[i915#54]: https://gitlab.freedesktop.org/drm/intel/issues/54
[i915#644]: https://gitlab.freedesktop.org/drm/intel/issues/644
[i915#646]: https://gitlab.freedesktop.org/drm/intel/issues/646
[i915#648]: https://gitlab.freedesktop.org/drm/intel/issues/648
[i915#667]: https://gitlab.freedesktop.org/drm/intel/issues/667
[i915#677]: https://gitlab.freedesktop.org/drm/intel/issues/677
[i915#679]: https://gitlab.freedesktop.org/drm/intel/issues/679
[i915#69]: https://gitlab.freedesktop.org/drm/intel/issues/69
[i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716
[i915#747]: https://gitlab.freedesktop.org/drm/intel/issues/747
[i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
[i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95
[k.org#204565]: https://bugzilla.kernel.org/show_bug.cgi?id=204565
Participating hosts (11 -> 11)
------------------------------
No changes in participating hosts
Build changes
-------------
* CI: CI-20190529 -> None
* Linux: CI_DRM_7543 -> Patchwork_15695
CI-20190529: 20190529
CI_DRM_7543: 91752f80df9b582561be6bbac12ef780b12f606c @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_5345: 9e0c82b6d70065db894ececf2be8de372e983cf0 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_15695: 619f60d048a67acded1d56ab93ca5dbc74f8b9e1 @ git://anongit.freedesktop.org/gfx-ci/linux
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15695/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 24+ messages in thread
* [Intel-gfx] [PATCH 1/2] drm/i915/perf: Register sysctl path globally
@ 2019-12-12 7:35 Venkata Sandeep Dhanalakota
2019-12-12 21:34 ` Lucas De Marchi
0 siblings, 1 reply; 24+ messages in thread
From: Venkata Sandeep Dhanalakota @ 2019-12-12 7:35 UTC (permalink / raw)
To: intel-gfx; +Cc: chris.p.wilson
We do not require to register the sysctl paths per instance,
so making registration global.
v2: make sysctl path register and unregister function driver
specific (Tvrtko and Lucas).
Cc: Sudeep Dutt <sudeep.dutt@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Venkata Sandeep Dhanalakota <venkata.s.dhanalakota@intel.com>
---
drivers/gpu/drm/i915/i915_pci.c | 6 ++++++
drivers/gpu/drm/i915/i915_perf.c | 19 ++++++++++++++++---
drivers/gpu/drm/i915/i915_perf.h | 2 ++
drivers/gpu/drm/i915/i915_perf_types.h | 1 -
4 files changed, 24 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
index bba6b50e6beb..c5a2bb5e87fe 100644
--- a/drivers/gpu/drm/i915/i915_pci.c
+++ b/drivers/gpu/drm/i915/i915_pci.c
@@ -30,6 +30,7 @@
#include "display/intel_fbdev.h"
#include "i915_drv.h"
+#include "i915_perf.h"
#include "i915_globals.h"
#include "i915_selftest.h"
@@ -1051,6 +1052,10 @@ static int __init i915_init(void)
return 0;
}
+ err = i915_perf_sysctl_register();
+ if (err)
+ return err;
+
return pci_register_driver(&i915_pci_driver);
}
@@ -1059,6 +1064,7 @@ static void __exit i915_exit(void)
if (!i915_pci_driver.driver.owner)
return;
+ i915_perf_sysctl_unregister();
pci_unregister_driver(&i915_pci_driver);
i915_globals_exit();
}
diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
index 8d2e37949f46..f039beed1771 100644
--- a/drivers/gpu/drm/i915/i915_perf.c
+++ b/drivers/gpu/drm/i915/i915_perf.c
@@ -387,6 +387,8 @@ struct i915_oa_config_bo {
struct i915_vma *vma;
};
+static struct ctl_table_header *sysctl_header;
+
static enum hrtimer_restart oa_poll_check_timer_cb(struct hrtimer *hrtimer);
void i915_oa_config_release(struct kref *ref)
@@ -4345,7 +4347,6 @@ void i915_perf_init(struct drm_i915_private *i915)
oa_sample_rate_hard_limit = 1000 *
(RUNTIME_INFO(i915)->cs_timestamp_frequency_khz / 2);
- perf->sysctl_header = register_sysctl_table(dev_root);
mutex_init(&perf->metrics_lock);
idr_init(&perf->metrics_idr);
@@ -4381,6 +4382,20 @@ static int destroy_config(int id, void *p, void *data)
return 0;
}
+int i915_perf_sysctl_register(void)
+{
+ sysctl_header = register_sysctl_table(dev_root);
+ if (!sysctl_header)
+ return -ENOMEM;
+
+ return 0;
+}
+
+void i915_perf_sysctl_unregister(void)
+{
+ unregister_sysctl_table(sysctl_header);
+}
+
/**
* i915_perf_fini - Counter part to i915_perf_init()
* @i915: i915 device instance
@@ -4395,8 +4410,6 @@ void i915_perf_fini(struct drm_i915_private *i915)
idr_for_each(&perf->metrics_idr, destroy_config, perf);
idr_destroy(&perf->metrics_idr);
- unregister_sysctl_table(perf->sysctl_header);
-
memset(&perf->ops, 0, sizeof(perf->ops));
perf->i915 = NULL;
}
diff --git a/drivers/gpu/drm/i915/i915_perf.h b/drivers/gpu/drm/i915/i915_perf.h
index 4ceebce72060..1d1329e5af3a 100644
--- a/drivers/gpu/drm/i915/i915_perf.h
+++ b/drivers/gpu/drm/i915/i915_perf.h
@@ -23,6 +23,8 @@ void i915_perf_fini(struct drm_i915_private *i915);
void i915_perf_register(struct drm_i915_private *i915);
void i915_perf_unregister(struct drm_i915_private *i915);
int i915_perf_ioctl_version(void);
+int i915_perf_sysctl_register(void);
+void i915_perf_sysctl_unregister(void);
int i915_perf_open_ioctl(struct drm_device *dev, void *data,
struct drm_file *file);
diff --git a/drivers/gpu/drm/i915/i915_perf_types.h b/drivers/gpu/drm/i915/i915_perf_types.h
index 74ddc20a0d37..45e581455f5d 100644
--- a/drivers/gpu/drm/i915/i915_perf_types.h
+++ b/drivers/gpu/drm/i915/i915_perf_types.h
@@ -380,7 +380,6 @@ struct i915_perf {
struct drm_i915_private *i915;
struct kobject *metrics_kobj;
- struct ctl_table_header *sysctl_header;
/*
* Lock associated with adding/modifying/removing OA configs
--
2.21.0.5.gaeb582a983
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [Intel-gfx] [PATCH 1/2] drm/i915/perf: Register sysctl path globally
2019-12-12 7:35 [Intel-gfx] [PATCH 1/2] " Venkata Sandeep Dhanalakota
@ 2019-12-12 21:34 ` Lucas De Marchi
2019-12-13 5:07 ` Venkata Sandeep Dhanalakota
0 siblings, 1 reply; 24+ messages in thread
From: Lucas De Marchi @ 2019-12-12 21:34 UTC (permalink / raw)
To: Venkata Sandeep Dhanalakota; +Cc: intel-gfx, chris.p.wilson
On Wed, Dec 11, 2019 at 11:35:21PM -0800, Venkata Sandeep Dhanalakota wrote:
>We do not require to register the sysctl paths per instance,
>so making registration global.
>
>v2: make sysctl path register and unregister function driver
> specific (Tvrtko and Lucas).
>
>Cc: Sudeep Dutt <sudeep.dutt@intel.com>
>Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
>Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
>Cc: Chris Wilson <chris@chris-wilson.co.uk>
>Cc: Jani Nikula <jani.nikula@intel.com>
>Signed-off-by: Venkata Sandeep Dhanalakota <venkata.s.dhanalakota@intel.com>
>---
> drivers/gpu/drm/i915/i915_pci.c | 6 ++++++
> drivers/gpu/drm/i915/i915_perf.c | 19 ++++++++++++++++---
> drivers/gpu/drm/i915/i915_perf.h | 2 ++
> drivers/gpu/drm/i915/i915_perf_types.h | 1 -
> 4 files changed, 24 insertions(+), 4 deletions(-)
>
>diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
>index bba6b50e6beb..c5a2bb5e87fe 100644
>--- a/drivers/gpu/drm/i915/i915_pci.c
>+++ b/drivers/gpu/drm/i915/i915_pci.c
>@@ -30,6 +30,7 @@
> #include "display/intel_fbdev.h"
>
> #include "i915_drv.h"
>+#include "i915_perf.h"
> #include "i915_globals.h"
> #include "i915_selftest.h"
>
>@@ -1051,6 +1052,10 @@ static int __init i915_init(void)
> return 0;
> }
>
>+ err = i915_perf_sysctl_register();
>+ if (err)
>+ return err;
>+
> return pci_register_driver(&i915_pci_driver);
> }
>
>@@ -1059,6 +1064,7 @@ static void __exit i915_exit(void)
> if (!i915_pci_driver.driver.owner)
> return;
>
>+ i915_perf_sysctl_unregister();
honoring the init order means to unregister this after
pci_unregister_driver()
> pci_unregister_driver(&i915_pci_driver);
> i915_globals_exit();
> }
>diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
>index 8d2e37949f46..f039beed1771 100644
>--- a/drivers/gpu/drm/i915/i915_perf.c
>+++ b/drivers/gpu/drm/i915/i915_perf.c
>@@ -387,6 +387,8 @@ struct i915_oa_config_bo {
> struct i915_vma *vma;
> };
>
>+static struct ctl_table_header *sysctl_header;
>+
> static enum hrtimer_restart oa_poll_check_timer_cb(struct hrtimer *hrtimer);
>
> void i915_oa_config_release(struct kref *ref)
>@@ -4345,7 +4347,6 @@ void i915_perf_init(struct drm_i915_private *i915)
>
> oa_sample_rate_hard_limit = 1000 *
> (RUNTIME_INFO(i915)->cs_timestamp_frequency_khz / 2);
>- perf->sysctl_header = register_sysctl_table(dev_root);
doc for this function also needs an update with
s/module load/module bind/
>
> mutex_init(&perf->metrics_lock);
> idr_init(&perf->metrics_idr);
>@@ -4381,6 +4382,20 @@ static int destroy_config(int id, void *p, void *data)
> return 0;
> }
>
>+int i915_perf_sysctl_register(void)
>+{
>+ sysctl_header = register_sysctl_table(dev_root);
>+ if (!sysctl_header)
>+ return -ENOMEM;
Not sure about this return code here. grepping other drivers, this seems
to be common, but checking register_sysctl_table() it can actually fail
for other reasons.
The previous behavior was to ignore it and not fail the entire thing...
just living without this sysctl. I'd say to keep that behavior.
Lucas De Marchi
>+
>+ return 0;
>+}
>+
>+void i915_perf_sysctl_unregister(void)
>+{
>+ unregister_sysctl_table(sysctl_header);
>+}
>+
> /**
> * i915_perf_fini - Counter part to i915_perf_init()
> * @i915: i915 device instance
>@@ -4395,8 +4410,6 @@ void i915_perf_fini(struct drm_i915_private *i915)
> idr_for_each(&perf->metrics_idr, destroy_config, perf);
> idr_destroy(&perf->metrics_idr);
>
>- unregister_sysctl_table(perf->sysctl_header);
>-
> memset(&perf->ops, 0, sizeof(perf->ops));
> perf->i915 = NULL;
> }
>diff --git a/drivers/gpu/drm/i915/i915_perf.h b/drivers/gpu/drm/i915/i915_perf.h
>index 4ceebce72060..1d1329e5af3a 100644
>--- a/drivers/gpu/drm/i915/i915_perf.h
>+++ b/drivers/gpu/drm/i915/i915_perf.h
>@@ -23,6 +23,8 @@ void i915_perf_fini(struct drm_i915_private *i915);
> void i915_perf_register(struct drm_i915_private *i915);
> void i915_perf_unregister(struct drm_i915_private *i915);
> int i915_perf_ioctl_version(void);
>+int i915_perf_sysctl_register(void);
>+void i915_perf_sysctl_unregister(void);
>
> int i915_perf_open_ioctl(struct drm_device *dev, void *data,
> struct drm_file *file);
>diff --git a/drivers/gpu/drm/i915/i915_perf_types.h b/drivers/gpu/drm/i915/i915_perf_types.h
>index 74ddc20a0d37..45e581455f5d 100644
>--- a/drivers/gpu/drm/i915/i915_perf_types.h
>+++ b/drivers/gpu/drm/i915/i915_perf_types.h
>@@ -380,7 +380,6 @@ struct i915_perf {
> struct drm_i915_private *i915;
>
> struct kobject *metrics_kobj;
>- struct ctl_table_header *sysctl_header;
>
> /*
> * Lock associated with adding/modifying/removing OA configs
>--
>2.21.0.5.gaeb582a983
>
>_______________________________________________
>Intel-gfx mailing list
>Intel-gfx@lists.freedesktop.org
>https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Intel-gfx] [PATCH 1/2] drm/i915/perf: Register sysctl path globally
2019-12-12 21:34 ` Lucas De Marchi
@ 2019-12-13 5:07 ` Venkata Sandeep Dhanalakota
0 siblings, 0 replies; 24+ messages in thread
From: Venkata Sandeep Dhanalakota @ 2019-12-13 5:07 UTC (permalink / raw)
To: Lucas De Marchi; +Cc: intel-gfx, chris.p.wilson
On 19/12/12 01:34, Lucas De Marchi wrote:
> On Wed, Dec 11, 2019 at 11:35:21PM -0800, Venkata Sandeep Dhanalakota wrote:
> > We do not require to register the sysctl paths per instance,
> > so making registration global.
> >
> > v2: make sysctl path register and unregister function driver
> > specific (Tvrtko and Lucas).
> >
> > Cc: Sudeep Dutt <sudeep.dutt@intel.com>
> > Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> > Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> > Cc: Chris Wilson <chris@chris-wilson.co.uk>
> > Cc: Jani Nikula <jani.nikula@intel.com>
> > Signed-off-by: Venkata Sandeep Dhanalakota <venkata.s.dhanalakota@intel.com>
> > ---
> > drivers/gpu/drm/i915/i915_pci.c | 6 ++++++
> > drivers/gpu/drm/i915/i915_perf.c | 19 ++++++++++++++++---
> > drivers/gpu/drm/i915/i915_perf.h | 2 ++
> > drivers/gpu/drm/i915/i915_perf_types.h | 1 -
> > 4 files changed, 24 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
> > index bba6b50e6beb..c5a2bb5e87fe 100644
> > --- a/drivers/gpu/drm/i915/i915_pci.c
> > +++ b/drivers/gpu/drm/i915/i915_pci.c
> > @@ -30,6 +30,7 @@
> > #include "display/intel_fbdev.h"
> >
> > #include "i915_drv.h"
> > +#include "i915_perf.h"
> > #include "i915_globals.h"
> > #include "i915_selftest.h"
> >
> > @@ -1051,6 +1052,10 @@ static int __init i915_init(void)
> > return 0;
> > }
> >
> > + err = i915_perf_sysctl_register();
> > + if (err)
> > + return err;
> > +
> > return pci_register_driver(&i915_pci_driver);
> > }
> >
> > @@ -1059,6 +1064,7 @@ static void __exit i915_exit(void)
> > if (!i915_pci_driver.driver.owner)
> > return;
> >
> > + i915_perf_sysctl_unregister();
>
> honoring the init order means to unregister this after
> pci_unregister_driver()
I think we should reverse the init order, because if we cannot
register pci driver successfully then we dont need to register
sysctl table.
>
> > pci_unregister_driver(&i915_pci_driver);
> > i915_globals_exit();
> > }
> > diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
> > index 8d2e37949f46..f039beed1771 100644
> > --- a/drivers/gpu/drm/i915/i915_perf.c
> > +++ b/drivers/gpu/drm/i915/i915_perf.c
> > @@ -387,6 +387,8 @@ struct i915_oa_config_bo {
> > struct i915_vma *vma;
> > };
> >
> > +static struct ctl_table_header *sysctl_header;
> > +
> > static enum hrtimer_restart oa_poll_check_timer_cb(struct hrtimer *hrtimer);
> >
> > void i915_oa_config_release(struct kref *ref)
> > @@ -4345,7 +4347,6 @@ void i915_perf_init(struct drm_i915_private *i915)
> >
> > oa_sample_rate_hard_limit = 1000 *
> > (RUNTIME_INFO(i915)->cs_timestamp_frequency_khz / 2);
> > - perf->sysctl_header = register_sysctl_table(dev_root);
>
> doc for this function also needs an update with
> s/module load/module bind/
sure.
>
> >
> > mutex_init(&perf->metrics_lock);
> > idr_init(&perf->metrics_idr);
> > @@ -4381,6 +4382,20 @@ static int destroy_config(int id, void *p, void *data)
> > return 0;
> > }
> >
> > +int i915_perf_sysctl_register(void)
> > +{
> > + sysctl_header = register_sysctl_table(dev_root);
> > + if (!sysctl_header)
> > + return -ENOMEM;
>
> Not sure about this return code here. grepping other drivers, this seems
> to be common, but checking register_sysctl_table() it can actually fail
> for other reasons.
>
> The previous behavior was to ignore it and not fail the entire thing...
> just living without this sysctl. I'd say to keep that behavior.
>
Sure, we could ignore the return code for now.
> Lucas De Marchi
>
> > +
> > + return 0;
> > +}
> > +
> > +void i915_perf_sysctl_unregister(void)
> > +{
> > + unregister_sysctl_table(sysctl_header);
> > +}
> > +
> > /**
> > * i915_perf_fini - Counter part to i915_perf_init()
> > * @i915: i915 device instance
> > @@ -4395,8 +4410,6 @@ void i915_perf_fini(struct drm_i915_private *i915)
> > idr_for_each(&perf->metrics_idr, destroy_config, perf);
> > idr_destroy(&perf->metrics_idr);
> >
> > - unregister_sysctl_table(perf->sysctl_header);
> > -
> > memset(&perf->ops, 0, sizeof(perf->ops));
> > perf->i915 = NULL;
> > }
> > diff --git a/drivers/gpu/drm/i915/i915_perf.h b/drivers/gpu/drm/i915/i915_perf.h
> > index 4ceebce72060..1d1329e5af3a 100644
> > --- a/drivers/gpu/drm/i915/i915_perf.h
> > +++ b/drivers/gpu/drm/i915/i915_perf.h
> > @@ -23,6 +23,8 @@ void i915_perf_fini(struct drm_i915_private *i915);
> > void i915_perf_register(struct drm_i915_private *i915);
> > void i915_perf_unregister(struct drm_i915_private *i915);
> > int i915_perf_ioctl_version(void);
> > +int i915_perf_sysctl_register(void);
> > +void i915_perf_sysctl_unregister(void);
> >
> > int i915_perf_open_ioctl(struct drm_device *dev, void *data,
> > struct drm_file *file);
> > diff --git a/drivers/gpu/drm/i915/i915_perf_types.h b/drivers/gpu/drm/i915/i915_perf_types.h
> > index 74ddc20a0d37..45e581455f5d 100644
> > --- a/drivers/gpu/drm/i915/i915_perf_types.h
> > +++ b/drivers/gpu/drm/i915/i915_perf_types.h
> > @@ -380,7 +380,6 @@ struct i915_perf {
> > struct drm_i915_private *i915;
> >
> > struct kobject *metrics_kobj;
> > - struct ctl_table_header *sysctl_header;
> >
> > /*
> > * Lock associated with adding/modifying/removing OA configs
> > --
> > 2.21.0.5.gaeb582a983
> >
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 24+ messages in thread
* [Intel-gfx] [PATCH 1/2] drm/i915/perf: Register sysctl path globally
@ 2019-12-13 9:12 Venkata Sandeep Dhanalakota
0 siblings, 0 replies; 24+ messages in thread
From: Venkata Sandeep Dhanalakota @ 2019-12-13 9:12 UTC (permalink / raw)
To: intel-gfx; +Cc: chris.p.wilson
We do not require to register the sysctl paths per instance,
so making registration global.
v2: make sysctl path register and unregister function driver
specific (Tvrtko and Lucas).
Cc: Sudeep Dutt <sudeep.dutt@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Venkata Sandeep Dhanalakota <venkata.s.dhanalakota@intel.com>
---
drivers/gpu/drm/i915/i915_pci.c | 9 ++++++++-
drivers/gpu/drm/i915/i915_perf.c | 18 ++++++++++++++----
drivers/gpu/drm/i915/i915_perf.h | 2 ++
drivers/gpu/drm/i915/i915_perf_types.h | 1 -
4 files changed, 24 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
index bba6b50e6beb..4b33128070da 100644
--- a/drivers/gpu/drm/i915/i915_pci.c
+++ b/drivers/gpu/drm/i915/i915_pci.c
@@ -30,6 +30,7 @@
#include "display/intel_fbdev.h"
#include "i915_drv.h"
+#include "i915_perf.h"
#include "i915_globals.h"
#include "i915_selftest.h"
@@ -1051,7 +1052,12 @@ static int __init i915_init(void)
return 0;
}
- return pci_register_driver(&i915_pci_driver);
+ err = pci_register_driver(&i915_pci_driver);
+ if (err)
+ return err;
+
+ i915_perf_sysctl_register();
+ return 0;
}
static void __exit i915_exit(void)
@@ -1059,6 +1065,7 @@ static void __exit i915_exit(void)
if (!i915_pci_driver.driver.owner)
return;
+ i915_perf_sysctl_unregister();
pci_unregister_driver(&i915_pci_driver);
i915_globals_exit();
}
diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
index 8d2e37949f46..4abd7623ef2d 100644
--- a/drivers/gpu/drm/i915/i915_perf.c
+++ b/drivers/gpu/drm/i915/i915_perf.c
@@ -387,6 +387,8 @@ struct i915_oa_config_bo {
struct i915_vma *vma;
};
+static struct ctl_table_header *sysctl_header;
+
static enum hrtimer_restart oa_poll_check_timer_cb(struct hrtimer *hrtimer);
void i915_oa_config_release(struct kref *ref)
@@ -4228,7 +4230,7 @@ static struct ctl_table dev_root[] = {
};
/**
- * i915_perf_init - initialize i915-perf state on module load
+ * i915_perf_init - initialize i915-perf state on module bind
* @i915: i915 device instance
*
* Initializes i915-perf state without exposing anything to userspace.
@@ -4345,7 +4347,6 @@ void i915_perf_init(struct drm_i915_private *i915)
oa_sample_rate_hard_limit = 1000 *
(RUNTIME_INFO(i915)->cs_timestamp_frequency_khz / 2);
- perf->sysctl_header = register_sysctl_table(dev_root);
mutex_init(&perf->metrics_lock);
idr_init(&perf->metrics_idr);
@@ -4381,6 +4382,17 @@ static int destroy_config(int id, void *p, void *data)
return 0;
}
+void i915_perf_sysctl_register(void)
+{
+ sysctl_header = register_sysctl_table(dev_root);
+}
+
+void i915_perf_sysctl_unregister(void)
+{
+ if (sysctl_header)
+ unregister_sysctl_table(sysctl_header);
+}
+
/**
* i915_perf_fini - Counter part to i915_perf_init()
* @i915: i915 device instance
@@ -4395,8 +4407,6 @@ void i915_perf_fini(struct drm_i915_private *i915)
idr_for_each(&perf->metrics_idr, destroy_config, perf);
idr_destroy(&perf->metrics_idr);
- unregister_sysctl_table(perf->sysctl_header);
-
memset(&perf->ops, 0, sizeof(perf->ops));
perf->i915 = NULL;
}
diff --git a/drivers/gpu/drm/i915/i915_perf.h b/drivers/gpu/drm/i915/i915_perf.h
index 4ceebce72060..882fdd0a7680 100644
--- a/drivers/gpu/drm/i915/i915_perf.h
+++ b/drivers/gpu/drm/i915/i915_perf.h
@@ -23,6 +23,8 @@ void i915_perf_fini(struct drm_i915_private *i915);
void i915_perf_register(struct drm_i915_private *i915);
void i915_perf_unregister(struct drm_i915_private *i915);
int i915_perf_ioctl_version(void);
+void i915_perf_sysctl_register(void);
+void i915_perf_sysctl_unregister(void);
int i915_perf_open_ioctl(struct drm_device *dev, void *data,
struct drm_file *file);
diff --git a/drivers/gpu/drm/i915/i915_perf_types.h b/drivers/gpu/drm/i915/i915_perf_types.h
index 74ddc20a0d37..45e581455f5d 100644
--- a/drivers/gpu/drm/i915/i915_perf_types.h
+++ b/drivers/gpu/drm/i915/i915_perf_types.h
@@ -380,7 +380,6 @@ struct i915_perf {
struct drm_i915_private *i915;
struct kobject *metrics_kobj;
- struct ctl_table_header *sysctl_header;
/*
* Lock associated with adding/modifying/removing OA configs
--
2.21.0.5.gaeb582a983
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [Intel-gfx] [PATCH 1/2] drm/i915/perf: Register sysctl path globally
@ 2019-12-13 15:51 Venkata Sandeep Dhanalakota
2019-12-13 16:09 ` Chris Wilson
0 siblings, 1 reply; 24+ messages in thread
From: Venkata Sandeep Dhanalakota @ 2019-12-13 15:51 UTC (permalink / raw)
To: intel-gfx; +Cc: chris.p.wilson
We do not require to register the sysctl paths per instance,
so making registration global.
v2: make sysctl path register and unregister function driver
specific (Tvrtko and Lucas).
Cc: Sudeep Dutt <sudeep.dutt@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Venkata Sandeep Dhanalakota <venkata.s.dhanalakota@intel.com>
---
drivers/gpu/drm/i915/i915_pci.c | 9 ++++++++-
drivers/gpu/drm/i915/i915_perf.c | 18 ++++++++++++++----
drivers/gpu/drm/i915/i915_perf.h | 2 ++
drivers/gpu/drm/i915/i915_perf_types.h | 1 -
4 files changed, 24 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
index bba6b50e6beb..4b33128070da 100644
--- a/drivers/gpu/drm/i915/i915_pci.c
+++ b/drivers/gpu/drm/i915/i915_pci.c
@@ -30,6 +30,7 @@
#include "display/intel_fbdev.h"
#include "i915_drv.h"
+#include "i915_perf.h"
#include "i915_globals.h"
#include "i915_selftest.h"
@@ -1051,7 +1052,12 @@ static int __init i915_init(void)
return 0;
}
- return pci_register_driver(&i915_pci_driver);
+ err = pci_register_driver(&i915_pci_driver);
+ if (err)
+ return err;
+
+ i915_perf_sysctl_register();
+ return 0;
}
static void __exit i915_exit(void)
@@ -1059,6 +1065,7 @@ static void __exit i915_exit(void)
if (!i915_pci_driver.driver.owner)
return;
+ i915_perf_sysctl_unregister();
pci_unregister_driver(&i915_pci_driver);
i915_globals_exit();
}
diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
index 8d2e37949f46..4abd7623ef2d 100644
--- a/drivers/gpu/drm/i915/i915_perf.c
+++ b/drivers/gpu/drm/i915/i915_perf.c
@@ -387,6 +387,8 @@ struct i915_oa_config_bo {
struct i915_vma *vma;
};
+static struct ctl_table_header *sysctl_header;
+
static enum hrtimer_restart oa_poll_check_timer_cb(struct hrtimer *hrtimer);
void i915_oa_config_release(struct kref *ref)
@@ -4228,7 +4230,7 @@ static struct ctl_table dev_root[] = {
};
/**
- * i915_perf_init - initialize i915-perf state on module load
+ * i915_perf_init - initialize i915-perf state on module bind
* @i915: i915 device instance
*
* Initializes i915-perf state without exposing anything to userspace.
@@ -4345,7 +4347,6 @@ void i915_perf_init(struct drm_i915_private *i915)
oa_sample_rate_hard_limit = 1000 *
(RUNTIME_INFO(i915)->cs_timestamp_frequency_khz / 2);
- perf->sysctl_header = register_sysctl_table(dev_root);
mutex_init(&perf->metrics_lock);
idr_init(&perf->metrics_idr);
@@ -4381,6 +4382,17 @@ static int destroy_config(int id, void *p, void *data)
return 0;
}
+void i915_perf_sysctl_register(void)
+{
+ sysctl_header = register_sysctl_table(dev_root);
+}
+
+void i915_perf_sysctl_unregister(void)
+{
+ if (sysctl_header)
+ unregister_sysctl_table(sysctl_header);
+}
+
/**
* i915_perf_fini - Counter part to i915_perf_init()
* @i915: i915 device instance
@@ -4395,8 +4407,6 @@ void i915_perf_fini(struct drm_i915_private *i915)
idr_for_each(&perf->metrics_idr, destroy_config, perf);
idr_destroy(&perf->metrics_idr);
- unregister_sysctl_table(perf->sysctl_header);
-
memset(&perf->ops, 0, sizeof(perf->ops));
perf->i915 = NULL;
}
diff --git a/drivers/gpu/drm/i915/i915_perf.h b/drivers/gpu/drm/i915/i915_perf.h
index 4ceebce72060..882fdd0a7680 100644
--- a/drivers/gpu/drm/i915/i915_perf.h
+++ b/drivers/gpu/drm/i915/i915_perf.h
@@ -23,6 +23,8 @@ void i915_perf_fini(struct drm_i915_private *i915);
void i915_perf_register(struct drm_i915_private *i915);
void i915_perf_unregister(struct drm_i915_private *i915);
int i915_perf_ioctl_version(void);
+void i915_perf_sysctl_register(void);
+void i915_perf_sysctl_unregister(void);
int i915_perf_open_ioctl(struct drm_device *dev, void *data,
struct drm_file *file);
diff --git a/drivers/gpu/drm/i915/i915_perf_types.h b/drivers/gpu/drm/i915/i915_perf_types.h
index 74ddc20a0d37..45e581455f5d 100644
--- a/drivers/gpu/drm/i915/i915_perf_types.h
+++ b/drivers/gpu/drm/i915/i915_perf_types.h
@@ -380,7 +380,6 @@ struct i915_perf {
struct drm_i915_private *i915;
struct kobject *metrics_kobj;
- struct ctl_table_header *sysctl_header;
/*
* Lock associated with adding/modifying/removing OA configs
--
2.21.0.5.gaeb582a983
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [Intel-gfx] [PATCH 1/2] drm/i915/perf: Register sysctl path globally
2019-12-13 15:51 Venkata Sandeep Dhanalakota
@ 2019-12-13 16:09 ` Chris Wilson
2019-12-13 17:41 ` Lucas De Marchi
0 siblings, 1 reply; 24+ messages in thread
From: Chris Wilson @ 2019-12-13 16:09 UTC (permalink / raw)
To: Venkata Sandeep Dhanalakota, intel-gfx
Quoting Venkata Sandeep Dhanalakota (2019-12-13 15:51:51)
> We do not require to register the sysctl paths per instance,
> so making registration global.
>
> v2: make sysctl path register and unregister function driver
> specific (Tvrtko and Lucas).
>
> Cc: Sudeep Dutt <sudeep.dutt@intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Signed-off-by: Venkata Sandeep Dhanalakota <venkata.s.dhanalakota@intel.com>
> ---
> drivers/gpu/drm/i915/i915_pci.c | 9 ++++++++-
> drivers/gpu/drm/i915/i915_perf.c | 18 ++++++++++++++----
> drivers/gpu/drm/i915/i915_perf.h | 2 ++
> drivers/gpu/drm/i915/i915_perf_types.h | 1 -
> 4 files changed, 24 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
> index bba6b50e6beb..4b33128070da 100644
> --- a/drivers/gpu/drm/i915/i915_pci.c
> +++ b/drivers/gpu/drm/i915/i915_pci.c
> @@ -30,6 +30,7 @@
> #include "display/intel_fbdev.h"
>
> #include "i915_drv.h"
> +#include "i915_perf.h"
> #include "i915_globals.h"
> #include "i915_selftest.h"
>
> @@ -1051,7 +1052,12 @@ static int __init i915_init(void)
> return 0;
> }
>
> - return pci_register_driver(&i915_pci_driver);
> + err = pci_register_driver(&i915_pci_driver);
> + if (err)
> + return err;
> +
> + i915_perf_sysctl_register();
> + return 0;
> }
>
> static void __exit i915_exit(void)
> @@ -1059,6 +1065,7 @@ static void __exit i915_exit(void)
> if (!i915_pci_driver.driver.owner)
> return;
>
> + i915_perf_sysctl_unregister();
> pci_unregister_driver(&i915_pci_driver);
> i915_globals_exit();
> }
> diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
> index 8d2e37949f46..4abd7623ef2d 100644
> --- a/drivers/gpu/drm/i915/i915_perf.c
> +++ b/drivers/gpu/drm/i915/i915_perf.c
> @@ -387,6 +387,8 @@ struct i915_oa_config_bo {
> struct i915_vma *vma;
> };
>
> +static struct ctl_table_header *sysctl_header;
> +
> static enum hrtimer_restart oa_poll_check_timer_cb(struct hrtimer *hrtimer);
>
> void i915_oa_config_release(struct kref *ref)
> @@ -4228,7 +4230,7 @@ static struct ctl_table dev_root[] = {
> };
>
> /**
> - * i915_perf_init - initialize i915-perf state on module load
> + * i915_perf_init - initialize i915-perf state on module bind
> * @i915: i915 device instance
> *
> * Initializes i915-perf state without exposing anything to userspace.
> @@ -4345,7 +4347,6 @@ void i915_perf_init(struct drm_i915_private *i915)
>
> oa_sample_rate_hard_limit = 1000 *
> (RUNTIME_INFO(i915)->cs_timestamp_frequency_khz / 2);
> - perf->sysctl_header = register_sysctl_table(dev_root);
>
> mutex_init(&perf->metrics_lock);
> idr_init(&perf->metrics_idr);
> @@ -4381,6 +4382,17 @@ static int destroy_config(int id, void *p, void *data)
> return 0;
> }
>
> +void i915_perf_sysctl_register(void)
> +{
> + sysctl_header = register_sysctl_table(dev_root);
> +}
> +
> +void i915_perf_sysctl_unregister(void)
> +{
> + if (sysctl_header)
> + unregister_sysctl_table(sysctl_header);
unregister_sysctl_table() is NULL-safe.
Other than that,
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Intel-gfx] [PATCH 1/2] drm/i915/perf: Register sysctl path globally
2019-12-13 16:09 ` Chris Wilson
@ 2019-12-13 17:41 ` Lucas De Marchi
0 siblings, 0 replies; 24+ messages in thread
From: Lucas De Marchi @ 2019-12-13 17:41 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
On Fri, Dec 13, 2019 at 04:09:20PM +0000, Chris Wilson wrote:
>Quoting Venkata Sandeep Dhanalakota (2019-12-13 15:51:51)
>> We do not require to register the sysctl paths per instance,
>> so making registration global.
>>
>> v2: make sysctl path register and unregister function driver
>> specific (Tvrtko and Lucas).
>>
>> Cc: Sudeep Dutt <sudeep.dutt@intel.com>
>> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
>> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
>> Cc: Chris Wilson <chris@chris-wilson.co.uk>
>> Cc: Jani Nikula <jani.nikula@intel.com>
>> Signed-off-by: Venkata Sandeep Dhanalakota <venkata.s.dhanalakota@intel.com>
>> ---
>> drivers/gpu/drm/i915/i915_pci.c | 9 ++++++++-
>> drivers/gpu/drm/i915/i915_perf.c | 18 ++++++++++++++----
>> drivers/gpu/drm/i915/i915_perf.h | 2 ++
>> drivers/gpu/drm/i915/i915_perf_types.h | 1 -
>> 4 files changed, 24 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
>> index bba6b50e6beb..4b33128070da 100644
>> --- a/drivers/gpu/drm/i915/i915_pci.c
>> +++ b/drivers/gpu/drm/i915/i915_pci.c
>> @@ -30,6 +30,7 @@
>> #include "display/intel_fbdev.h"
>>
>> #include "i915_drv.h"
>> +#include "i915_perf.h"
>> #include "i915_globals.h"
>> #include "i915_selftest.h"
>>
>> @@ -1051,7 +1052,12 @@ static int __init i915_init(void)
>> return 0;
>> }
>>
>> - return pci_register_driver(&i915_pci_driver);
>> + err = pci_register_driver(&i915_pci_driver);
>> + if (err)
>> + return err;
>> +
>> + i915_perf_sysctl_register();
>> + return 0;
>> }
>>
>> static void __exit i915_exit(void)
>> @@ -1059,6 +1065,7 @@ static void __exit i915_exit(void)
>> if (!i915_pci_driver.driver.owner)
>> return;
>>
>> + i915_perf_sysctl_unregister();
>> pci_unregister_driver(&i915_pci_driver);
>> i915_globals_exit();
>> }
>> diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
>> index 8d2e37949f46..4abd7623ef2d 100644
>> --- a/drivers/gpu/drm/i915/i915_perf.c
>> +++ b/drivers/gpu/drm/i915/i915_perf.c
>> @@ -387,6 +387,8 @@ struct i915_oa_config_bo {
>> struct i915_vma *vma;
>> };
>>
>> +static struct ctl_table_header *sysctl_header;
>> +
>> static enum hrtimer_restart oa_poll_check_timer_cb(struct hrtimer *hrtimer);
>>
>> void i915_oa_config_release(struct kref *ref)
>> @@ -4228,7 +4230,7 @@ static struct ctl_table dev_root[] = {
>> };
>>
>> /**
>> - * i915_perf_init - initialize i915-perf state on module load
>> + * i915_perf_init - initialize i915-perf state on module bind
>> * @i915: i915 device instance
>> *
>> * Initializes i915-perf state without exposing anything to userspace.
>> @@ -4345,7 +4347,6 @@ void i915_perf_init(struct drm_i915_private *i915)
>>
>> oa_sample_rate_hard_limit = 1000 *
>> (RUNTIME_INFO(i915)->cs_timestamp_frequency_khz / 2);
>> - perf->sysctl_header = register_sysctl_table(dev_root);
>>
>> mutex_init(&perf->metrics_lock);
>> idr_init(&perf->metrics_idr);
>> @@ -4381,6 +4382,17 @@ static int destroy_config(int id, void *p, void *data)
>> return 0;
>> }
>>
>> +void i915_perf_sysctl_register(void)
>> +{
>> + sysctl_header = register_sysctl_table(dev_root);
>> +}
>> +
>> +void i915_perf_sysctl_unregister(void)
>> +{
>> + if (sysctl_header)
>> + unregister_sysctl_table(sysctl_header);
>
>unregister_sysctl_table() is NULL-safe.
I had the same comment.
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Lucas De Marchi
>
>Other than that,
>Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
>-Chris
>_______________________________________________
>Intel-gfx mailing list
>Intel-gfx@lists.freedesktop.org
>https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 24+ messages in thread
* [Intel-gfx] [PATCH 1/2] drm/i915/perf: Register sysctl path globally
@ 2019-12-13 20:02 Venkata Sandeep Dhanalakota
2019-12-16 10:27 ` Jani Nikula
0 siblings, 1 reply; 24+ messages in thread
From: Venkata Sandeep Dhanalakota @ 2019-12-13 20:02 UTC (permalink / raw)
To: intel-gfx; +Cc: chris.p.wilson
We do not require to register the sysctl paths per instance,
so making registration global.
v2: make sysctl path register and unregister function driver
specific (Tvrtko and Lucas).
v3: remove the NULL-check as unregister_sysctl_table is null
safe. (Chris and Lucas)
Cc: Sudeep Dutt <sudeep.dutt@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: Venkata Sandeep Dhanalakota <venkata.s.dhanalakota@intel.com>
---
drivers/gpu/drm/i915/i915_pci.c | 9 ++++++++-
drivers/gpu/drm/i915/i915_perf.c | 17 +++++++++++++----
drivers/gpu/drm/i915/i915_perf.h | 2 ++
drivers/gpu/drm/i915/i915_perf_types.h | 1 -
4 files changed, 23 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
index 877560b1031e..9571611b4b16 100644
--- a/drivers/gpu/drm/i915/i915_pci.c
+++ b/drivers/gpu/drm/i915/i915_pci.c
@@ -30,6 +30,7 @@
#include "display/intel_fbdev.h"
#include "i915_drv.h"
+#include "i915_perf.h"
#include "i915_globals.h"
#include "i915_selftest.h"
@@ -1053,7 +1054,12 @@ static int __init i915_init(void)
return 0;
}
- return pci_register_driver(&i915_pci_driver);
+ err = pci_register_driver(&i915_pci_driver);
+ if (err)
+ return err;
+
+ i915_perf_sysctl_register();
+ return 0;
}
static void __exit i915_exit(void)
@@ -1061,6 +1067,7 @@ static void __exit i915_exit(void)
if (!i915_pci_driver.driver.owner)
return;
+ i915_perf_sysctl_unregister();
pci_unregister_driver(&i915_pci_driver);
i915_globals_exit();
}
diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
index 8d2e37949f46..3c163a9d69a9 100644
--- a/drivers/gpu/drm/i915/i915_perf.c
+++ b/drivers/gpu/drm/i915/i915_perf.c
@@ -387,6 +387,8 @@ struct i915_oa_config_bo {
struct i915_vma *vma;
};
+static struct ctl_table_header *sysctl_header;
+
static enum hrtimer_restart oa_poll_check_timer_cb(struct hrtimer *hrtimer);
void i915_oa_config_release(struct kref *ref)
@@ -4228,7 +4230,7 @@ static struct ctl_table dev_root[] = {
};
/**
- * i915_perf_init - initialize i915-perf state on module load
+ * i915_perf_init - initialize i915-perf state on module bind
* @i915: i915 device instance
*
* Initializes i915-perf state without exposing anything to userspace.
@@ -4345,7 +4347,6 @@ void i915_perf_init(struct drm_i915_private *i915)
oa_sample_rate_hard_limit = 1000 *
(RUNTIME_INFO(i915)->cs_timestamp_frequency_khz / 2);
- perf->sysctl_header = register_sysctl_table(dev_root);
mutex_init(&perf->metrics_lock);
idr_init(&perf->metrics_idr);
@@ -4381,6 +4382,16 @@ static int destroy_config(int id, void *p, void *data)
return 0;
}
+void i915_perf_sysctl_register(void)
+{
+ sysctl_header = register_sysctl_table(dev_root);
+}
+
+void i915_perf_sysctl_unregister(void)
+{
+ unregister_sysctl_table(sysctl_header);
+}
+
/**
* i915_perf_fini - Counter part to i915_perf_init()
* @i915: i915 device instance
@@ -4395,8 +4406,6 @@ void i915_perf_fini(struct drm_i915_private *i915)
idr_for_each(&perf->metrics_idr, destroy_config, perf);
idr_destroy(&perf->metrics_idr);
- unregister_sysctl_table(perf->sysctl_header);
-
memset(&perf->ops, 0, sizeof(perf->ops));
perf->i915 = NULL;
}
diff --git a/drivers/gpu/drm/i915/i915_perf.h b/drivers/gpu/drm/i915/i915_perf.h
index 4ceebce72060..882fdd0a7680 100644
--- a/drivers/gpu/drm/i915/i915_perf.h
+++ b/drivers/gpu/drm/i915/i915_perf.h
@@ -23,6 +23,8 @@ void i915_perf_fini(struct drm_i915_private *i915);
void i915_perf_register(struct drm_i915_private *i915);
void i915_perf_unregister(struct drm_i915_private *i915);
int i915_perf_ioctl_version(void);
+void i915_perf_sysctl_register(void);
+void i915_perf_sysctl_unregister(void);
int i915_perf_open_ioctl(struct drm_device *dev, void *data,
struct drm_file *file);
diff --git a/drivers/gpu/drm/i915/i915_perf_types.h b/drivers/gpu/drm/i915/i915_perf_types.h
index 74ddc20a0d37..45e581455f5d 100644
--- a/drivers/gpu/drm/i915/i915_perf_types.h
+++ b/drivers/gpu/drm/i915/i915_perf_types.h
@@ -380,7 +380,6 @@ struct i915_perf {
struct drm_i915_private *i915;
struct kobject *metrics_kobj;
- struct ctl_table_header *sysctl_header;
/*
* Lock associated with adding/modifying/removing OA configs
--
2.21.0.5.gaeb582a983
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [Intel-gfx] [PATCH 1/2] drm/i915/perf: Register sysctl path globally
2019-12-13 20:02 Venkata Sandeep Dhanalakota
@ 2019-12-16 10:27 ` Jani Nikula
2019-12-16 11:23 ` Chris Wilson
0 siblings, 1 reply; 24+ messages in thread
From: Jani Nikula @ 2019-12-16 10:27 UTC (permalink / raw)
To: Venkata Sandeep Dhanalakota, intel-gfx; +Cc: chris.p.wilson
On Fri, 13 Dec 2019, Venkata Sandeep Dhanalakota <venkata.s.dhanalakota@intel.com> wrote:
> We do not require to register the sysctl paths per instance,
> so making registration global.
>
> v2: make sysctl path register and unregister function driver
> specific (Tvrtko and Lucas).
>
> v3: remove the NULL-check as unregister_sysctl_table is null
> safe. (Chris and Lucas)
>
> Cc: Sudeep Dutt <sudeep.dutt@intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
> Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
> Signed-off-by: Venkata Sandeep Dhanalakota <venkata.s.dhanalakota@intel.com>
Chris, I understand that *some* version of this passed IGT, and that the
patch series was re-sent rather too many times over a short period of
time, but please only push versions that actually pass CI.
BR,
Jani.
> ---
> drivers/gpu/drm/i915/i915_pci.c | 9 ++++++++-
> drivers/gpu/drm/i915/i915_perf.c | 17 +++++++++++++----
> drivers/gpu/drm/i915/i915_perf.h | 2 ++
> drivers/gpu/drm/i915/i915_perf_types.h | 1 -
> 4 files changed, 23 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
> index 877560b1031e..9571611b4b16 100644
> --- a/drivers/gpu/drm/i915/i915_pci.c
> +++ b/drivers/gpu/drm/i915/i915_pci.c
> @@ -30,6 +30,7 @@
> #include "display/intel_fbdev.h"
>
> #include "i915_drv.h"
> +#include "i915_perf.h"
> #include "i915_globals.h"
> #include "i915_selftest.h"
>
> @@ -1053,7 +1054,12 @@ static int __init i915_init(void)
> return 0;
> }
>
> - return pci_register_driver(&i915_pci_driver);
> + err = pci_register_driver(&i915_pci_driver);
> + if (err)
> + return err;
> +
> + i915_perf_sysctl_register();
> + return 0;
> }
>
> static void __exit i915_exit(void)
> @@ -1061,6 +1067,7 @@ static void __exit i915_exit(void)
> if (!i915_pci_driver.driver.owner)
> return;
>
> + i915_perf_sysctl_unregister();
> pci_unregister_driver(&i915_pci_driver);
> i915_globals_exit();
> }
> diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
> index 8d2e37949f46..3c163a9d69a9 100644
> --- a/drivers/gpu/drm/i915/i915_perf.c
> +++ b/drivers/gpu/drm/i915/i915_perf.c
> @@ -387,6 +387,8 @@ struct i915_oa_config_bo {
> struct i915_vma *vma;
> };
>
> +static struct ctl_table_header *sysctl_header;
> +
> static enum hrtimer_restart oa_poll_check_timer_cb(struct hrtimer *hrtimer);
>
> void i915_oa_config_release(struct kref *ref)
> @@ -4228,7 +4230,7 @@ static struct ctl_table dev_root[] = {
> };
>
> /**
> - * i915_perf_init - initialize i915-perf state on module load
> + * i915_perf_init - initialize i915-perf state on module bind
> * @i915: i915 device instance
> *
> * Initializes i915-perf state without exposing anything to userspace.
> @@ -4345,7 +4347,6 @@ void i915_perf_init(struct drm_i915_private *i915)
>
> oa_sample_rate_hard_limit = 1000 *
> (RUNTIME_INFO(i915)->cs_timestamp_frequency_khz / 2);
> - perf->sysctl_header = register_sysctl_table(dev_root);
>
> mutex_init(&perf->metrics_lock);
> idr_init(&perf->metrics_idr);
> @@ -4381,6 +4382,16 @@ static int destroy_config(int id, void *p, void *data)
> return 0;
> }
>
> +void i915_perf_sysctl_register(void)
> +{
> + sysctl_header = register_sysctl_table(dev_root);
> +}
> +
> +void i915_perf_sysctl_unregister(void)
> +{
> + unregister_sysctl_table(sysctl_header);
> +}
> +
> /**
> * i915_perf_fini - Counter part to i915_perf_init()
> * @i915: i915 device instance
> @@ -4395,8 +4406,6 @@ void i915_perf_fini(struct drm_i915_private *i915)
> idr_for_each(&perf->metrics_idr, destroy_config, perf);
> idr_destroy(&perf->metrics_idr);
>
> - unregister_sysctl_table(perf->sysctl_header);
> -
> memset(&perf->ops, 0, sizeof(perf->ops));
> perf->i915 = NULL;
> }
> diff --git a/drivers/gpu/drm/i915/i915_perf.h b/drivers/gpu/drm/i915/i915_perf.h
> index 4ceebce72060..882fdd0a7680 100644
> --- a/drivers/gpu/drm/i915/i915_perf.h
> +++ b/drivers/gpu/drm/i915/i915_perf.h
> @@ -23,6 +23,8 @@ void i915_perf_fini(struct drm_i915_private *i915);
> void i915_perf_register(struct drm_i915_private *i915);
> void i915_perf_unregister(struct drm_i915_private *i915);
> int i915_perf_ioctl_version(void);
> +void i915_perf_sysctl_register(void);
> +void i915_perf_sysctl_unregister(void);
>
> int i915_perf_open_ioctl(struct drm_device *dev, void *data,
> struct drm_file *file);
> diff --git a/drivers/gpu/drm/i915/i915_perf_types.h b/drivers/gpu/drm/i915/i915_perf_types.h
> index 74ddc20a0d37..45e581455f5d 100644
> --- a/drivers/gpu/drm/i915/i915_perf_types.h
> +++ b/drivers/gpu/drm/i915/i915_perf_types.h
> @@ -380,7 +380,6 @@ struct i915_perf {
> struct drm_i915_private *i915;
>
> struct kobject *metrics_kobj;
> - struct ctl_table_header *sysctl_header;
>
> /*
> * Lock associated with adding/modifying/removing OA configs
--
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Intel-gfx] [PATCH 1/2] drm/i915/perf: Register sysctl path globally
2019-12-16 10:27 ` Jani Nikula
@ 2019-12-16 11:23 ` Chris Wilson
0 siblings, 0 replies; 24+ messages in thread
From: Chris Wilson @ 2019-12-16 11:23 UTC (permalink / raw)
To: Jani Nikula, Venkata Sandeep Dhanalakota, intel-gfx
Quoting Jani Nikula (2019-12-16 10:27:59)
> On Fri, 13 Dec 2019, Venkata Sandeep Dhanalakota <venkata.s.dhanalakota@intel.com> wrote:
> > We do not require to register the sysctl paths per instance,
> > so making registration global.
> >
> > v2: make sysctl path register and unregister function driver
> > specific (Tvrtko and Lucas).
> >
> > v3: remove the NULL-check as unregister_sysctl_table is null
> > safe. (Chris and Lucas)
> >
> > Cc: Sudeep Dutt <sudeep.dutt@intel.com>
> > Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> > Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> > Cc: Chris Wilson <chris@chris-wilson.co.uk>
> > Cc: Jani Nikula <jani.nikula@intel.com>
> > Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
> > Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
> > Signed-off-by: Venkata Sandeep Dhanalakota <venkata.s.dhanalakota@intel.com>
>
> Chris, I understand that *some* version of this passed IGT, and that the
> patch series was re-sent rather too many times over a short period of
> time, but please only push versions that actually pass CI.
CI Bug Log - changes from CI_DRM_7556_full -> Patchwork_15738_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_15738_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_15738_full, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_15738_full:
### IGT changes ###
#### Possible regressions ####
* igt@gem_ctx_persistence@bcs0-mixed-process:
- shard-iclb: [PASS][1] -> [FAIL][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7556/shard-iclb1/igt@gem_ctx_persistence@bcs0-mixed-process.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15738/shard-iclb3/igt@gem_ctx_persistence@bcs0-mixed-process.html
Which is just a known timing issue.
Is the version I was looking at.
-Chris
---------------------------------------------------------------------
Intel Corporation (UK) Limited
Registered No. 1134945 (England)
Registered Office: Pipers Way, Swindon SN3 1RJ
VAT No: 860 2173 47
This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 24+ messages in thread
end of thread, other threads:[~2019-12-16 11:23 UTC | newest]
Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-11 16:07 [Intel-gfx] [PATCH 1/2] drm/i915/perf: Register sysctl path globally Venkata Sandeep Dhanalakota
2019-12-11 16:07 ` [Intel-gfx] [PATCH 2/2] drm/i915: Make warned variable private Venkata Sandeep Dhanalakota
2019-12-11 16:17 ` Chris Wilson
2019-12-11 16:19 ` Chris Wilson
2019-12-11 22:20 ` Lucas De Marchi
2019-12-11 22:22 ` Chris Wilson
2019-12-11 16:13 ` [Intel-gfx] [PATCH 1/2] drm/i915/perf: Register sysctl path globally Lionel Landwerlin
2019-12-11 16:31 ` Tvrtko Ursulin
2019-12-11 16:39 ` Tvrtko Ursulin
2019-12-11 17:13 ` Venkata Sandeep Dhanalakota
2019-12-11 17:25 ` Tvrtko Ursulin
2019-12-11 22:14 ` Lucas De Marchi
2019-12-11 22:48 ` [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/2] " Patchwork
2019-12-12 9:08 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
2019-12-12 7:35 [Intel-gfx] [PATCH 1/2] " Venkata Sandeep Dhanalakota
2019-12-12 21:34 ` Lucas De Marchi
2019-12-13 5:07 ` Venkata Sandeep Dhanalakota
2019-12-13 9:12 Venkata Sandeep Dhanalakota
2019-12-13 15:51 Venkata Sandeep Dhanalakota
2019-12-13 16:09 ` Chris Wilson
2019-12-13 17:41 ` Lucas De Marchi
2019-12-13 20:02 Venkata Sandeep Dhanalakota
2019-12-16 10:27 ` Jani Nikula
2019-12-16 11:23 ` 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.