public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Robert Richter <robert.richter@amd.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: "Arjan van de Ven" <arjan@infradead.org>,
	"Peter Zijlstra" <a.p.zijlstra@chello.nl>,
	"Linus Torvalds" <torvalds@linux-foundation.org>,
	"Paul Mackerras" <paulus@samba.org>,
	LKML <linux-kernel@vger.kernel.org>,
	oprofile-list <oprofile-list@lists.sourceforge.net>,
	"Arnaldo Carvalho de Melo" <acme@redhat.com>,
	"Frédéric Weisbecker" <fweisbec@gmail.com>,
	"Mike Galbraith" <efault@gmx.de>,
	"H. Peter Anvin" <hpa@zytor.com>,
	"Thomas Gleixner" <tglx@linutronix.de>
Subject: Re: [PATCH 0/26] oprofile: Performance counter multiplexing
Date: Wed, 5 Aug 2009 14:35:01 +0200	[thread overview]
Message-ID: <20090805123501.GF14610@erda.amd.com> (raw)
In-Reply-To: <20090804201109.GA21386@elte.hu>

On 04.08.09 22:11:09, Ingo Molnar wrote:
> 
> * Arjan van de Ven <arjan@infradead.org> wrote:
> 
> > On Mon, 3 Aug 2009 13:22:20 +0200
> > Ingo Molnar <mingo@elte.hu> wrote:
> > > 
> > > This new oprofile multiplexing mechanism really overlaps the PMU 
> > > abstractions that perfcounters already provide, and i disagree 
> > > with this general direction. The code you wrote is clean though 
> > > so i've
> > 
> > is there any way that the oprofile interfaces can be written on 
> > top of the low level perf infrastructure?
> 
> Everything 'can' be done - the question is, is that the best 
> approach? The technically best interface to utilize perfcounters is 
> not to whack it into the oprofile kernel code, but to minimally 
> update the oprofile user-space code (the sample collection daemon) 
> to use the sys_perf_counter_open() system call.
> 
> It is by far the most elegant solution and needs no kernel changes 
> at all:
> 
> The oprofile daemon should open percpu sampling counters and create 
> oprofile-compatible sample files. That way the rest of the oprofile 
> user-space does not have to be touched at all. The raw event ids 
> that oprofile knows about can be used in perfcounter parameters 
> directly.
> 
> In such a mode of operation both oprofilefs and the dcookies syscall 
> can be omitted completely - all of the kernel side oprofile code 
> becomes mooted and pushed into legacy mode.
> 
> Is there any reason or oprofile property that makes this impossible 
> or undesirable to do?

The question is more if it makes sense. It's new to me dropping
user/kernel interfaces that are in use and forcing its developers to
rewrite their code. Oprofile is actively developed and in many
distros. It supports architectures perfcounters doesn't. So, what do
you want?

And why not having more than one profiling subsystem in the kernel? I
see also more than one type of car on the street though all of them
have 4 wheels.

-Robert

