tpm_tis: Detect interrupt storms
Subsystems (5)
v3 cover tpm_tis: Detect interrupt storms
This patchset is an attempt to try and catch tpm_tis devices that have interrupt storm issues, disable the interrupt, and use polling. In 2016 the tpm_tis interrupt code was accidently disabled, and polling was just being used. When we initially tried to enable interrupts again there were some reports of systems being hit with interrupt storms. It turned out that the ThinkPad T490s had misconfigured a gpio pin being used for the interrupt. The problem is more widespread though, with interrupt storms also being seen on other platforms and different TPM vendors. With the L490 the system hangs at tpm_tis initialization even with the detection code, so change the earlier detection code that used dmi to look for the T490s to instead look for the L490 and disable interrupts.
Since kstat_irqs needs to be exported to allow building of tpm_tis as a module, I've included a patch to change the i915_pmu code to use kstat_irqs where before it was using its own version. If this isn't desired it can be dropped.
I've been testing this on top of James' proposed patchset which re-enables interrupts for tpm_tis. With the patchsets applied it detects the problem on the T490s and on the Ice Lake development system where I found the issue. I have Lenovo verifying that the dmi detection code will now detect the L490 and avoid the hang it experiences. I'm also working on getting access to an L490 to see if I can figure out what the underlying issue is.
Changes from v2:
- Export kstat_irqs to allow building tpm_tis as a module.
- Change i915_pmu.c to use kstat_irqs instead of it's own version count_interrupts.
- Change include from linux/kernel_stat.h to linux/irq.h.
- Change dmi checking code to now look for L490 instead of T490s.
Changes from v1:
- drop tpm_tis specific workqueue and use just system_w.
Jerry Snitselaar (4):
irq: export kstat_irqs
drm/i915/pmu: Use kstat_irqs to get interrupt count
tpm_tis: Disable interrupts if interrupt storm detected
tpm_tis: Disable Interrupts on the ThinkPad L490
drivers/char/tpm/tpm_tis.c | 4 ++-- drivers/char/tpm/tpm_tis_core.c | 27 +++++++++++++++++++++++++++ drivers/char/tpm/tpm_tis_core.h | 2 ++ drivers/gpu/drm/i915/i915_pmu.c | 18 +----------------- include/linux/irqdesc.h | 1 + kernel/irq/irqdesc.c | 1 + 6 files changed, 34 insertions(+), 19 deletions(-)
Signature · 6 lines
2.27.0 _______________________________________________ Intel-gfx mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/intel-gfx
PATCH v3 1/4 irq: export kstat_irqs
To try and detect potential interrupt storms that have been occurring with tpm_tis devices it was suggested to use kstat_irqs() to get the number of interrupts. Since tpm_tis can be built as a module it needs kstat_irqs exported.
--- include/linux/irqdesc.h | 1 + kernel/irq/irqdesc.c | 1 + 2 files changed, 2 insertions(+)
include/linux/irqdesc.h +1 -0
@@ -153,6 +153,7 @@ static inline void generic_handle_irq_desc(struct irq_desc *desc) }int generic_handle_irq (unsigned int irq); +unsigned int kstat_irqs (unsigned int irq);#ifdef CONFIG_HANDLE_DOMAIN_IRQ /*
kernel/irq/irqdesc.c +1 -0
@@ -1000,6 +1000,7 @@ unsigned int kstat_irqs(unsigned int irq) sum += *per_cpu_ptr (desc->kstat_irqs, cpu);return sum; } +EXPORT_SYMBOL_GPL (kstat_irqs);/** * kstat_irqs_usr - Get the statistics for an interrupt
Signature · 6 lines
2.27.0 _______________________________________________ Intel-gfx mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Jarkko Sakkinen
maintainerRe: [PATCH v3 1/4] irq: export kstat_irqs
Quoted 5 lines · Jerry Snitselaar
To try and detect potential interrupt storms that have been occurring with
tpm_tisdevices it was suggested to usekstat_irqs()to get the number of interrupts. Sincetpm_tiscan be built as a module it needskstat_irqsexported.
I think you should also have a paragraph explicitly stating that i915_pmu.c contains a duplicate of kstat_irqs() because it is not exported as of today. It adds a lot more weight to this given that there is already existing mainline usage (kind of).
Quoted 2 lines
Reported-by kernel test robot <[email protected]>
I'm not sure if this makes much sense.
Quoted 8 lines
Cc Thomas Gleixner <[email protected]>Cc Jarkko Sakkinen <[email protected]>Cc Jason Gunthorpe <[email protected]>Cc Peter Huewe <[email protected]>Cc James Bottomley <[email protected]>Cc Matthew Garrett <[email protected]>Cc Hans de Goede <[email protected]>Signed-off-by Jerry Snitselaar <[email protected]>
/Jarkko
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v3 1/4] irq: export kstat_irqs
Quoted 11 lines · Jarkko Sakkinen
Quoted 5 lines · Jerry Snitselaar
To try and detect potential interrupt storms that have been occurring with
tpm_tisdevices it was suggested to usekstat_irqs()to get the number of interrupts. Sincetpm_tiscan be built as a module it needskstat_irqsexported.I think you should also have a paragraph explicitly stating that
i915_pmu.ccontains a duplicate ofkstat_irqs()because it is not exported as of today. It adds a lot more weight to this given that there is already existing mainline usage (kind of).
It's abusage and just the fact that it exists is not an argument by itself.
Thanks,
tglx
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
James Bottomley
maintainerRe: [PATCH v3 1/4] irq: export kstat_irqs
Quoted 8 lines · Thomas Gleixner
Quoted 7 lines · Jarkko Sakkinen
Quoted 5 lines · Jerry Snitselaar
To try and detect potential interrupt storms that have been occurring with
tpm_tisdevices it was suggested to usekstat_irqs()to get the number of interrupts. Sincetpm_tiscan be built as a module it needskstat_irqsexported.
Quoted 7 lines
Quoted 4 lines
I think you should also have a paragraph explicitly stating that
i915_pmu.ccontains a duplicate ofkstat_irqs()because it is not exported as of today. It adds a lot more weight to this given that there is already existing mainline usage (kind of).It's abusage and just the fact that it exists is not an argument by itself.
What we want is a count of the interrupts to see if we're having an interrupt storm from the TPM device (some seem to be wired to fire the interrupt even when there's no event to warrant it). Since kstat_irqs_user() does the correct RCU locking, should we be using that instead?
James
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [PATCH v3 1/4] irq: export kstat_irqs
Quoted 14 lines · James Bottomley
Quoted 13 lines · Thomas Gleixner
Quoted 11 lines · Jarkko Sakkinen
Quoted 5 lines · Jerry Snitselaar
To try and detect potential interrupt storms that have been occurring with
tpm_tisdevices it was suggested to usekstat_irqs()to get the number of interrupts. Sincetpm_tiscan be built as a module it needskstat_irqsexported.I think you should also have a paragraph explicitly stating that
i915_pmu.ccontains a duplicate ofkstat_irqs()because it is not exported as of today. It adds a lot more weight to this given that there is already existing mainline usage (kind of).
Quoted 8 lines
Quoted 2 lines
It's abusage and just the fact that it exists is not an argument by itself.
What we want is a count of the interrupts to see if we're having an interrupt storm from the TPM device (some seem to be wired to fire the interrupt even when there's no event to warrant it). Since
kstat_irqs_user()does the correct RCU locking, should we be using that instead?
If we need to export it, yes. But I still have to understand the value. See my other reply.
Thanks,
tglx
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [PATCH v3 1/4] irq: export kstat_irqs
In reply to Jerry SnitselaarJerry,
On Fri, Dec 04 2020 at 18:43, Jerry Snitselaar wrote:
The proper prefix is 'genirq:' git log kernel/irq/irqdesc.c would have told you.
Quoted 5 lines
To try and detect potential interrupt storms that have been occurring with
tpm_tisdevices it was suggested to usekstat_irqs()to get the number of interrupts. Sincetpm_tiscan be built as a module it needskstat_irqsexported.
I'm not really enthused about exporting this without making it at least safe. Using it from an interrupt handler is obviously safe vs. concurrent removal, but the next driver writer who thinks this is cool is going to get it wrong for sure.
Though I still have to figure out what the advantage of invoking a function which needs to do a radix tree lookup over a device local counter is just to keep track of this.
I'll reply on the TPM part of this as well.
Thanks,
tglx
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [PATCH v3 1/4] irq: export kstat_irqs
Thomas Gleixner @ 2020-12-06 10:54 MST:
Quoted 22 lines
Jerry,
On Fri, Dec 04 2020 at 18:43, Jerry Snitselaar wrote:
The proper prefix is 'genirq:' git log
kernel/irq/irqdesc.cwould have told you.Quoted 5 lines
To try and detect potential interrupt storms that have been occurring with
tpm_tisdevices it was suggested to usekstat_irqs()to get the number of interrupts. Sincetpm_tiscan be built as a module it needskstat_irqsexported.I'm not really enthused about exporting this without making it at least safe. Using it from an interrupt handler is obviously safe vs. concurrent removal, but the next driver writer who thinks this is cool is going to get it wrong for sure.
Though I still have to figure out what the advantage of invoking a function which needs to do a radix tree lookup over a device local counter is just to keep track of this.
Quoted 5 lines
I'll reply on the TPM part of this as well.
Thanks,
tglx
I can rework it to use a device local counter.
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel
PATCH v3 2/4 drm/i915/pmu: Use kstat_irqs to get interrupt count
In reply to Jerry SnitselaarNow that kstat_irqs is exported, get rid of count_interrupts in i915_pmu.c
--- drivers/gpu/drm/i915/i915_pmu.c | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-)
drivers/gpu/drm/i915/i915_pmu.c +1 -17
@@ -423,22 +423,6 @@ static enum hrtimer_restart i915_sample(struct hrtimer *hrtimer)return HRTIMER_RESTART ; } -static u64 count_interrupts (struct drm_i915_private *i915) -{ -/* open-coded kstat_irqs() */ -struct irq_desc *desc =irq_to_desc (i915->drm.pdev->irq); -u64 sum =0 ; -int cpu; - -if (!desc || !desc->kstat_irqs) -return 0 ; - -for_each_possible_cpu (cpu) - sum += *per_cpu_ptr (desc->kstat_irqs, cpu); - -return sum; -} -static void i915_pmu_event_destroy (struct perf_event *event) { struct drm_i915_private *i915 =
@@ -581,7 +565,7 @@ static u64 __i915_pmu_event_read(struct perf_event *event) USEC_PER_SEC /* to MHz */);break ;case I915_PMU_INTERRUPTS : - val =count_interrupts (i915); + val =kstat_irqs (i915->drm.pdev->irq);break ;case I915_PMU_RC6_RESIDENCY : val =get_rc6 (&i915->gt);
Signature · 6 lines
2.27.0 _______________________________________________ dri-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v3 2/4] drm/i915/pmu: Use kstat_irqs to get interrupt count
Quoted 13 lines · Jerry Snitselaar
Now that
kstat_irqsis exported, get rid ofcount_interruptsini915_pmu.cdrivers/gpu/drm/i915/i915_pmu.c +0
-5@@ -423,22 +423,6 @@ static enum hrtimer_restart i915_sample(struct hrtimer *hrtimer)return HRTIMER_RESTART ; } -static u64 count_interrupts (struct drm_i915_private *i915) -{ -/* open-coded kstat_irqs() */ -struct irq_desc *desc =irq_to_desc (i915->drm.pdev->irq); -u64 sum =0 ;
drivers/gpu/drm/i915/i915_pmu.c static enum hrtimer_restart i915_sample(struct hrtimer *hrtimer) · line 440
Quoted 10 lines
drivers/gpu/drm/i915/i915_pmu.c +0
-10-int cpu; - -if (!desc || !desc->kstat_irqs) -return 0 ; - -for_each_possible_cpu (cpu) - sum += *per_cpu_ptr (desc->kstat_irqs, cpu); - -return sum; -}
May I ask why this has been merged in the first place?
Nothing in a driver has ever to fiddle with the internals of an irq descriptor. We have functions for properly accessing them. Just because C allows to fiddle with everything is not a justification. If the required function is not exported then adding the export with a proper explanation is not asked too much.
Also this lacks protection or at least a comment why this can be called safely and is not subject to a concurrent removal of the irq descriptor. The same problem exists when calling kstat_irqs(). It's even documented at the top of the function.
Thanks,
tglx
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [PATCH v3 2/4] drm/i915/pmu: Use kstat_irqs to get interrupt count
Quoted 12 lines · Thomas Gleixner
Quoted 2 lines · Jerry Snitselaar
Now that
kstat_irqsis exported, get rid ofcount_interruptsini915_pmu.cMay I ask why this has been merged in the first place?
Nothing in a driver has ever to fiddle with the internals of an irq descriptor. We have functions for properly accessing them. Just because C allows to fiddle with everything is not a justification. If the required function is not exported then adding the export with a proper explanation is not asked too much.
Quoted 4 lines
Also this lacks protection or at least a comment why this can be called safely and is not subject to a concurrent removal of the irq descriptor. The same problem exists when calling
kstat_irqs(). It's even documented at the top of the function.
And as pointed out vs. that TPM thing this really could have been a trivial
i915->irqs++;
in the interrupt handler and a read of that instead of iterating over all possible cpus and summing it up. Oh well...
Thanks,
tglx
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Jarkko Sakkinen
maintainerRe: [PATCH v3 2/4] drm/i915/pmu: Use kstat_irqs to get interrupt count
Quoted 18 lines · Thomas Gleixner
Quoted 12 lines · Thomas Gleixner
Quoted 2 lines · Jerry Snitselaar
Now that
kstat_irqsis exported, get rid ofcount_interruptsini915_pmu.cMay I ask why this has been merged in the first place?
Nothing in a driver has ever to fiddle with the internals of an irq descriptor. We have functions for properly accessing them. Just because C allows to fiddle with everything is not a justification. If the required function is not exported then adding the export with a proper explanation is not asked too much.
Quoted 4 lines
Also this lacks protection or at least a comment why this can be called safely and is not subject to a concurrent removal of the irq descriptor. The same problem exists when calling
kstat_irqs(). It's even documented at the top of the function.
Quoted 7 lines
And as pointed out vs. that TPM thing this really could have been a trivial
i915->irqs++;in the interrupt handler and a read of that instead of iterating over all possible cpus and summing it up. Oh well...
I'm fine with that.
Quoted 3 lines
Thanks,
tglx
/Jarkko
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v3 2/4] drm/i915/pmu: Use kstat_irqs to get interrupt count
In reply to Thomas GleixnerThomas Gleixner @ 2020-12-06 09:38 MST:
Quoted 34 lines · Jerry Snitselaar
Quoted 14 lines
Now that
kstat_irqsis exported, get rid ofcount_interruptsini915_pmu.cdrivers/gpu/drm/i915/i915_pmu.c +0
-5@@ -423,22 +423,6 @@ static enum hrtimer_restart i915_sample(struct hrtimer *hrtimer)return HRTIMER_RESTART ; } -static u64 count_interrupts (struct drm_i915_private *i915) -{ -/* open-coded kstat_irqs() */ -struct irq_desc *desc =irq_to_desc (i915->drm.pdev->irq); -u64 sum =0 ;drivers/gpu/drm/i915/i915_pmu.c static enum hrtimer_restart i915_sample(struct hrtimer *hrtimer) · line 440
Quoted 10 lines
drivers/gpu/drm/i915/i915_pmu.c +0
-10-int cpu; - -if (!desc || !desc->kstat_irqs) -return 0 ; - -for_each_possible_cpu (cpu) - sum += *per_cpu_ptr (desc->kstat_irqs, cpu); - -return sum; -}May I ask why this has been merged in the first place?
Nothing in a driver has ever to fiddle with the internals of an irq descriptor. We have functions for properly accessing them. Just because C allows to fiddle with everything is not a justification. If the required function is not exported then adding the export with a proper explanation is not asked too much.
Quoted 8 lines
Also this lacks protection or at least a comment why this can be called safely and is not subject to a concurrent removal of the irq descriptor. The same problem exists when calling
kstat_irqs(). It's even documented at the top of the function.Thanks,
tglx
I don't know the history behind this bit. I stumbled across it in cscope when looking for places using kstat_irqs.
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [PATCH v3 2/4] drm/i915/pmu: Use kstat_irqs to get interrupt count
Quoted 4 lines · Jerry Snitselaar
Thomas Gleixner @ 2020-12-06 09:38 MST:
I don't know the history behind this bit. I stumbled across it in cscope when looking for places using
kstat_irqs.
I'm not ranting at you. The i915 people are on Cc.
_______________________________________________
Intel-gfx mailing list [email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Joonas Lahtinen
maintainerRe: [Intel-gfx] [PATCH v3 2/4] drm/i915/pmu: Use kstat_irqs to get interrupt count
In reply to Thomas Gleixner+ Tvrtko and Chris for comments
Code seems to be added in:
commit 0cd4684d6ea9a4ffec33fc19de4dd667bb90d0a5
Author: Tvrtko Ursulin <[email protected]> Date: Tue Nov 21 18:18:50 2017 +0000
drm/i915/pmu: Add interrupt count metric
I think later in the thread there was a suggestion to replace this with simple counter increment in IRQ handler.
Regards, Joonas
Quoting Thomas Gleixner (2020-12-06 18:38:44)
Quoted 41 lines · Jerry Snitselaar
Quoted 14 lines
Now that
kstat_irqsis exported, get rid ofcount_interruptsini915_pmu.cdrivers/gpu/drm/i915/i915_pmu.c +0
-5@@ -423,22 +423,6 @@ static enum hrtimer_restart i915_sample(struct hrtimer *hrtimer)return HRTIMER_RESTART ; } -static u64 count_interrupts (struct drm_i915_private *i915) -{ -/* open-coded kstat_irqs() */ -struct irq_desc *desc =irq_to_desc (i915->drm.pdev->irq); -u64 sum =0 ;drivers/gpu/drm/i915/i915_pmu.c static enum hrtimer_restart i915_sample(struct hrtimer *hrtimer) · line 440
Quoted 10 lines
drivers/gpu/drm/i915/i915_pmu.c +0
-10-int cpu; - -if (!desc || !desc->kstat_irqs) -return 0 ; - -for_each_possible_cpu (cpu) - sum += *per_cpu_ptr (desc->kstat_irqs, cpu); - -return sum; -}May I ask why this has been merged in the first place?
Nothing in a driver has ever to fiddle with the internals of an irq descriptor. We have functions for properly accessing them. Just because C allows to fiddle with everything is not a justification. If the required function is not exported then adding the export with a proper explanation is not asked too much.
Also this lacks protection or at least a comment why this can be called safely and is not subject to a concurrent removal of the irq descriptor. The same problem exists when calling
kstat_irqs(). It's even documented at the top of the function.Thanks,
Quoted 7 lines
tglx
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH v3 2/4] drm/i915/pmu: Use kstat_irqs to get interrupt count
Quoted 4 lines · Joonas Lahtinen
+ Tvrtko and Chris for comments
Code seems to be added in:
Quoted 8 lines
commit
0cd4684d6ea9a4ffec33fc19de4dd667bb90d0a5Author: Tvrtko Ursulin <[email protected]> Date: Tue Nov 21 18:18:50 2017 +0000drm/i915/pmu: Add interrupt count metric
I think later in the thread there was a suggestion to replace this with simple counter increment in IRQ handler.
It was indeed unsafe until recent b00bccb3f0bb ("drm/i915/pmu: Handle PCI unbind") but now should be fine.
If kstat_irqs does not get exported it is easy enough for i915 to keep a local counter. Reasoning was very infrequent per cpu summation is much cheaper than very frequent atomic add. Up to thousands of interrupts per second vs "once per second" PMU read kind of thing.
Regards,
Tvrtko
Quoted 45 lines
Quoting Thomas Gleixner (2020-12-06 18:38:44)
Quoted 44 lines · Jerry Snitselaar
Quoted 14 lines
Now that
kstat_irqsis exported, get rid ofcount_interruptsini915_pmu.cdrivers/gpu/drm/i915/i915_pmu.c +0
-5@@ -423,22 +423,6 @@ static enum hrtimer_restart i915_sample(struct hrtimer *hrtimer)return HRTIMER_RESTART ; } -static u64 count_interrupts (struct drm_i915_private *i915) -{ -/* open-coded kstat_irqs() */ -struct irq_desc *desc =irq_to_desc (i915->drm.pdev->irq); -u64 sum =0 ;drivers/gpu/drm/i915/i915_pmu.c static enum hrtimer_restart i915_sample(struct hrtimer *hrtimer) · line 440
Quoted 10 lines
drivers/gpu/drm/i915/i915_pmu.c +0
-10-int cpu; - -if (!desc || !desc->kstat_irqs) -return 0 ; - -for_each_possible_cpu (cpu) - sum += *per_cpu_ptr (desc->kstat_irqs, cpu); - -return sum; -}May I ask why this has been merged in the first place?
Nothing in a driver has ever to fiddle with the internals of an irq descriptor. We have functions for properly accessing them. Just because C allows to fiddle with everything is not a justification. If the required function is not exported then adding the export with a proper explanation is not asked too much.
Also this lacks protection or at least a comment why this can be called safely and is not subject to a concurrent removal of the irq descriptor. The same problem exists when calling
kstat_irqs(). It's even documented at the top of the function.Thanks,
tglx
Quoted 9 lines
Quoted 4 lines
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [Intel-gfx] [PATCH v3 2/4] drm/i915/pmu: Use kstat_irqs to get interrupt count
Quoted 11 lines · Tvrtko Ursulin
Quoted 2 lines · Joonas Lahtinen
I think later in the thread there was a suggestion to replace this with simple counter increment in IRQ handler.
It was indeed unsafe until recent
b00bccb3f0bb("drm/i915/pmu: Handle PCI unbind") but now should be fine.If
kstat_irqsdoes not get exported it is easy enough for i915 to keep a local counter. Reasoning was very infrequent per cpu summation is much cheaper than very frequent atomic add. Up to thousands of interrupts per second vs "once per second" PMU read kind of thing.
Why do you need a atomic_add? It's ONE interrupt which can only be executed on ONE CPU at a time. Interrupt handlers are non-reentrant.
The core code function will just return an accumulated counter nowadays which is only 32bit wide, which is what the interface provided forever. That needs to be fixed first.
Aside of that the accounting is wrong when the interrupt line is shared because the core accounts interrupt per line not per device sharing the line. Don't know whether you care or not.
I'll send out a series addressing irq_to_desc() (ab)use all over the place shortly. i915 is in there...
Thanks,
tglx
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH v3 2/4] drm/i915/pmu: Use kstat_irqs to get interrupt count
Quoted 20 lines · Thomas Gleixner
Quoted 11 lines · Tvrtko Ursulin
Quoted 2 lines · Joonas Lahtinen
I think later in the thread there was a suggestion to replace this with simple counter increment in IRQ handler.
It was indeed unsafe until recent
b00bccb3f0bb("drm/i915/pmu: Handle PCI unbind") but now should be fine.If
kstat_irqsdoes not get exported it is easy enough for i915 to keep a local counter. Reasoning was very infrequent per cpu summation is much cheaper than very frequent atomic add. Up to thousands of interrupts per second vs "once per second" PMU read kind of thing.Why do you need a
atomic_add? It's ONE interrupt which can only be executed on ONE CPU at a time. Interrupt handlers are non-reentrant.The core code function will just return an accumulated counter nowadays which is only 32bit wide, which is what the interface provided forever. That needs to be fixed first.
Quoted 6 lines
Aside of that the accounting is wrong when the interrupt line is shared because the core accounts interrupt per line not per device sharing the line. Don't know whether you care or not.
I'll send out a series addressing
irq_to_desc()(ab)use all over the place shortly. i915 is in there...
Yep we don't need atomic, my bad. And we would care about the shared interrupt line. And without atomic the extra accounting falls way below noise.
So in the light of it all, it sounds best I just quickly replace our abuse with private counting and then you don't have to deal with it in your series.
Regards,
Tvrtko
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH v3 2/4] drm/i915/pmu: Use kstat_irqs to get interrupt count
Quoted 7 lines · Tvrtko Ursulin
Quoted 2 lines · Thomas Gleixner
I'll send out a series addressing
irq_to_desc()(ab)use all over the place shortly. i915 is in there...Yep we don't need atomic, my bad. And we would care about the shared interrupt line. And without atomic the extra accounting falls way below noise.
You have to be careful though. If you make the accumulated counter 64 bit wide then you need to be careful vs. 32bit machines.
Quoted 3 lines
So in the light of it all, it sounds best I just quickly replace our abuse with private counting and then you don't have to deal with it in your series.
I mostly have it. Still chewing on the 32bit vs. 64bit thing. And keeping it in my series allows me to remove the export of irq_to_desc() at the end without waiting for your tree to be merged.
Give me a few.
Thanks,
tglx
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH v3 2/4] drm/i915/pmu: Use kstat_irqs to get interrupt count
Quoted 11 lines · Thomas Gleixner
Quoted 7 lines · Tvrtko Ursulin
Quoted 2 lines · Thomas Gleixner
I'll send out a series addressing
irq_to_desc()(ab)use all over the place shortly. i915 is in there...Yep we don't need atomic, my bad. And we would care about the shared interrupt line. And without atomic the extra accounting falls way below noise.
You have to be careful though. If you make the accumulated counter 64 bit wide then you need to be careful vs. 32bit machines.
Yep, thanks, I am bad jumping from one thing to another. Forgot about the read side atomicity completely..
Quoted 9 lines
Quoted 3 lines
So in the light of it all, it sounds best I just quickly replace our abuse with private counting and then you don't have to deal with it in your series.
I mostly have it. Still chewing on the 32bit vs. 64bit thing. And keeping it in my series allows me to remove the export of
irq_to_desc()at the end without waiting for your tree to be merged.Give me a few.
Ok.
Regards,
Tvrtko
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel
PATCH v3 3/4 tpm_tis: Disable interrupts if interrupt storm detected
In reply to Jerry SnitselaarWhen enabling the interrupt code for the tpm_tis driver we have noticed some systems have a bios issue causing an interrupt storm to occur. The issue isn't limited to a single tpm or system manufacturer so keeping a denylist of systems with the issue isn't optimal. Instead try to detect the problem occurring, disable interrupts, and revert to polling when it happens.
---
v3: - Change include from linux/kernel_stat.h to linux/irq.h
v2: - drop tpm_tis specific workqueue and use just system_w
drivers/char/tpm/tpm_tis_core.c | 27 +++++++++++++++++++++++++++
drivers/char/tpm/tpm_tis_core.h | 2 ++ 2 files changed, 29 insertions(+)
drivers/char/tpm/tpm_tis_core.c +27 -0
@@ -24,6 +24,8 @@#include <linux/wait.h> #include <linux/acpi.h> #include <linux/freezer.h> +#include <linux/workqueue.h> +#include <linux/irq.h> #include "tpm.h" #include "tpm_tis_core.h"
@@ -715,9 +717,23 @@ static irqreturn_t tis_int_handler(int dummy, void *dev_id) {struct tpm_chip *chip = dev_id;struct tpm_tis_data *priv =dev_get_drvdata (&chip->dev); +static bool check_storm = true; +static unsigned int check_start;u32 interrupt;int i, rc; +if (unlikely (check_storm)) { +if (!check_start) { + check_start =jiffies_to_msecs (jiffies); + }else if ((kstat_irqs (priv->irq) >1000 ) && + (jiffies_to_msecs (jiffies) - check_start <500 )) { + check_storm = false; +schedule_work (&priv->storm_work); + }else if (jiffies_to_msecs (jiffies) - check_start >=500 ) { + check_storm = false; + } + } + rc =tpm_tis_read32 (priv,TPM_INT_STATUS (priv->locality), &interrupt);if (rc <0 )return IRQ_NONE ;
@@ -943,6 +959,14 @@ static const struct tpm_class_ops tpm_tis = { .clk_enable = tpm_tis_clkrun_enable, }; +static void tpm_tis_storm_work (struct work_struct *work) +{ + struct tpm_tis_data *priv = container_of(work, struct tpm_tis_data, storm_work); + +disable_interrupts (priv->chip); +dev_warn (&priv->chip->dev,"Interrupt storm detected, using polling.\n" ); +} +int tpm_tis_core_init (struct device *dev,struct tpm_tis_data *priv,int irq,const struct tpm_tis_phy_ops *phy_ops,acpi_handle acpi_dev_handle)
@@ -959,6 +983,9 @@ int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq,if (IS_ERR (chip))return PTR_ERR (chip); + priv->chip = chip; +INIT_WORK (&priv->storm_work, tpm_tis_storm_work); +#ifdef CONFIG_ACPI chip->acpi_dev_handle = acpi_dev_handle;#endif
drivers/char/tpm/tpm_tis_core.h +2 -0
@@ -95,6 +95,8 @@ struct tpm_tis_data {u16 clkrun_enabled;wait_queue_head_t int_queue;wait_queue_head_t read_queue; +struct work_struct storm_work; +struct tpm_chip *chip;const struct tpm_tis_phy_ops *phy_ops;unsigned short rng_quality; };
Signature · 6 lines
2.27.0 _______________________________________________ dri-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v3 3/4] tpm_tis: Disable interrupts if interrupt storm detected
Jerry,
Review static irqreturn_t tis_int_handler(int dummy, void *dev_id) · line 721
Quoted 6 lines · Jerry Snitselaar
(quoted diff) +2
-0@@ -715,9 +717,23 @@ static irqreturn_t tis_int_handler(int dummy, void *dev_id) { struct tpm_chip *chip = dev_id; struct tpm_tis_data *priv = dev_get_drvdata(&chip->dev); + static bool check_storm = true; + static unsigned int check_start;
So this assumes that there can't be two TPMs which is probably true, but everything else in this driver has stuff in tpm_tis_data per device.
Review static irqreturn_t tis_int_handler(int dummy, void *dev_id) · line 727
Quoted 6 lines
(quoted diff) +3
-0u32 interrupt; int i, rc; + if (unlikely(check_storm)) { + if (!check_start) { + check_start = jiffies_to_msecs(jiffies);
Yuck. I had to read that twice to figure out that it's correct vs. the truncation of the result to unsigned int. You can spare that conversion by simply doing
unsigned long end_of_check = jiffies + HZ / 2;
and then the check becomes
time_before(jiffies, end_of_check)
Review static irqreturn_t tis_int_handler(int dummy, void *dev_id) · line 729
Quoted 2 lines
(quoted diff) +2
-0+ } else if ((kstat_irqs(priv->irq) > 1000) && + (jiffies_to_msecs(jiffies) - check_start < 500)) {
I assume you can't call disable_irq_nosync() here, but shouldn't this shut up the interrupt at the TPM level right here?
Review static irqreturn_t tis_int_handler(int dummy, void *dev_id) · line 735
Quoted 6 lines
(quoted diff) +6
-0+ check_storm = false; + schedule_work(&priv->storm_work); + } else if (jiffies_to_msecs(jiffies) - check_start >= 500) { + check_storm = false; + } + }
So back to kstat_irqs(). As this needs two extra variables anyway:
init()
priv->irq_check = 1; priv->end_check = 0;
isr()
if (unlikely(priv->irq_check)) {
if (!priv->end_check) {
priv->end_check = jiffies + HZ / 2;
} else if (time_before(jiffies, priv->end_check)) {
if (priv->irq_check++ > 1000)
schedule_work(...);
} else {
priv->irq_check = 0;
}
}Hmm? I still need to see an argument for an kstat_irqs() export being superior.
Though I wonder whether such an infrastructure should be provided in the irq core. Let me think about it.
Just as a side note. I was looking at tpm_tis_probe_irq_single() and that function is leaking the interrupt request if any of the checks afterwards fails, except for the final interrupt probe check which does a cleanup. That means on fail before that the interrupt handler stays requested up to the point where the module is removed. If that's a shared interrupt and some other device is active on the same line, then each interrupt from that device will call into the TPM code. Something like the below is needed.
Also the X86 autoprobe mechanism is interesting:
if (IS_ENABLED(CONFIG_X86)) for (i = 3; i <= 15; i++) if (!tpm_tis_probe_irq_single(chip, intmask, 0, i)) return;
The third argument is 'flags' which is handed to request_irq(). So that won't ever be able to probe a shared interrupt. But if an interrupt number > 0 is handed to tpm_tis_core_init() the interrupt is requested with IRQF_SHARED. Same issue when the chip has an interrupt number in the register. It's also requested exclusive which is pretty likely to fail on ancient x86 machines.
The vast amount of comments didn't help to figure out what the reasoning is.
Thanks,
tglx
--- drivers/char/tpm/tpm_tis_core.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-)
drivers/char/tpm/tpm_tis_core.c +9 -5
@@ -782,26 +782,26 @@ static int tpm_tis_probe_irq_single(stru rc =tpm_tis_read8 (priv,TPM_INT_VECTOR (priv->locality), &original_int_vec);if (rc <0 ) -return rc; + goto fail; rc =tpm_tis_write8 (priv,TPM_INT_VECTOR (priv->locality), irq);if (rc <0 ) -return rc; + goto fail; rc =tpm_tis_read32 (priv,TPM_INT_STATUS (priv->locality), &int_status);if (rc <0 ) -return rc; + goto fail;/* Clear all existing */ rc =tpm_tis_write32 (priv,TPM_INT_STATUS (priv->locality), int_status);if (rc <0 ) -return rc; + goto fail;/* Turn on */ rc =tpm_tis_write32 (priv,TPM_INT_ENABLE (priv->locality), intmask |TPM_GLOBAL_INT_ENABLE );if (rc <0 ) -return rc; + goto fail; priv->irq_tested = false;
@@ -825,6 +825,10 @@ static int tpm_tis_probe_irq_single(stru }return 0 ; + +fail: +disable_interrupts (chip); +return rc; }/* Try to find the IRQ the TPM is using. This is for legacy x86 systems that
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Jason Gunthorpe
reviewerRe: [PATCH v3 3/4] tpm_tis: Disable interrupts if interrupt storm detected
Quoted 16 lines · Thomas Gleixner
Just as a side note. I was looking at
tpm_tis_probe_irq_single()and that function is leaking the interrupt request if any of the checks afterwards fails, except for the final interrupt probe check which does a cleanup. That means on fail before that the interrupt handler stays requested up to the point where the module is removed. If that's a shared interrupt and some other device is active on the same line, then each interrupt from that device will call into the TPM code. Something like the below is needed.Also the X86 autoprobe mechanism is interesting:
if (IS_ENABLED(CONFIG_X86)) for (i = 3; i <= 15; i++) if (!tpm_tis_probe_irq_single(chip, intmask, 0, i)) return;
Quoted 6 lines
The third argument is 'flags' which is handed to
request_irq(). So that won't ever be able to probe a shared interrupt. But if an interrupt number > 0 is handed totpm_tis_core_init()the interrupt is requested withIRQF_SHARED. Same issue when the chip has an interrupt number in the register. It's also requested exclusive which is pretty likely to fail on ancient x86 machines.
It is very likely none of this works any more, it has been repeatedly reworked over the years and just left behind out of fear someone needs it. I've thought it should be deleted for a while now.
I suppose the original logic was to try and probe without SHARED because a probe would need exclusive access to the interrupt to tell if the TPM was actually the source, not some other device.
It is all very old and very out of step with current thinking, IMHO. I skeptical that TPM interrupts were ever valuable enough to deserve this in the first place.
Jason
James Bottomley
maintainerRe: [PATCH v3 3/4] tpm_tis: Disable interrupts if interrupt storm detected
Quoted 29 lines · Jason Gunthorpe
Quoted 17 lines · Thomas Gleixner
Just as a side note. I was looking at
tpm_tis_probe_irq_single()and that function is leaking the interrupt request if any of the checks afterwards fails, except for the final interrupt probe check which does a cleanup. That means on fail before that the interrupt handler stays requested up to the point where the module is removed. If that's a shared interrupt and some other device is active on the same line, then each interrupt from that device will call into the TPM code. Something like the below is needed.Also the X86 autoprobe mechanism is interesting:
if (IS_ENABLED(CONFIG_X86)) for (i = 3; i <= 15; i++) if (!tpm_tis_probe_irq_single(chip, intmask, 0, i)) return;Quoted 6 lines
The third argument is 'flags' which is handed to
request_irq(). So that won't ever be able to probe a shared interrupt. But if an interrupt number > 0 is handed totpm_tis_core_init()the interrupt is requested withIRQF_SHARED. Same issue when the chip has an interrupt number in the register. It's also requested exclusive which is pretty likely to fail on ancient x86 machines.It is very likely none of this works any more, it has been repeatedly reworked over the years and just left behind out of fear someone needs it. I've thought it should be deleted for a while now.
Quoted 7 lines
I suppose the original logic was to try and probe without SHARED because a probe would need exclusive access to the interrupt to tell if the TPM was actually the source, not some other device.
It is all very old and very out of step with current thinking, IMHO. I skeptical that TPM interrupts were ever valuable enough to deserve this in the first place.
For what it's worth, I agree. Trying to probe all 15 ISA interrupts is last millennium thinking we should completely avoid. If it's not described in ACPI then you don't get an interrupt full stop.
James
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Jarkko Sakkinen
maintainerRe: [PATCH v3 3/4] tpm_tis: Disable interrupts if interrupt storm detected
Quoted 38 lines · James Bottomley
Quoted 29 lines · Jason Gunthorpe
Quoted 17 lines · Thomas Gleixner
Just as a side note. I was looking at
tpm_tis_probe_irq_single()and that function is leaking the interrupt request if any of the checks afterwards fails, except for the final interrupt probe check which does a cleanup. That means on fail before that the interrupt handler stays requested up to the point where the module is removed. If that's a shared interrupt and some other device is active on the same line, then each interrupt from that device will call into the TPM code. Something like the below is needed.Also the X86 autoprobe mechanism is interesting:
if (IS_ENABLED(CONFIG_X86)) for (i = 3; i <= 15; i++) if (!tpm_tis_probe_irq_single(chip, intmask, 0, i)) return;Quoted 6 lines
The third argument is 'flags' which is handed to
request_irq(). So that won't ever be able to probe a shared interrupt. But if an interrupt number > 0 is handed totpm_tis_core_init()the interrupt is requested withIRQF_SHARED. Same issue when the chip has an interrupt number in the register. It's also requested exclusive which is pretty likely to fail on ancient x86 machines.It is very likely none of this works any more, it has been repeatedly reworked over the years and just left behind out of fear someone needs it. I've thought it should be deleted for a while now.
Quoted 7 lines
I suppose the original logic was to try and probe without SHARED because a probe would need exclusive access to the interrupt to tell if the TPM was actually the source, not some other device.
It is all very old and very out of step with current thinking, IMHO. I skeptical that TPM interrupts were ever valuable enough to deserve this in the first place.
Quoted 5 lines
For what it's worth, I agree. Trying to probe all 15 ISA interrupts is last millennium thinking we should completely avoid. If it's not described in ACPI then you don't get an interrupt full stop.
James
Maybe you could add this as part of your patches?
/Jarkko
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel
Jarkko Sakkinen
maintainerRe: [PATCH v3 3/4] tpm_tis: Disable interrupts if interrupt storm detected
In reply to Jason GunthorpeQuoted 32 lines · Jason Gunthorpe
Quoted 16 lines · Thomas Gleixner
Just as a side note. I was looking at
tpm_tis_probe_irq_single()and that function is leaking the interrupt request if any of the checks afterwards fails, except for the final interrupt probe check which does a cleanup. That means on fail before that the interrupt handler stays requested up to the point where the module is removed. If that's a shared interrupt and some other device is active on the same line, then each interrupt from that device will call into the TPM code. Something like the below is needed.Also the X86 autoprobe mechanism is interesting:
if (IS_ENABLED(CONFIG_X86)) for (i = 3; i <= 15; i++) if (!tpm_tis_probe_irq_single(chip, intmask, 0, i)) return;Quoted 6 lines
The third argument is 'flags' which is handed to
request_irq(). So that won't ever be able to probe a shared interrupt. But if an interrupt number > 0 is handed totpm_tis_core_init()the interrupt is requested withIRQF_SHARED. Same issue when the chip has an interrupt number in the register. It's also requested exclusive which is pretty likely to fail on ancient x86 machines.It is very likely none of this works any more, it has been repeatedly reworked over the years and just left behind out of fear someone needs it. I've thought it should be deleted for a while now.
I suppose the original logic was to try and probe without SHARED because a probe would need exclusive access to the interrupt to tell if the TPM was actually the source, not some other device.
Quoted 5 lines
It is all very old and very out of step with current thinking, IMHO. I skeptical that TPM interrupts were ever valuable enough to deserve this in the first place.
Jason
+1 for removing it.
/Jarkko
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel
PATCH v3 4/4 tpm_tis: Disable Interrupts on the ThinkPad L490
In reply to Jerry SnitselaarThe interrupt storm detection code detects the issue on the ThinkPad T490s, but the L490 still hangs at initialization. So swap out the T490s for the L490 in the dmi check.
--- drivers/char/tpm/tpm_tis.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/char/tpm/tpm_tis.c +2 -2
@@ -77,10 +77,10 @@ static int tpm_tis_disable_irq(const struct dmi_system_id *d)static const struct dmi_system_id tpm_tis_dmi_table[] = { { .callback = tpm_tis_disable_irq, - .ident ="ThinkPad T490s" , + .ident ="ThinkPad L490" , .matches = {DMI_MATCH (DMI_SYS_VENDOR ,"LENOVO" ), -DMI_MATCH (DMI_PRODUCT_VERSION ,"ThinkPad T490s" ), +DMI_MATCH (DMI_PRODUCT_VERSION ,"ThinkPad L490" ), }, }, {}
Signature · 6 lines
2.27.0 _______________________________________________ Intel-gfx mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Patchwork
CI[Intel-gfx] ✗ Fi.CI.SPARSE: warning for tpm_tis: Detect interrupt storms
In reply to Jerry Snitselaar== Series Details ==
== Series Details ==
Series: tpm_tis: Detect interrupt storms
URL : https://patchwork.freedesktop.org/series/84608/
State : warning
== Summary ==
$ dim sparse --fast origin/drm-tip Sparse version: v0.6.2 Fast mode used, each commit won't be checked separately. - +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:257:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:261:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB"
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Patchwork
CI[Intel-gfx] ✓ Fi.CI.BAT: success for tpm_tis: Detect interrupt storms
In reply to Jerry Snitselaar== Series Details ==
== Series Details ==
Series: tpm_tis: Detect interrupt storms
URL : https://patchwork.freedesktop.org/series/84608/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_9445 -> Patchwork_19068
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/index.html
New tests
---------
New tests have been introduced between CI_DRM_9445 and Patchwork_19068:
### New CI tests (1) ###
* boot:
- Statuses : 1 fail(s) 37 pass(s)
- Exec time: [0.0] s
Known issues
------------
Here are the changes found in Patchwork_19068 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_basic@create-close:
- fi-tgl-y: [PASS][1] -> [DMESG-WARN][2] ([i915#402]) +1 similar issue
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/fi-tgl-y/igt@[email protected]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/fi-tgl-y/igt@[email protected]
* igt@i915_selftest@live@gt_heartbeat:
- fi-tgl-y: [PASS][3] -> [DMESG-FAIL][4] ([i915#2601])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/fi-tgl-y/igt@i915_selftest@live@gt_heartbeat.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/fi-tgl-y/igt@i915_selftest@live@gt_heartbeat.html
#### Possible fixes ####
* igt@gem_basic@create-fd-close:
- fi-tgl-y: [DMESG-WARN][5] ([i915#402]) -> [PASS][6] +1 similar issue
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/fi-tgl-y/igt@[email protected]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/fi-tgl-y/igt@[email protected]
* igt@gem_exec_suspend@basic-s3:
- fi-snb-2600: [INCOMPLETE][7] -> [PASS][8]
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/fi-snb-2600/igt@[email protected]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/fi-snb-2600/igt@[email protected]
[i915#2601]: https://gitlab.freedesktop.org/drm/intel/issues/2601
[i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
Participating hosts (43 -> 38)
------------------------------
Missing (5): fi-ilk-m540 fi-cml-s fi-hsw-4200u fi-bsw-cyan fi-bdw-samus
Build changes
-------------
* Linux: CI_DRM_9445 -> Patchwork_19068
CI-20190529: 20190529
CI_DRM_9445: 2e3d245730b4ce190e96d9731a2a6f06bb0ec57a @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_5881: 10d4e2e9177eb747b9f2ab9122e3ab60e91654fb @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_19068: 6c83347a790e974258695626a9027419c62e5a76 @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
6c83347a790e tpm_tis: Disable Interrupts on the ThinkPad L490 d3237e7109ec tpm_tis: Disable interrupts if interrupt storm detected f747809abcdd drm/i915/pmu: Use kstat_irqs to get interrupt count 2ce4abcffe25 irq: export kstat_irqs
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/index.html
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Patchwork
CI[Intel-gfx] ✓ Fi.CI.IGT: success for tpm_tis: Detect interrupt storms
In reply to Jerry Snitselaar== Series Details ==
== Series Details ==
Series: tpm_tis: Detect interrupt storms
URL : https://patchwork.freedesktop.org/series/84608/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_9445_full -> Patchwork_19068_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_19068_full:
### IGT changes ###
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses. They do not affect the overall result.
* {igt@gem_ctx_exec@basic-close-race}:
- shard-apl: [PASS][1] -> [INCOMPLETE][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/shard-apl3/igt@[email protected]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-apl1/igt@[email protected]
- shard-kbl: [PASS][3] -> [INCOMPLETE][4]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/shard-kbl3/igt@[email protected]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-kbl4/igt@[email protected]
New tests
---------
New tests have been introduced between CI_DRM_9445_full and Patchwork_19068_full:
### New CI tests (1) ###
* boot:
- Statuses : 174 pass(s)
- Exec time: [0.0] s
Known issues
------------
Here are the changes found in Patchwork_19068_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_softpin@noreloc-s3:
- shard-apl: [PASS][5] -> [INCOMPLETE][6] ([i915#2405])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/shard-apl4/igt@[email protected]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-apl4/igt@[email protected]
* igt@i915_suspend@forcewake:
- shard-kbl: [PASS][7] -> [INCOMPLETE][8] ([i915#155] / [i915#180] / [i915#636])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/shard-kbl7/igt@[email protected]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-kbl7/igt@[email protected]
* igt@kms_cursor_crc@pipe-a-cursor-64x64-sliding:
- shard-skl: [PASS][9] -> [FAIL][10] ([i915#54]) +2 similar issues
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/shard-skl8/igt@[email protected]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-skl3/igt@[email protected]
* igt@kms_flip@flip-vs-expired-vblank-interruptible@c-edp1:
- shard-skl: [PASS][11] -> [FAIL][12] ([i915#79])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/shard-skl9/igt@kms_flip@[email protected]
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-skl4/igt@kms_flip@[email protected]
* igt@kms_flip@plain-flip-ts-check-interruptible@a-edp1:
- shard-skl: [PASS][13] -> [FAIL][14] ([i915#2122])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/shard-skl4/igt@kms_flip@[email protected]
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-skl4/igt@kms_flip@[email protected]
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-plflip-blt:
- shard-apl: [PASS][15] -> [FAIL][16] ([i915#49])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/shard-apl7/igt@[email protected]
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-apl2/igt@[email protected]
- shard-glk: [PASS][17] -> [FAIL][18] ([i915#49])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/shard-glk2/igt@[email protected]
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-glk8/igt@[email protected]
- shard-kbl: [PASS][19] -> [FAIL][20] ([i915#49])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/shard-kbl1/igt@[email protected]
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-kbl6/igt@[email protected]
* igt@kms_hdr@bpc-switch-suspend:
- shard-skl: [PASS][21] -> [FAIL][22] ([i915#1188])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/shard-skl4/igt@[email protected]
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-skl7/igt@[email protected]
* igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min:
- shard-skl: [PASS][23] -> [FAIL][24] ([fdo#108145] / [i915#265])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/shard-skl8/igt@[email protected]
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-skl10/igt@[email protected]
* igt@kms_psr@psr2_primary_mmap_gtt:
- shard-iclb: [PASS][25] -> [SKIP][26] ([fdo#109441])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/shard-iclb2/igt@kms_psr@psr2_primary_mmap_gtt.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-iclb1/igt@kms_psr@psr2_primary_mmap_gtt.html
* igt@perf@polling-parameterized:
- shard-glk: [PASS][27] -> [FAIL][28] ([i915#1542])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/shard-glk9/igt@[email protected]
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-glk3/igt@[email protected]
#### Possible fixes ####
* {igt@gem_ctx_exec@basic-close-race}:
- shard-skl: [INCOMPLETE][29] -> [PASS][30]
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/shard-skl1/igt@[email protected]
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-skl9/igt@[email protected]
* igt@gem_exec_whisper@basic-contexts-priority:
- shard-iclb: [INCOMPLETE][31] -> [PASS][32] +1 similar issue
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/shard-iclb5/igt@[email protected]
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-iclb6/igt@[email protected]
* igt@gem_exec_whisper@basic-fds-priority:
- shard-glk: [DMESG-WARN][33] ([i915#118] / [i915#95]) -> [PASS][34] +1 similar issue
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/shard-glk8/igt@[email protected]
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-glk9/igt@[email protected]
* igt@gem_mmap_offset@clear:
- shard-skl: [DMESG-WARN][35] ([i915#1982]) -> [PASS][36]
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/shard-skl9/igt@[email protected]
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-skl4/igt@[email protected]
* igt@kms_dp_aux_dev:
- shard-iclb: [DMESG-WARN][37] ([i915#262]) -> [PASS][38]
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/shard-iclb7/igt@kms_dp_aux_dev.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-iclb7/igt@kms_dp_aux_dev.html
* igt@kms_flip@flip-vs-expired-vblank@c-hdmi-a1:
- shard-glk: [FAIL][39] ([i915#79]) -> [PASS][40]
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/shard-glk2/igt@kms_flip@[email protected]
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-glk8/igt@kms_flip@[email protected]
* igt@kms_flip_tiling@flip-to-yf-tiled@edp-1-pipe-c:
- shard-skl: [FAIL][41] -> [PASS][42]
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/shard-skl7/igt@kms_flip_tiling@[email protected]
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-skl6/igt@kms_flip_tiling@[email protected]
* igt@kms_frontbuffer_tracking@psr-rgb565-draw-render:
- shard-skl: [FAIL][43] ([i915#49]) -> [PASS][44]
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/shard-skl9/igt@[email protected]
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-skl4/igt@[email protected]
* igt@kms_plane_alpha_blend@pipe-a-coverage-7efc:
- shard-skl: [FAIL][45] ([fdo#108145] / [i915#265]) -> [PASS][46]
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/shard-skl9/igt@[email protected]
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-skl4/igt@[email protected]
* igt@kms_plane_lowres@pipe-b-tiling-yf:
- shard-iclb: [FAIL][47] ([i915#899]) -> [PASS][48]
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/shard-iclb6/igt@[email protected]
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-iclb8/igt@[email protected]
* igt@kms_psr2_su@frontbuffer:
- shard-iclb: [SKIP][49] ([fdo#109642] / [fdo#111068]) -> [PASS][50] +1 similar issue
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/shard-iclb8/igt@[email protected]
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-iclb2/igt@[email protected]
* igt@kms_psr@psr2_basic:
- shard-iclb: [SKIP][51] ([fdo#109441]) -> [PASS][52]
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/shard-iclb5/igt@kms_psr@psr2_basic.html
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-iclb2/igt@kms_psr@psr2_basic.html
* igt@perf@polling-parameterized:
- shard-skl: [FAIL][53] ([i915#1542]) -> [PASS][54]
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/shard-skl5/igt@[email protected]
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-skl9/igt@[email protected]
#### Warnings ####
* igt@i915_pm_rc6_residency@rc6-fence:
- shard-iclb: [WARN][55] ([i915#2681] / [i915#2684]) -> [WARN][56] ([i915#1804] / [i915#2684])
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/shard-iclb8/igt@[email protected]
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-iclb4/igt@[email protected]
* igt@i915_pm_rc6_residency@rc6-idle:
- shard-iclb: [WARN][57] ([i915#2684]) -> [WARN][58] ([i915#2681] / [i915#2684])
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/shard-iclb2/igt@[email protected]
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-iclb1/igt@[email protected]
* igt@kms_vblank@pipe-c-ts-continuation-dpms-suspend:
- shard-tglb: [INCOMPLETE][59] ([i915#1602] / [i915#2411] / [i915#456]) -> [DMESG-WARN][60] ([i915#1436] / [i915#1602] / [i915#1887] / [i915#2411])
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/shard-tglb8/igt@[email protected]
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-tglb6/igt@[email protected]
* igt@runner@aborted:
- shard-kbl: ([FAIL][61], [FAIL][62]) ([i915#1814] / [i915#2295] / [i915#2722] / [i915#483] / [i915#602]) -> ([FAIL][63], [FAIL][64], [FAIL][65]) ([i915#2295] / [i915#2722] / [i915#483])
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/shard-kbl7/igt@[email protected]
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9445/shard-kbl4/igt@[email protected]
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-kbl4/igt@[email protected]
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-kbl1/igt@[email protected]
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19068/shard-kbl7/igt@[email protected]
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
[fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
[i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
[i915#1188]: https://gitlab.freedesktop.org/drm/intel/issues/1188
[i915#1436]: https://gitlab.freedesktop.org/drm/intel/issues/1436
[i915#1542]: https://gitlab.freedesktop.org/drm/intel/issues/1542
[i915#155]: https://gitlab.freedesktop.org/drm/intel/issues/155
[i915#1602]: https://gitlab.freedesktop.org/drm/intel/issues/1602
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#1804]: https://gitlab.freedesktop.org/drm/intel/issues/1804
[i915#1814]: https://gitlab.freedesktop.org/drm/intel/issues/1814
[i915#1887]: https://gitlab.freedesktop.org/drm/intel/issues/1887
[i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
[i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122
[i915#2295]: https://gitlab.freedesktop.org/drm/intel/issues/2295
[i915#2405]: https://gitlab.freedesktop.org/drm/intel/issues/2405
[i915#2411]: https://gitlab.freedesktop.org/drm/intel/issues/2411
[i915#262]: https://gitlab.freedesktop.org/drm/intel/issues/262
[i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
[i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
[i915#2684]: https://gitlab.freedesktop.org/drm/intel/issues/2684
[i915#2722]: https://gitlab.freedesktop.org/drm/intel/issues/2722
[i915#456]: https://gitlab.freedesktop.org/drm/intel/issues/456
[i915#483]: https://gitlab.freedesktop.org/drm/intel/issues/483
[i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49
[i915#54]: https://gitlab.freedesktop.org/drm/intel/issues/54
[i915#602]: https://gitlab.freedesktop.org/drm/intel/issues/602
[i915#636]: https://gitlab.freedesktop.org/drm/intel/issues/636
[i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
[i915#899]: https://gitlab.freedesktop.org/drm/intel/issues/899
[i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95
Participating hosts (10 -> 10)
------------------------------
No changes in participating hosts
Build changes
-------------
* Linux: CI_DRM_9445 -> Patchwork_19068
CI-20190529: 20190529
CI_DRM_9445: 2e3d245730b4ce190e96d9731a2a6f06bb0ec57a @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_5881: 10d4e2e9177eb747b9f2ab9122e3ab60e91654fb @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_19068: 6c83347a790e974258695626a9027419c62e5a76 @ 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_19068/index.html
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Patchwork
CI[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for tpm_tis: Detect interrupt storms (rev2)
In reply to Jerry Snitselaar== Series Details ==
== Series Details ==
Series: tpm_tis: Detect interrupt storms (rev2)
URL : https://patchwork.freedesktop.org/series/84608/
State : warning
== Summary ==
$ dim checkpatch origin/drm-tip f8859e000a36 irq: export kstat_irqs f275d76d2070 drm/i915/pmu: Use kstat_irqs to get interrupt count 61225780bab4 tpm_tis: Disable interrupts if interrupt storm detected -:9: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description (prefer a maximum 75 chars per line) #9:
Review static irqreturn_t tis_int_handler(int dummy, void *dev_id)
Quoted 1 line
(quoted diff) +0
-0@@ -715,9 +717,23 @@ static irqreturn_t tis_int_handler(int dummy, void *dev_id)
-:149: ERROR:MISSING_SIGN_OFF: Missing Signed-off-by: line(s)
total: 1 errors, 1 warnings, 0 checks, 41 lines checked 605edf549fde tpm_tis: Disable Interrupts on the ThinkPad L490
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Patchwork
CI[Intel-gfx] ✗ Fi.CI.SPARSE: warning for tpm_tis: Detect interrupt storms (rev2)
In reply to Jerry Snitselaar== Series Details ==
== Series Details ==
Series: tpm_tis: Detect interrupt storms (rev2)
URL : https://patchwork.freedesktop.org/series/84608/
State : warning
== Summary ==
$ dim sparse --fast origin/drm-tip Sparse version: v0.6.2 Fast mode used, each commit won't be checked separately. - +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:257:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:261:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB"
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Patchwork
CI[Intel-gfx] ✓ Fi.CI.BAT: success for tpm_tis: Detect interrupt storms (rev2)
In reply to Jerry Snitselaar== Series Details ==
== Series Details ==
Series: tpm_tis: Detect interrupt storms (rev2)
URL : https://patchwork.freedesktop.org/series/84608/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_9450 -> Patchwork_19072
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19072/index.html
New tests
---------
New tests have been introduced between CI_DRM_9450 and Patchwork_19072:
### New CI tests (1) ###
* boot:
- Statuses : 1 fail(s) 38 pass(s)
- Exec time: [0.0] s
Known issues
------------
Here are the changes found in Patchwork_19072 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_getparams_basic@basic-subslice-total:
- fi-tgl-y: [PASS][1] -> [DMESG-WARN][2] ([i915#402]) +1 similar issue
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9450/fi-tgl-y/igt@[email protected]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19072/fi-tgl-y/igt@[email protected]
#### Possible fixes ####
* igt@prime_self_import@basic-with_one_bo_two_files:
- fi-tgl-y: [DMESG-WARN][3] ([i915#402]) -> [PASS][4] +1 similar issue
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9450/fi-tgl-y/igt@prime_self_import@basic-with_one_bo_two_files.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19072/fi-tgl-y/igt@prime_self_import@basic-with_one_bo_two_files.html
[i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
Participating hosts (43 -> 39)
------------------------------
Missing (4): fi-ilk-m540 fi-bsw-cyan fi-bdw-samus fi-hsw-4200u
Build changes
-------------
* Linux: CI_DRM_9450 -> Patchwork_19072
CI-20190529: 20190529
CI_DRM_9450: 83b8d6ab0631ef13a095c7818d3c2c40f52f42ce @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_5881: 10d4e2e9177eb747b9f2ab9122e3ab60e91654fb @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_19072: 605edf549fdee6b005f49176d476260cd18cf306 @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
605edf549fde tpm_tis: Disable Interrupts on the ThinkPad L490 61225780bab4 tpm_tis: Disable interrupts if interrupt storm detected f275d76d2070 drm/i915/pmu: Use kstat_irqs to get interrupt count f8859e000a36 irq: export kstat_irqs
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19072/index.html
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Patchwork
CI[Intel-gfx] ✓ Fi.CI.IGT: success for tpm_tis: Detect interrupt storms (rev2)
In reply to Jerry Snitselaar== Series Details ==
== Series Details ==
Series: tpm_tis: Detect interrupt storms (rev2)
URL : https://patchwork.freedesktop.org/series/84608/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_9450_full -> Patchwork_19072_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
New tests
---------
New tests have been introduced between CI_DRM_9450_full and Patchwork_19072_full:
### New CI tests (1) ###
* boot:
- Statuses : 200 pass(s)
- Exec time: [0.0] s
Known issues
------------
Here are the changes found in Patchwork_19072_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_softpin@noreloc-s3:
- shard-apl: [PASS][1] -> [INCOMPLETE][2] ([i915#2405])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9450/shard-apl6/igt@[email protected]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19072/shard-apl2/igt@[email protected]
* igt@kms_cursor_crc@pipe-b-cursor-suspend:
- shard-skl: [PASS][3] -> [INCOMPLETE][4] ([i915#2405] / [i915#300])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9450/shard-skl2/igt@[email protected]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19072/shard-skl5/igt@[email protected]
* igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy:
- shard-hsw: [PASS][5] -> [FAIL][6] ([i915#96])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9450/shard-hsw2/igt@[email protected]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19072/shard-hsw6/igt@[email protected]
* igt@kms_cursor_legacy@flip-vs-cursor-atomic:
- shard-tglb: [PASS][7] -> [FAIL][8] ([i915#2346])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9450/shard-tglb2/igt@[email protected]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19072/shard-tglb1/igt@[email protected]
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-plflip-blt:
- shard-apl: [PASS][9] -> [FAIL][10] ([i915#49])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9450/shard-apl1/igt@[email protected]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19072/shard-apl4/igt@[email protected]
- shard-glk: [PASS][11] -> [FAIL][12] ([i915#49]) +1 similar issue
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9450/shard-glk1/igt@[email protected]
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19072/shard-glk4/igt@[email protected]
- shard-kbl: [PASS][13] -> [FAIL][14] ([i915#49])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9450/shard-kbl7/igt@[email protected]
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19072/shard-kbl6/igt@[email protected]
* igt@kms_hdr@bpc-switch-suspend:
- shard-skl: [PASS][15] -> [FAIL][16] ([i915#1188])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9450/shard-skl9/igt@[email protected]
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19072/shard-skl7/igt@[email protected]
* igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
- shard-skl: [PASS][17] -> [FAIL][18] ([fdo#108145] / [i915#265]) +2 similar issues
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9450/shard-skl9/igt@[email protected]
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19072/shard-skl5/igt@[email protected]
* igt@kms_psr2_su@frontbuffer:
- shard-iclb: [PASS][19] -> [SKIP][20] ([fdo#109642] / [fdo#111068])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9450/shard-iclb2/igt@[email protected]
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19072/shard-iclb7/igt@[email protected]
* igt@kms_psr@psr2_basic:
- shard-iclb: [PASS][21] -> [SKIP][22] ([fdo#109441]) +1 similar issue
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9450/shard-iclb2/igt@kms_psr@psr2_basic.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19072/shard-iclb8/igt@kms_psr@psr2_basic.html
#### Possible fixes ####
* igt@kms_cursor_crc@pipe-c-cursor-suspend:
- shard-skl: [FAIL][23] ([i915#54]) -> [PASS][24] +2 similar issues
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9450/shard-skl1/igt@[email protected]
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19072/shard-skl9/igt@[email protected]
* igt@kms_hdr@bpc-switch-dpms:
- shard-skl: [FAIL][25] ([i915#1188]) -> [PASS][26]
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9450/shard-skl3/igt@[email protected]
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19072/shard-skl2/igt@[email protected]
* igt@kms_psr@psr2_sprite_mmap_gtt:
- shard-iclb: [SKIP][27] ([fdo#109441]) -> [PASS][28] +2 similar issues
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9450/shard-iclb5/igt@kms_psr@psr2_sprite_mmap_gtt.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19072/shard-iclb2/igt@kms_psr@psr2_sprite_mmap_gtt.html
* igt@sysfs_heartbeat_interval@mixed@vecs0:
- shard-skl: [FAIL][29] ([i915#1731]) -> [PASS][30]
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9450/shard-skl8/igt@sysfs_heartbeat_interval@[email protected]
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19072/shard-skl2/igt@sysfs_heartbeat_interval@[email protected]
#### Warnings ####
* igt@gem_ctx_isolation@preservation-s3@rcs0:
- shard-kbl: [INCOMPLETE][31] ([i915#794]) -> [INCOMPLETE][32] ([i915#1602] / [i915#794])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9450/shard-kbl1/igt@gem_ctx_isolation@[email protected]
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19072/shard-kbl7/igt@gem_ctx_isolation@[email protected]
* igt@i915_pm_rc6_residency@rc6-idle:
- shard-iclb: [WARN][33] ([i915#2681] / [i915#2684]) -> [WARN][34] ([i915#1804] / [i915#2684])
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9450/shard-iclb8/igt@[email protected]
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19072/shard-iclb6/igt@[email protected]
* igt@kms_dp_dsc@basic-dsc-enable-edp:
- shard-iclb: [SKIP][35] ([fdo#109349]) -> [DMESG-WARN][36] ([i915#1226])
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9450/shard-iclb5/igt@[email protected]
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19072/shard-iclb2/igt@[email protected]
* igt@kms_vblank@pipe-c-ts-continuation-dpms-suspend:
- shard-tglb: [INCOMPLETE][37] ([i915#1602] / [i915#2411] / [i915#456]) -> [INCOMPLETE][38] ([i915#1436] / [i915#1602] / [i915#1887] / [i915#2411] / [i915#456])
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9450/shard-tglb8/igt@[email protected]
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19072/shard-tglb6/igt@[email protected]
* igt@runner@aborted:
- shard-hsw: ([FAIL][39], [FAIL][40]) ([i915#1436] / [i915#2295]) -> ([FAIL][41], [FAIL][42]) ([i915#1436] / [i915#2295] / [i915#483])
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9450/shard-hsw2/igt@[email protected]
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9450/shard-hsw2/igt@[email protected]
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19072/shard-hsw2/igt@[email protected]
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19072/shard-hsw1/igt@[email protected]
- shard-kbl: ([FAIL][43], [FAIL][44]) ([i915#1814] / [i915#2295] / [i915#2722] / [i915#483] / [i915#602]) -> ([FAIL][45], [FAIL][46], [FAIL][47]) ([i915#1436] / [i915#1814] / [i915#2295] / [i915#2722] / [i915#483] / [i915#602])
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9450/shard-kbl3/igt@[email protected]
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9450/shard-kbl1/igt@[email protected]
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19072/shard-kbl7/igt@[email protected]
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19072/shard-kbl7/igt@[email protected]
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19072/shard-kbl4/igt@[email protected]
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
[fdo#109349]: https://bugs.freedesktop.org/show_bug.cgi?id=109349
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
[fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
[i915#1188]: https://gitlab.freedesktop.org/drm/intel/issues/1188
[i915#1226]: https://gitlab.freedesktop.org/drm/intel/issues/1226
[i915#1436]: https://gitlab.freedesktop.org/drm/intel/issues/1436
[i915#1602]: https://gitlab.freedesktop.org/drm/intel/issues/1602
[i915#1731]: https://gitlab.freedesktop.org/drm/intel/issues/1731
[i915#1804]: https://gitlab.freedesktop.org/drm/intel/issues/1804
[i915#1814]: https://gitlab.freedesktop.org/drm/intel/issues/1814
[i915#1887]: https://gitlab.freedesktop.org/drm/intel/issues/1887
[i915#2245]: https://gitlab.freedesktop.org/drm/intel/issues/2245
[i915#2295]: https://gitlab.freedesktop.org/drm/intel/issues/2295
[i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
[i915#2405]: https://gitlab.freedesktop.org/drm/intel/issues/2405
[i915#2411]: https://gitlab.freedesktop.org/drm/intel/issues/2411
[i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
[i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
[i915#2684]: https://gitlab.freedesktop.org/drm/intel/issues/2684
[i915#2722]: https://gitlab.freedesktop.org/drm/intel/issues/2722
[i915#300]: https://gitlab.freedesktop.org/drm/intel/issues/300
[i915#456]: https://gitlab.freedesktop.org/drm/intel/issues/456
[i915#483]: https://gitlab.freedesktop.org/drm/intel/issues/483
[i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49
[i915#54]: https://gitlab.freedesktop.org/drm/intel/issues/54
[i915#602]: https://gitlab.freedesktop.org/drm/intel/issues/602
[i915#794]: https://gitlab.freedesktop.org/drm/intel/issues/794
[i915#96]: https://gitlab.freedesktop.org/drm/intel/issues/96
Participating hosts (10 -> 10)
------------------------------
No changes in participating hosts
Build changes
-------------
* Linux: CI_DRM_9450 -> Patchwork_19072
CI-20190529: 20190529
CI_DRM_9450: 83b8d6ab0631ef13a095c7818d3c2c40f52f42ce @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_5881: 10d4e2e9177eb747b9f2ab9122e3ab60e91654fb @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_19072: 605edf549fdee6b005f49176d476260cd18cf306 @ 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_19072/index.html
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx