Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12:Update
paflib
paflib.fix_broken_EBB_sample_period.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File paflib.fix_broken_EBB_sample_period.patch of Package paflib
commit 2138795d4b23884b21c34f789d0450f6ad15e7e4 Author: Maynard Johnson <maynardj@us.ibm.com> Date: Tue Jun 10 14:24:41 2014 -0500 ebb: Fix broken EBB sample period The current implementation of reset_pmcs() in ebb/ebb-priv.h takes the stored sample_period (passed by the user) and does the following: mtspr(PMC<n>, sample_period) for each PMC, 1-6. Performance monitor interrupts are generated wheni the value in an enabled PMC transitions to where the most significant bit becomes '1'. If a user wants to get an event based interrupt, say, every 1,000,000 cycles, then the PMC should be configured to count the cycles event and its initial value should be set to 0x80000000 - 1000000. With an initial value set this way, after 1 million cycles events occur, the PMC value will transition to the value 0x80000000 and generate an interrupt. The patch fixes the library code to perform this calculation, instead of expecting clients of the library to do it (which most would not know, and it's certainly not documented that it's required). diff --git a/ebb/ebb-priv.h b/ebb/ebb-priv.h index ec5b127..65f9863 100644 --- a/ebb/ebb-priv.h +++ b/ebb/ebb-priv.h @@ -180,6 +180,13 @@ static inline attribute_alwaysinline void reset_pmcs (uint32_t sample_period) { + /* Performance monitor interrupts are generated when the value in an enabled + PMC transitions to where the most significant bit becomes '1'. If a useri + wants to get an event based interrupt, say, every 1,000,000 cycles, then + the PMC should be configured to count the cycles event and its initial + value should be set to 0x80000000 - 1000000. */ + sample_period = 0x80000000UL - sample_period; + mtspr (PMC1, sample_period); mtspr (PMC2, sample_period); mtspr (PMC3, sample_period);
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor