* [GIT PULL] irq_work changes for 3.9
@ 2013-01-16 14:17 Frederic Weisbecker
2013-01-16 22:04 ` Andreas Mohr
2013-01-24 11:51 ` Ingo Molnar
0 siblings, 2 replies; 5+ messages in thread
From: Frederic Weisbecker @ 2013-01-16 14:17 UTC (permalink / raw)
To: Ingo Molnar
Cc: LKML, Frederic Weisbecker, Steven Rostedt, Peter Zijlstra,
Thomas Gleixner, Andrew Morton
Hi Ingo,
The printk changes for full dynticks support are still pending while
we don't know Linus's opinion about these. Meanwhile here is the
part of it that I think is uncontroversial. This way we can make
the next submission attempt to Linus a bit more simple.
These three patches are general fixes for irq work. The two first
patches fix tight races on global irq work claiming that prevent the irq work
subsystem from dropping a work enqueuing attempt because it thinks it's
already pending while it may be already executing or executed.
The last patch just extends irq work support everywhere. It's also a
kconfig cleanup.
The branch can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
core/irq_work
Head is: 6147a9d8070e1c9d16d57eb53a14942b95b28dc4
Thanks.
---
Frederic Weisbecker (3):
irq_work: Fix racy IRQ_WORK_BUSY flag setting
irq_work: Fix racy check on work pending flag
irq_work: Remove CONFIG_HAVE_IRQ_WORK
arch/alpha/Kconfig | 1 -
arch/arm/Kconfig | 1 -
arch/arm64/Kconfig | 1 -
arch/blackfin/Kconfig | 1 -
arch/frv/Kconfig | 1 -
arch/hexagon/Kconfig | 1 -
arch/mips/Kconfig | 1 -
arch/parisc/Kconfig | 1 -
arch/powerpc/Kconfig | 1 -
arch/s390/Kconfig | 1 -
arch/sh/Kconfig | 1 -
arch/sparc/Kconfig | 1 -
arch/x86/Kconfig | 1 -
drivers/staging/iio/trigger/Kconfig | 1 -
init/Kconfig | 4 ----
kernel/irq_work.c | 21 +++++++++++++++------
16 files changed, 15 insertions(+), 24 deletions(-)
--
1.7.5.4
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [GIT PULL] irq_work changes for 3.9
2013-01-16 14:17 [GIT PULL] irq_work changes for 3.9 Frederic Weisbecker
@ 2013-01-16 22:04 ` Andreas Mohr
2013-01-16 22:12 ` Frederic Weisbecker
2013-01-24 11:51 ` Ingo Molnar
1 sibling, 1 reply; 5+ messages in thread
From: Andreas Mohr @ 2013-01-16 22:04 UTC (permalink / raw)
To: Frederic Weisbecker
Cc: Ingo Molnar, LKML, Frederic Weisbecker, Steven Rostedt,
Peter Zijlstra, Thomas Gleixner, Andrew Morton
Hi,
> These three patches are general fixes for irq work. The two first
> patches fix tight races on global irq work claiming that prevent the irq work
> subsystem from dropping a work enqueuing attempt because it thinks it's
> already pending while it may be already executing or executed.
Would that one happen to be one that would fix my system dropping
dead on sound output (looping the existing buffer ad infinitum)
every couple idle minutes when using my sound card's
PulseAudio IRQ-less playback patch (to-be-submitted),
and which seems to have started (or got quite a bit worse
so as to let me notice?) once I added my
"quirks: enable APIC De-Assert Message bit for VIA 8235, too."
(to-be-submitted) commit?
(which reduces IRQs from duplicate to single - thereby probably
reducing the opportunities for the system to notice that work is pending)
Of course a lone kick to the mouse always fixes it...
(-rc2 here)
Hell yeah that does sound like a potential candidate to me.
Andreas Mohr
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [GIT PULL] irq_work changes for 3.9
2013-01-16 22:04 ` Andreas Mohr
@ 2013-01-16 22:12 ` Frederic Weisbecker
2013-01-16 22:48 ` Andreas Mohr
0 siblings, 1 reply; 5+ messages in thread
From: Frederic Weisbecker @ 2013-01-16 22:12 UTC (permalink / raw)
To: Andreas Mohr
Cc: Ingo Molnar, LKML, Steven Rostedt, Peter Zijlstra,
Thomas Gleixner, Andrew Morton
2013/1/16 Andreas Mohr <andi@lisas.de>:
> Hi,
>
>> These three patches are general fixes for irq work. The two first
>> patches fix tight races on global irq work claiming that prevent the irq work
>> subsystem from dropping a work enqueuing attempt because it thinks it's
>> already pending while it may be already executing or executed.
>
> Would that one happen to be one that would fix my system dropping
> dead on sound output (looping the existing buffer ad infinitum)
> every couple idle minutes when using my sound card's
> PulseAudio IRQ-less playback patch (to-be-submitted),
> and which seems to have started (or got quite a bit worse
> so as to let me notice?) once I added my
> "quirks: enable APIC De-Assert Message bit for VIA 8235, too."
> (to-be-submitted) commit?
> (which reduces IRQs from duplicate to single - thereby probably
> reducing the opportunities for the system to notice that work is pending)
>
> Of course a lone kick to the mouse always fixes it...
>
> (-rc2 here)
>
> Hell yeah that does sound like a potential candidate to me.
>
> Andreas Mohr
I doubt it. I don't see a sound driver using struct irq_work:
$git grep -F "struct irq_work" drivers/ sound/
drivers/acpi/apei/ghes.c:static struct irq_work ghes_proc_irq_work;
drivers/acpi/apei/ghes.c:static void ghes_proc_in_irq(struct irq_work *irq_work)
drivers/extcon/extcon-max77693.c: struct work_struct irq_work;
drivers/extcon/extcon-max8997.c: struct work_struct irq_work;
drivers/net/ethernet/microchip/enc28j60.c: struct work_struct irq_work;
drivers/net/wireless/ti/wl1251/wl1251.h: struct work_struct irq_work;
drivers/staging/iio/trigger/iio-trig-sysfs.c: struct irq_work work;
drivers/staging/iio/trigger/iio-trig-sysfs.c:static void
iio_sysfs_trigger_work(struct irq_work *work)
drivers/thermal/exynos_thermal.c: struct work_struct irq_work;
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [GIT PULL] irq_work changes for 3.9
2013-01-16 22:12 ` Frederic Weisbecker
@ 2013-01-16 22:48 ` Andreas Mohr
0 siblings, 0 replies; 5+ messages in thread
From: Andreas Mohr @ 2013-01-16 22:48 UTC (permalink / raw)
To: Frederic Weisbecker; +Cc: LKML
Hi,
[trimmed recipient list]
On Wed, Jan 16, 2013 at 11:12:09PM +0100, Frederic Weisbecker wrote:
> 2013/1/16 Andreas Mohr <andi@lisas.de>:
> > Hell yeah that does sound like a potential candidate to me.
> >
> > Andreas Mohr
>
> I doubt it. I don't see a sound driver using struct irq_work:
>
> $git grep -F "struct irq_work" drivers/ sound/
Even a more liberal search comes up similar.
I didn't know that irq_work is a somewhat more specific mechanism,
thank you for the clarification!
Leaves me wondering what actually could be responsible for this...
(perhaps even a userland bug i.e. PA buffer replenishing issues)
Oh well...
Andreas Mohr
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [GIT PULL] irq_work changes for 3.9
2013-01-16 14:17 [GIT PULL] irq_work changes for 3.9 Frederic Weisbecker
2013-01-16 22:04 ` Andreas Mohr
@ 2013-01-24 11:51 ` Ingo Molnar
1 sibling, 0 replies; 5+ messages in thread
From: Ingo Molnar @ 2013-01-24 11:51 UTC (permalink / raw)
To: Frederic Weisbecker
Cc: LKML, Steven Rostedt, Peter Zijlstra, Thomas Gleixner,
Andrew Morton
* Frederic Weisbecker <fweisbec@gmail.com> wrote:
> Hi Ingo,
>
> The printk changes for full dynticks support are still pending while
> we don't know Linus's opinion about these. Meanwhile here is the
> part of it that I think is uncontroversial. This way we can make
> the next submission attempt to Linus a bit more simple.
>
> These three patches are general fixes for irq work. The two first
> patches fix tight races on global irq work claiming that prevent the irq work
> subsystem from dropping a work enqueuing attempt because it thinks it's
> already pending while it may be already executing or executed.
>
> The last patch just extends irq work support everywhere. It's also a
> kconfig cleanup.
>
> The branch can be found at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
> core/irq_work
>
> Head is: 6147a9d8070e1c9d16d57eb53a14942b95b28dc4
>
> Thanks.
>
> ---
> Frederic Weisbecker (3):
> irq_work: Fix racy IRQ_WORK_BUSY flag setting
> irq_work: Fix racy check on work pending flag
> irq_work: Remove CONFIG_HAVE_IRQ_WORK
>
> arch/alpha/Kconfig | 1 -
> arch/arm/Kconfig | 1 -
> arch/arm64/Kconfig | 1 -
> arch/blackfin/Kconfig | 1 -
> arch/frv/Kconfig | 1 -
> arch/hexagon/Kconfig | 1 -
> arch/mips/Kconfig | 1 -
> arch/parisc/Kconfig | 1 -
> arch/powerpc/Kconfig | 1 -
> arch/s390/Kconfig | 1 -
> arch/sh/Kconfig | 1 -
> arch/sparc/Kconfig | 1 -
> arch/x86/Kconfig | 1 -
> drivers/staging/iio/trigger/Kconfig | 1 -
> init/Kconfig | 4 ----
> kernel/irq_work.c | 21 +++++++++++++++------
> 16 files changed, 15 insertions(+), 24 deletions(-)
Pulled into tip:irq/core, thanks Frederic!
Ingo
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-01-24 11:57 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-16 14:17 [GIT PULL] irq_work changes for 3.9 Frederic Weisbecker
2013-01-16 22:04 ` Andreas Mohr
2013-01-16 22:12 ` Frederic Weisbecker
2013-01-16 22:48 ` Andreas Mohr
2013-01-24 11:51 ` Ingo Molnar
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox