linux-mips
[Top] [All Lists]

Re: [PATCH v5 06/12] MIPS: add support for hardware performance events (

To: Deng-Cheng Zhu <dengcheng.zhu@gmail.com>
Subject: Re: [PATCH v5 06/12] MIPS: add support for hardware performance events (mipsxx)
From: David Daney <david.s.daney@gmail.com>
Date: Thu, 27 May 2010 15:44:39 -0700
Cc: linux-mips@linux-mips.org, ralf@linux-mips.org, a.p.zijlstra@chello.nl, paulus@samba.org, mingo@elte.hu, acme@redhat.com, jamie.iles@picochip.com, will.deacon@arm.com
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from :user-agent:mime-version:to:cc:subject:references:in-reply-to :content-type:content-transfer-encoding; bh=ncugqt7P4mtV12qPPUzr1ozYrp/ObhUghqz71kKOsCk=; b=H7tCRGZ7Co4d+0hxmNiQ7aOR+YX8AreuWHc6Ge3ihKIUWmuLaLxzi3TlpF29DdN5lc pgNzpCxqh1sCkXt48d3q5XhrRPR1cFtckfor1QpkYZdBwYBqYRK6Q5CfV03PdMB5fwxe QQssWRY29TW41i9FIPX8jr5N4wf8ST634hRGQ=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; b=okfwZyanvLpW5qKghT097/gvLJCprC/Yh4GxnXY3LjKpwMilziJsPRvFL7w/HoiIpj +HtpICQSbkL19WG7y7hBeXoKHkkh99Yap3+1jcA4N2t+Jx8VfkORVVaiWXEXujVl3tRC 2/3xnR4XPuikE8PsM9fYY3VZOogH7j0dwVMCY=
In-reply-to: <1274965420-5091-7-git-send-email-dengcheng.zhu@gmail.com>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <1274965420-5091-1-git-send-email-dengcheng.zhu@gmail.com> <1274965420-5091-7-git-send-email-dengcheng.zhu@gmail.com>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.9) Gecko/20100330 Fedora/3.0.4-1.fc12 Thunderbird/3.0.4
On 05/27/2010 06:03 AM, Deng-Cheng Zhu wrote:
This patch adds the mipsxx Perf-event support based on the skeleton.
Generic hardware events and cache events are now fully implemented for
the 24K/34K/74K/1004K cores. To support other cores in mipsxx (such as
R10000/SB1), the generic hardware event tables and cache event tables
need to be filled out. To support other CPUs which have different PMU
than mipsxx, such as RM9000 and LOONGSON2, the additional files
perf_event_$cpu.c need to be created.

To test the functionality of Perf-event, you may want to compile the tool
"perf" for your MIPS platform. You can refer to the following URL:
http://www.linux-mips.org/archives/linux-mips/2010-04/msg00158.html

Please note: Before that patch is accepted, you can choose a "specific"
rmb() which is suitable for your platform -- an example is provided in
the description of that patch.

You also need to customize the CFLAGS and LDFLAGS in tools/perf/Makefile
for your libs, includes, etc.

In case you encounter the boot failure in SMVP kernel on multi-threading
CPUs, you may take a look at:
http://www.linux-mips.org/git?p=linux-mti.git;a=commitdiff;h=5460815027d802697b879644c74f0e8365254020

Signed-off-by: Deng-Cheng Zhu<dengcheng.zhu@gmail.com>
---
  arch/mips/kernel/perf_event.c        |    2 +
  arch/mips/kernel/perf_event_mipsxx.c |  719 ++++++++++++++++++++++++++++++++++
  2 files changed, 721 insertions(+), 0 deletions(-)
  create mode 100644 arch/mips/kernel/perf_event_mipsxx.c


General comments:

Can you separate the code that reads and writes the performance counter registers from the definitions of the various counters themselves?

Also take into account that the counter registers may be either 32 or 64 bits wide. The interfaces you are defining should take that into account even if the specific implementations only work with 32-bit registers.

Thanks,
David Daney

<Prev in Thread] Current Thread [Next in Thread>