From: Peter Zijlstra <a.p.zijlstra@chello.nl>
To: "Metzger, Markus T" <markus.t.metzger@intel.com>
Cc: Ingo Molnar <mingo@elte.hu>,
"tglx@linutronix.de" <tglx@linutronix.de>,
"hpa@zytor.com" <hpa@zytor.com>,
"markus.t.metzger@gmail.com" <markus.t.metzger@gmail.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Paul Mackerras <paulus@samba.org>
Subject: RE: [discuss] BTS overflow handling, was: [PATCH] perf_counter: Fix a race on perf_counter_ctx
Date: Tue, 01 Sep 2009 16:35:45 +0200 [thread overview]
Message-ID: <1251815745.7547.33.camel@twins> (raw)
In-Reply-To: <928CFBE8E7CB0040959E56B4EA41A77EC46CF2A6@irsmsx504.ger.corp.intel.com>
On Tue, 2009-09-01 at 15:27 +0100, Metzger, Markus T wrote:
> >> >> I do need 3 buffers of 2048 entries = 3x48 pages per cpu, though.
> >> >
> >> >And those pages have to be contiguous too, right? That's an order-6
> >> >alloc, painful.
> >>
> >>
> >> According to an earlier discussion with Roland, they don't have to.
> >> They still need to be locked, though.
> >> According to some other discussion with Andrew and Ingo, I still use
> >> kmalloc to allocate those buffers.
> >
> >Section 18.18.5 of book 3B says the DS buffer base is a linear address.
> >This suggests each buffer does need contiguous pages.
> >
> >48 contiguous pages constitutes an order-6 allocation (64 pages), which
> >is unreliable at best.
>
> Roland argued that this means virtually contiguous, not physically.
Sure it does, but either you use the linear kernel map, or use vmap.
vmap doesn't sound like very good idea.
> >> When I use schedule_work() instead, how would I ensure that the work is done
> >> before the traced (or tracing) task is rescheduled?
> >
> >No, basically the only thing left is softirqs, which can be preempted by
> >hardirqs, but that's a horrid hack too, esp since processing the BTS
> >outside of the handler will basically result in the BTS tracing its own
> >processing, generating even more data to process.
>
> I would have disabled perf on that cpu; it won't work, otherwise,
> since the draining code alone would generate more trace than fits into
> a buffer. I would need to disable preemption, though.
>
> Are you saying that schedule_work() won't work? It will quite likely be very
> lossy, but why won't it work at all?
>
> How would that softirq approach work? Could you point me to some reference
> code?
Look at the tasklet stuff I guess. Look at tasklet_hi_schedule() and co.
next prev parent reply other threads:[~2009-09-01 14:35 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-21 13:56 [patch] x86, perf_counter, bts: add bts to perf_counter Markus Metzger
2009-08-04 10:24 ` Peter Zijlstra
2009-08-04 11:14 ` Ingo Molnar
2009-08-04 11:35 ` Ingo Molnar
2009-08-05 11:10 ` Metzger, Markus T
2009-08-07 7:29 ` Metzger, Markus T
2009-08-07 8:21 ` Peter Zijlstra
2009-08-07 10:18 ` Metzger, Markus T
2009-08-07 10:29 ` Peter Zijlstra
2009-08-07 12:18 ` Metzger, Markus T
2009-08-07 13:05 ` Peter Zijlstra
2009-08-07 10:31 ` Ingo Molnar
2009-08-07 10:36 ` Ingo Molnar
2009-08-07 10:57 ` Metzger, Markus T
2009-08-07 11:17 ` Metzger, Markus T
2009-08-07 11:24 ` Ingo Molnar
2009-08-07 11:33 ` Ingo Molnar
2009-08-07 17:49 ` [PATCH] perf_counter: Fix a race on perf_counter_ctx Peter Zijlstra
2009-08-08 11:52 ` [tip:perfcounters/core] " tip-bot for Peter Zijlstra
2009-08-08 12:03 ` [PATCH] " Ingo Molnar
2009-08-10 12:33 ` Metzger, Markus T
2009-08-10 12:59 ` Peter Zijlstra
2009-08-10 13:46 ` Ingo Molnar
2009-08-11 6:33 ` Metzger, Markus T
2009-08-11 8:59 ` Metzger, Markus T
2009-08-18 12:49 ` Metzger, Markus T
2009-08-18 12:59 ` Peter Zijlstra
2009-08-18 12:59 ` Peter Zijlstra
2009-08-18 13:20 ` Metzger, Markus T
2009-08-18 13:37 ` Peter Zijlstra
2009-08-18 13:54 ` Metzger, Markus T
2009-08-18 14:00 ` Ingo Molnar
2009-08-18 14:15 ` Metzger, Markus T
2009-08-28 9:56 ` Metzger, Markus T
2009-09-01 11:17 ` [discuss] BTS overflow handling, was: " Metzger, Markus T
2009-09-01 13:00 ` Peter Zijlstra
2009-09-01 13:09 ` Ingo Molnar
2009-09-01 13:32 ` Metzger, Markus T
2009-09-01 13:53 ` Peter Zijlstra
2009-09-01 14:27 ` Metzger, Markus T
2009-09-01 14:35 ` Peter Zijlstra [this message]
2009-09-03 14:25 ` Metzger, Markus T
2009-08-18 14:01 ` Peter Zijlstra
2009-08-18 14:19 ` Metzger, Markus T
2009-08-09 11:10 ` [tip:perfcounters/core] " tip-bot for Peter Zijlstra
2009-08-07 11:26 ` [patch] x86, perf_counter, bts: add bts to perf_counter Ingo Molnar
2009-08-07 11:29 ` Ingo Molnar
2009-08-07 12:14 ` Metzger, Markus T
2009-08-07 11:19 ` Ingo Molnar
2009-08-07 11:34 ` Metzger, Markus T
2009-08-07 11:37 ` Metzger, Markus T
2009-08-04 11:37 ` [tip:perfcounters/urgent] x86, perf_counter, bts: Add BTS support to perfcounters tip-bot for Markus Metzger
2009-08-07 10:10 ` [tip:perfcounters/core] " tip-bot for Markus Metzger
2009-08-08 11:43 ` tip-bot for Markus Metzger
2009-08-08 11:53 ` tip-bot for Markus Metzger
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=1251815745.7547.33.camel@twins \
--to=a.p.zijlstra@chello.nl \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=markus.t.metzger@gmail.com \
--cc=markus.t.metzger@intel.com \
--cc=mingo@elte.hu \
--cc=paulus@samba.org \
--cc=tglx@linutronix.de \
/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.