-- 
Advanced Micro Devices, Inc.
Operating System Research Center
email: robert.richter@amd.com


  reply	other threads:[~2009-08-05 12:35 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-28 17:07 [PATCH 0/26] oprofile: Performance counter multiplexing Robert Richter
2009-07-28 17:07 ` [PATCH 01/26] x86/oprofile: Rework and simplify nmi_cpu_setup() Robert Richter
2009-07-28 17:07 ` [PATCH 02/26] x86/oprofile: Whitespaces changes only Robert Richter
2009-07-28 17:07 ` [PATCH 03/26] oprofile: Implement performance counter multiplexing Robert Richter
2009-07-28 17:07 ` [PATCH 04/26] x86/oprofile: Fix usage of NUM_CONTROLS/NUM_COUNTERS macros Robert Richter
2009-07-28 17:07 ` [PATCH 05/26] x86/oprofile: Use per_cpu() instead of __get_cpu_var() Robert Richter
2009-07-28 17:07 ` [PATCH 06/26] x86/oprofile: Fix initialization of switch_index Robert Richter
2009-07-28 17:07 ` [PATCH 07/26] oprofile: oprofile_set_timeout(), return with error for invalid args Robert Richter
2009-07-28 17:07 ` [PATCH 08/26] oprofile: Rename variable timeout_jiffies and move to oprofile_files.c Robert Richter
2009-07-28 17:07 ` [PATCH 09/26] oprofile: Remove oprofile_multiplexing_init() Robert Richter
2009-07-28 17:07 ` [PATCH 10/26] oprofile: Grouping multiplexing code in oprof.c Robert Richter
2009-07-28 17:07 ` [PATCH 11/26] oprofile: Introduce op_x86_phys_to_virt() Robert Richter
2009-07-28 17:07 ` [PATCH 12/26] oprofile: Grouping multiplexing code in op_model_amd.c Robert Richter
2009-07-28 17:07 ` [PATCH 13/26] x86/oprofile: Implement multiplexing setup/shutdown functions Robert Richter
2009-07-28 17:07 ` [PATCH 14/26] x86/oprofile: Moving nmi_setup_cpu_mux() in nmi_int.c Robert Richter
2009-07-28 17:07 ` [PATCH 15/26] x86/oprofile: Moving nmi_cpu_save/restore_mpx_registers() " Robert Richter
2009-07-28 17:07 ` [PATCH 16/26] x86/oprofile: Moving nmi_cpu_switch() " Robert Richter
2009-07-28 17:07 ` [PATCH 17/26] x86/oprofile: Remove const qualifier from struct op_x86_model_spec Robert Richter
2009-07-28 17:07 ` [PATCH 18/26] x86/oprofile: Remove unused num_virt_controls " Robert Richter
2009-07-28 17:07 ` [PATCH 19/26] x86/oprofile: Modify initialization of num_virt_counters Robert Richter
2009-07-28 17:07 ` [PATCH 20/26] x86/oprofile: Add function has_mux() to check multiplexing support Robert Richter
2009-07-28 17:07 ` [PATCH 21/26] x86/oprofile: Enable multiplexing only if the model supports it Robert Richter
2009-07-28 17:07 ` [PATCH 22/26] x86/oprofile: Implement mux_clone() Robert Richter
2009-07-28 17:07 ` [PATCH 23/26] oprofile: Adding switch counter to oprofile statistic variables Robert Richter
2009-07-28 17:07 ` [PATCH 24/26] x86/oprofile: Implement op_x86_virt_to_phys() Robert Richter
2009-07-28 17:07 ` [PATCH 25/26] x86/oprofile: Add counter reservation check for virtual counters Robert Richter
2009-07-28 17:07 ` [PATCH 26/26] x86/oprofile: Small coding style fixes Robert Richter
2009-07-28 18:45 ` [PATCH 0/26] oprofile: Performance counter multiplexing Andi Kleen
2009-07-28 22:18   ` Suthikulpanit, Suravee
2009-08-03 11:22 ` Ingo Molnar
2009-08-03 14:25   ` Arjan van de Ven
2009-08-04 20:11     ` Ingo Molnar
2009-08-05 12:35       ` Robert Richter [this message]
2009-08-06  7:31         ` Pekka Enberg
2009-08-06 10:51           ` Ingo Molnar
2009-08-13 16:13             ` Robert Richter
     [not found]           ` <20090806105134.GD11236__37984.4768475325$1249556453$gmane$org@elte.hu>
2010-02-26 14:51             ` Andi Kleen
2010-03-05 16:46               ` Robert Richter
2010-03-05 17:01                 ` Steven Rostedt
2010-03-08  3:51                 ` Andi Kleen
2009-08-03 16:30   ` Robert Richter
2009-08-04 17:05     ` Ingo Molnar

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=20090805123501.GF14610@erda.amd.com \
    --to=robert.richter@amd.com \
    --cc=a.p.zijlstra@chello.nl \
    --cc=acme@redhat.com \
    --cc=arjan@infradead.org \
    --cc=efault@gmx.de \
    --cc=fweisbec@gmail.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=oprofile-list@lists.sourceforge.net \
    --cc=paulus@samba.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox