public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Cyrill Gorcunov <gorcunov@gmail.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: Don Zickus <dzickus@redhat.com>,
	Stephane Eranian <eranian@google.com>,
	Lin Ming <ming.m.lin@intel.com>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Arnaldo Carvalho de Melo <acme@redhat.com>,
	Frederic Weisbecker <fweisbec@gmail.com>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH -tip, final] perf, x86: Add hw_watchdog_set_attr() in a sake of nmi-watchdog on P4
Date: Tue, 5 Jul 2011 17:26:51 +0400	[thread overview]
Message-ID: <20110705132651.GA3859@sun> (raw)
In-Reply-To: <20110705131005.GA5843@elte.hu>

On Tue, Jul 05, 2011 at 03:10:05PM +0200, Ingo Molnar wrote:
> 
> * Cyrill Gorcunov <gorcunov@gmail.com> wrote:
> 
> > perf, x86: P4 PMU - Add hw_watchdog_set_attr helper to simulate cpu-cycles counting in nmi-watchdog
> > 
> > Because of constraints existed in Netburst PMU counting
> > cpu cycles is allowed for one consumer only.
> > 
> > If the kernel is booted up with nmi-watchdog enabled
> > the watchdog become a consumer of such event and there
> > is no more room left for "perf top" and friends (ie any
> > attempts to count cpu cycles simultaneously with nmi-watchdog
> > doomed to fail).
> 
> Hm, what is the symptom - 'perf top' reports nothing?

Exactly, last time I had access to p4 machine (about 2 month
ago I think) with nmi-watchdog enabled perf top simply rendered
empty screen with standart header on top.

> 
> If multiple users request cycles then perf will time-share them - 
> this is what happens if you run many 'perf top' or 'perf stat' 
> sessions in parallel for example. For example i just tried to run six 
> separate 'perf top' in parallel - and all six worked fine.
> 
> So the question is, why does the NMI watchdog prevent 'perf top' from 
> working on a P4?
>

Because core and nehalem can use two cpu-cycles counters simultaneously
counting same event, and when nmi-watchdog is enabled on such pmus the one
counter assigned to nmi-watchdog, a second counter assigned to perf top and friends.
And nmi-watchdog event is "never released" event as far as I remember,
it runs all the time while system works.

In P4 every event has a restriction on which counter it can run and which
assitional registers it can use. So once nmi-watchdog has borrowed an event
(and associated resurses) noone else can access to these resources forever,
and hence perf top fails since it tries to gain access to same event.

	Cyrill

  parent reply	other threads:[~2011-07-05 13:26 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-05 10:03 [PATCH -tip, final] perf, x86: Add hw_watchdog_set_attr() in a sake of nmi-watchdog on P4 Cyrill Gorcunov
2011-07-05 10:20 ` Ingo Molnar
2011-07-05 10:34   ` Cyrill Gorcunov
2011-07-05 10:59     ` Ingo Molnar
2011-07-05 11:05       ` Cyrill Gorcunov
2011-07-05 11:20         ` Ingo Molnar
2011-07-05 11:36           ` Cyrill Gorcunov
2011-07-05 11:44             ` Ingo Molnar
2011-07-05 11:49               ` Cyrill Gorcunov
2011-07-05 12:14                 ` Cyrill Gorcunov
2011-07-05 13:10                   ` Ingo Molnar
2011-07-05 13:17                     ` Peter Zijlstra
2011-07-05 13:31                       ` Ingo Molnar
2011-07-05 14:19                         ` Cyrill Gorcunov
2011-07-08 12:44                           ` Ingo Molnar
2011-07-05 14:20                         ` Peter Zijlstra
2011-07-05 14:40                         ` Peter Zijlstra
2011-07-05 14:56                           ` Ingo Molnar
2011-07-05 15:25                             ` Cyrill Gorcunov
2011-07-06  7:01                               ` Cyrill Gorcunov
2011-07-08 12:49                               ` Ingo Molnar
2011-07-08 13:01                                 ` Cyrill Gorcunov
2011-07-08 13:09                                   ` Ingo Molnar
2011-07-08 13:12                                   ` Cyrill Gorcunov
2011-07-05 13:26                     ` Cyrill Gorcunov [this message]
2011-07-05 12:24               ` Don Zickus
2011-07-05 12:26                 ` Cyrill Gorcunov
2011-07-05 12:44                   ` Don Zickus
2011-07-05 12:56                     ` Cyrill Gorcunov

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=20110705132651.GA3859@sun \
    --to=gorcunov@gmail.com \
    --cc=a.p.zijlstra@chello.nl \
    --cc=acme@redhat.com \
    --cc=dzickus@redhat.com \
    --cc=eranian@google.com \
    --cc=fweisbec@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ming.m.lin@intel.com \
    --cc=mingo@elte.hu \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox