Hi, Here are a few more Perfmon/Cell patches. The first few are simple cleanups in the Cell code (and a few things in other areas). The 5th patch is the long overdue Cell hardware-sampling module. A lot of that code may not be easy to folllow unless you're familiar with the Cell PMU, so please ask questions if something isn't obvious.
The 6th and 7th patches are versions of the patches posted by Takaki Azuma last week that I made some modifications to. Azuma-san, these address some of the questions I posted in the last few days. Please review those two patches and let me know if you agree with the changes, or if there's something I may have left out. I believe the overall functionality should be equivalent to what you posted last week. All patches are against Stephane's new GIT tree. 1/7: Simple whitespace and comment cleanups. 2/7: The handle_trace_buffer_interrupts() routine does not need the ctx_arch argument. 3/7: This switch statement in perfmon/perfmon.c doesn't seem to have any effect, so we should be be able to remove it. 4/7: Add macros for the bit-fields in the pm_status register. 5/7: Add the Cell hardware-sampling module. The Cell PMU provides a hardware buffer that can store up to 1024 128-bit samples. There are several possible data formats for each sample, based on the type of sampling the user selects. These include several types of counter- based sampling modes, a few address tracing modes, and a thermal data mode. All of these sampling modes are based on a hardware timer. However, this does not fit well into the general Perfmon design for the sampling-format modules, which is to collect samples based on counter overflows. Therefore, some of the sample collection code is "duplicated" in order to deal with the restrictions imposed by the Cell PMU. In order to do this, the pfm_mask_monitoring() and pfm_get_new_msg() routines in the Perfmon core code had to be exported so this module could call them. 6/7: Add register definitions to the Cell MMIO register structures that are needed by the Cell signal-routing patch. This is a modification of the patch posted on the cbe-oss-dev mailing list by Takaki Azuma ([EMAIL PROTECTED]) and Takayuki Uchikawa ([EMAIL PROTECTED]). Only the registers that are used by the new Perfmon/Cell code are included in this version. 7/7: Add in-kernel debug-bus signal routing for Cell systems that do not include firmware with the "ibm,cbe-perftools" RTAS call. This code only handles two signal-groups: PPU Instruction Unit (Group 1) and PPU Execution Unit. This is a modification of the patches posted by Takaki Azuma ([EMAIL PROTECTED]) and Takayuki Uchikawa ([EMAIL PROTECTED]). The code from perfmon_cell_signals.c and perfmon_cell_signals.h has been merged into perfmon_cell.c. Having the multiple files causes headaches with the kernel build when perfmon_cell is configured as a module. The additional code is only about 300 lines, so I think it's reasonable to include it in the same file as the existing code. Other minor changes and bug-fixes were also made. Thanks, -- Kevin Corry [EMAIL PROTECTED] http://www.ibm.com/linux/ _______________________________________________ perfmon mailing list [email protected] http://www.hpl.hp.com/hosted/linux/mail-archives/perfmon/
