From: Frederic Weisbecker <fweisbec@gmail.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Ingo Molnar <mingo@kernel.org>, Kevin Hilman <khilman@linaro.org>,
"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
Thomas Gleixner <tglx@linutronix.de>,
Viresh Kumar <viresh.kumar@linaro.org>
Subject: Re: [PATCH 1/3] irq_work: Implement remote queueing
Date: Wed, 14 May 2014 15:51:19 +0200 [thread overview]
Message-ID: <20140514135116.GD1278@localhost.localdomain> (raw)
In-Reply-To: <20140514124150.GB11096@twins.programming.kicks-ass.net>
On Wed, May 14, 2014 at 02:41:50PM +0200, Peter Zijlstra wrote:
> On Wed, May 14, 2014 at 02:11:25PM +0200, Frederic Weisbecker wrote:
> > > I don't think it is, most apic calls do apic_wait_icr_idle() then the
> > > apic op, if an NMI happens in between and writes to the APIC, the return
> > > context will see a !idle icr and fail.
> > >
> > > This is why arch_irq_work_raise() again idles the icr after sending the
> > > IPI.
> > >
> > > Also, I think, seeing what benh said earlier, its unsafe for other archs
> > > too.
> >
> > Ah I don't know much these archs details, so I concede it.
>
> Yeah, I didn't either, had to figure it out when someone asked WTH there
> was an wait_icr_idle call in there.
>
> > > Then do the remote irq_work_raised thing. But it really stinks you broke
> > > this very nice and simple thing.
> >
> > I tried not to break boot with printk overhead. That said I've considered having
> > a very simple "tick work" that can rely on irq work when the tick is stopped
> > and use it for printk. That would restore the initial simplicity.
>
> But but but.. did you even try without the lazy thing?
>
> Don't fix what ain't broken, keep it simple, etc..
The problem is that I may well see no significant issues in my small and common hardware
but the problem may hit on boxes with specific configs or big numbers of CPUs.
"Don't fix what ain't broken" here clashes with "lets stay conservative/paranoid"
to avoid bringing new bugs. Before printk used irq_work we had printk_tick(),
I simply kept the old behaviour to avoid breaking boot time on other boxes.
>
> Anyway, if it turns out to really be needed, the split list doesn't
> sound bad.
Either that or we can remove LAZY stuff and wait to see if people complain :)
>
> > > > Also note that nohz is the only user for now and irq_work_claim() thus
> > > > prevents from double IPI. Of course if more users come up the issue arise
> > > > again.
> > >
> > > DANGER, half arsed engineering at work, seriously? Just write proper
> > > code already.
> > >
> > > There's no fucking way the next user will check the implementation to
> > > make sure its 'sane'.
> >
> > Are you competing with tglx on grumpiness? You guys are free to treat us
> > like shit but don't be surprised if one day you'll be alone in kernel/*
>
> There's really only so much nonsense one can take on any one day before
> getting seriously grumpy.
>
> And arguing that because there's only one user so we can skimp a core
> function really tops the day.
>
> So maybe I need a holiday, but shees.
next prev parent reply other threads:[~2014-05-14 13:51 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-13 22:25 [PATCH 0/3] nohz: Move nohz kick out of scheduler IPI, v5 Frederic Weisbecker
2014-05-13 22:25 ` [PATCH 1/3] irq_work: Implement remote queueing Frederic Weisbecker
2014-05-14 9:06 ` Peter Zijlstra
2014-05-14 9:10 ` Peter Zijlstra
2014-05-14 11:38 ` Frederic Weisbecker
2014-05-14 11:54 ` Peter Zijlstra
2014-05-14 12:11 ` Frederic Weisbecker
2014-05-14 12:41 ` Peter Zijlstra
2014-05-14 13:51 ` Frederic Weisbecker [this message]
2014-05-14 13:55 ` Peter Zijlstra
2014-05-14 14:28 ` Thomas Gleixner
2014-05-13 22:25 ` [PATCH 2/3] nohz: Move full nohz kick to its own IPI Frederic Weisbecker
2014-05-13 22:25 ` [PATCH 3/3] nohz: Use IPI implicit full barrier against rq->nr_running r/w Frederic Weisbecker
2014-05-14 9:09 ` Peter Zijlstra
2014-05-14 11:38 ` Frederic Weisbecker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140514135116.GD1278@localhost.localdomain \
--to=fweisbec@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=khilman@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=paulmck@linux.vnet.ibm.com \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=viresh.kumar@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.