From: Maynard Johnson <maynardj@us.ibm.com>
To: linux-kernel@vger.kernel.org
Subject: [RFC, PATCH 1/2] OProfile for Cell: Initial profiling support
Date: Fri, 10 Nov 2006 10:48:05 -0600 [thread overview]
Message-ID: <4554AD45.9080008@us.ibm.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 1 bytes --]
[-- Attachment #2: oprof-cell-header.diff --]
[-- Type: text/plain, Size: 3088 bytes --]
Utility macros, declarations, etc, to support Oprofile for Cell.
Signed-Off-By: Maynard Johnson <mpjohn@us.ibm.com>
Index: linux-2.6.18/arch/powerpc/oprofile/cell/perf_utils.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6.18/arch/powerpc/oprofile/cell/perf_utils.h 2006-11-08 21:33:27.178161224 -0600
@@ -0,0 +1,113 @@
+/*
+ * perf_utils.h
+ *
+ * This file contains useful macros, declarations, etc. used
+ * by OProfile for the Cell Broadband Engine.
+ *
+ * (C) Copyright IBM Corporation 2006
+ *
+ * Authors: Maynard Johnson <maynardj@us.ibm.com>
+ */
+
+#ifndef PERF_UTILS_H
+#define PERF_UTILS_H
+
+#define UNUSED_WORD ~0
+
+/* This macro should be used with care as it NR_CPUS is
+ * a maximum value that may not be accurate at runtime.
+ */
+#define NR_NODES (NR_CPUS >> 1)
+
+/* FIXME: I don't know if there's a _real_ macro or
+ * function for determining whether or not SMT is enabled.
+ */
+#define is_smt() 1
+
+#define PPU_CYCLES_EVENT_NUM 1 /* event number for PPU_CYCLES */
+#define CBE_COUNT_ALL_CYCLES 0x42800000 /* PPU cycle event specifier */
+
+#define NUM_THREADS 2
+#define NUM_CNTRS 4
+#define VIRT_CNTR_SW_TIME_NS 100000000 // 0.5 seconds
+
+#define CBE_COUNT_SUPERVISOR_MODE 0
+#define CBE_COUNT_HYPERVISOR_MODE 1
+#define CBE_COUNT_PROBLEM_MODE 2
+#define CBE_COUNT_ALL_MODES 3
+
+/* Macros for the pm07_control registers. */
+#define PM07_CTR_INPUT_MUX(x) ((((x) & 1) << 26) & 0x3f)
+#define PM07_CTR_INPUT_CONTROL(x) (((x) & 1) << 25)
+#define PM07_CTR_POLARITY(x) (((x) & 1) << 24)
+#define PM07_CTR_COUNT_CYCLES(x) (((x) & 1) << 23)
+#define PM07_CTR_ENABLE(x) (((x) & 1) << 22)
+
+
+struct pmc_cntrl_data {
+ unsigned long vcntr;
+ unsigned long evnts;
+ unsigned long masks;
+ unsigned long enabled;
+};
+
+/*
+ * ibm,cbe-perftools rtas parameters
+ */
+
+struct pm_signal {
+ u16 cpu; /* Processor to modify */
+ u16 sub_unit; /* hw subunit this applies to (if applicable) */
+ u16 signal_group; /* Signal Group to Enable/Disable */
+ u8 bus_word; /* Enable/Disable on this Trace/Trigger/Event
+ Bus Word(s) (bitmask) */
+ u8 bit; /* Trigger/Event bit (if applicable) */
+};
+
+/*
+ * rtas call arguments
+ */
+enum {
+ SUBFUNC_RESET = 1,
+ SUBFUNC_ACTIVATE = 2,
+ SUBFUNC_DEACTIVATE = 3,
+
+ PASSTHRU_IGNORE = 0,
+ PASSTHRU_ENABLE = 1,
+ PASSTHRU_DISABLE = 2,
+};
+
+struct pm_cntrl {
+ short int enable;
+ short int stop_at_max;
+ short int trace_mode;
+ short int freeze;
+ short int count_mode;
+};
+
+static struct {
+ u32 group_control;
+ u32 debug_bus_control;
+ struct pm_cntrl pm_cntrl;
+ u32 pm07_cntrl[OP_MAX_COUNTER];
+} pm_regs;
+
+struct oprofile_umask {
+ union {
+ u32 val;
+ struct {
+ u32 pad1:16;
+ u32 sub_unit:4;
+ u32 pad2:2;
+ u32 bus_type:2;
+ u32 bus_word:4;
+ u32 pad3:1;
+ u32 input_control:1;
+ u32 polarity:1;
+ u32 count_cycles:1;
+ };
+ };
+};
+
+
+#endif // PERF_UTILS_H
reply other threads:[~2006-11-10 16:48 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=4554AD45.9080008@us.ibm.com \
--to=maynardj@us.ibm.com \
--cc=linux-kernel@vger.kernel.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.