Hi Stephane,

Good point, that's another option.  I've been trying to avoid that all along, 
but it's definitely a cleaner alternative.

I can modify the script so that if any of the maximums are violated, it will 
flag an error and not let the code be auto-generated.

If you are ok with wasting some space, I will go ahead and try that out.  
Here's 
a guess at the amount of unused space:

For the 970*,power4 machines, they have about 3 unused vectors * 8 bytes * 64 
events = 1.5kB per arch = 4.5kB total.

For Power5* machines, the have (2 unused counters * 4 bytes + 1 unused vector * 
8 bytes) * 500 events + 2 unused counters * 4 bytes * 180 groups = 9.4kB per 
arch = 18.8kB total

For Power 6, 7, they have about 2 unused counters * 4 bytes * 550 events +  2 
unused counters * 4 bytes * 248 groups = 10.8kB per arch = 21.6kB total

So, in all, it would be about 45kB.  Let me know if you are ok with that.


- Corey


stephane eranian wrote:
> Corey,
> 
> Looking at the *_entry_t and *_group_t, I am wondering if it would
> be possible to just use the biggest-sized structure for all models.
> It would be oversized for the earlier models, but then it would improve
> readability, and I understand unfortunately, the size of the event tables.
> 
> 
> On Wed, Jul 15, 2009 at 11:32 PM, Corey
> Ashford<cjash...@linux.vnet.ibm.com> wrote:
>> (forgot to attach the patch, so here it is)
>>
>> Hi,
>>
>> I've made a stab at consolidating the event and group types for the Power
>> chips (ppc970 through Power7).
>>
>> I'm not real happy with the result.  It is a little more compact in the
>> coding of the case statements, but in gaining some compaction, we've lost
>> some clarity.
>>
>> I made an attempt to be able to use one pair of types for all processors,
>> but the C99 language doesn't appear to like things like this:
>>
>> int *foo = { 1, 2, 3 };
>>
>> but has no problem with:
>>
>> char *foo = "some string";
>>
>> This seems like an inconsistent compiler design to me, but without that
>> support, I cannot easily use a pointer in replacement for fixed-length
>> arrays.  So the choice then becomes:
>>
>> 1) Create separately-declared and named fixed-length arrays which are then
>> pointed to by the event and group arrays.
>>
>> 2) Consolidate the structures containing fixed-length arrays that are really
>> the same, but keep separate those that aren't.  This means we still need
>> switch statements based on the PMU type, but the number of truly separate
>> cases is reduced.
>>
>> I chose 2 because it creates a much smaller patch, and I'm not sure I like
>> the idea of creating a bunch of separate declarations, and would take extra
>> room over all (adds pointers).  On the other hand, the structures have ugly
>> names like pme_power_c6_v4_event_t (c6 = 6 counters, v4 = 4 group vectors).
>>
>> Anyway, please have a look, and let me know if you see another way to do it,
>> or  or if you'd have solution 1.
>>
>> P.S.  As I was working on this, I ran across a few problems with the PCL
>> codes on Power5+ and Power6, and I will need to patch that at some point.  I
>> would like to get this "consolidate or not" decision made first, though.
>>
>> Signed off by: Corey Ashford <cjash...@us.ibm.com>
>>
>> --
>> Regards,
>>
>> - Corey
>>
>> Corey Ashford
>> Software Engineer
>> IBM Linux Technology Center, Linux Toolchain
>> cjash...@us.ibm.com
>>
>> IBM Linux Technology Center, Linux Toolchain
>> Beaverton, OR
>> 503-578-3507
>> cjash...@us.ibm.com
>>

-- 
Regards,

- Corey

Corey Ashford
Software Engineer
IBM Linux Technology Center, Linux Toolchain
Beaverton, OR
503-578-3507
cjash...@us.ibm.com


------------------------------------------------------------------------------
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have
the opportunity to enter the BlackBerry Developer Challenge. See full prize  
details at: http://p.sf.net/sfu/Challenge
_______________________________________________
perfmon2-devel mailing list
perfmon2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/perfmon2-devel

Reply via email to