RE: oprofile support for PPC_E5500

Michael Petlan <[email protected]>
Newsgroups gmane.linux.oprofile
Message-ID <alpine.LRH.2.20.1610041654330.6819@Diego>
Just a reminder, what's the state of this issue? Have we obtained the WindRiver
patch?

Michael


On Wed, 13 Jul 2016, Michael Petlan wrote:
> On Wed, 13 Jul 2016, Beaman, Thomas wrote:
>>
>>>
>>> Since the `perf list` shows stalled-cycles-frontend and stalled-cycles-backend
>>> events, it seems it does not use the e6500-pmu.c file, since these events are
>>> specified in e500-pmu.c only.
>>>
>>> Tom, the question was whether WindRiver has some kernel patches for
>>> e5500 support or not.
>>>
>>> You may also try to see which PMU drivers are present in kallsyms:
>>>
>>> cat /proc/kallsyms | grep pmu | grep init
>>>
>>> If you see e5500 there, your kernel probably has some WindRiver-specific
>>> patch, since there is probably no init_e5500_pmu in the upstream kernel.
>>>
>>> Michael
>>
>> Hi Michael,
>>
>> There are no specific WindRiver patches that I can see for the e5500 and there is no init_e5500 in kallsyms. How do you think we should proceed ?
>>
>> Thanks,
>> Tom
>>
>> root@miopqt_250:~# cat /proc/kallsyms | grep pmu | grep init
>> c000000000059de8 t .fsl_emb_pmu_event_init
>> c00000000005acf0 t .init_e500_pmu
>> c00000000005ade4 t .init_e6500_pmu
>> c000000000c51f10 t __initcall_init_e500_pmuearly
>> c000000000c51f18 t __initcall_init_e6500_pmuearly
>> c000000000d3e480 d fsl_emb_pmu_event_init
>> c000000000d3e5b8 d init_e500_pmu
>> c000000000d3e5e8 d init_e6500_pmu
>>
>>
>>
>
> Hi Tom,
>
> as William said, it would be nice to have the WindRiver oprofile patch posted
> to the oprofile-list and incorporate it into upstream oprofile, in order to
> eliminate the need of it. Could you please ask someone in WindRiver about it?
>
> Then, it would be nice to know the set of events supported by E5500 in order to
> have correct events/ppc64/e5500/events file. In my patch, I supposed that it has
> the same events as e6500, which is not probable. So it might either have e500mc's
> events or it might have its own set.
>
> Since we don't have the sufficienf knowledge, I am trying to approximate to the
> correct set. For that, I asked you to test the CLK_FPU_DIV against some program
> that performs lots of FPU divisions and L1_CACHE_* events against something that
> might be more cache_stressing than the tested 'sleep 1' command. You may use my
> sample program I use (attached).
>
> As I wrote in some of the previous e-mails, the following from your results.csv
> looks suspicious:
>
> DL1_RELOADS,18240,100.00
> IL1_FETCH_RELOADS,11714,100.00
> L1_STASH_HIT,0,100.00
> L1_STASH_REQ,0,100.00
> L1_CACHE_MISSES,0,100.00
> L1_CACHE_LOAD_MISSES,0,100.00
> L1_CACHE_STORE_MISSES,0,100.00
>
> While DL1_RELOADS and IL1_FETCH_RELOADS events give some non-zero results, the
> L1_CACHE_MISSES, L1_CACHE_LOAD_MISSES and L1_CACHE_STORE_MISSES are zero. This
> is probably wrong. Since the L1_CACHE_MISSES event and the LOAD/STORE brothers
> are e6500-only, I guess they are a sign that e5500 cannot have the e6500 event
> set. You can prove this guess by checking whether you are able to get non-zero
> values here with cache-stressing or not.
>
> Second thing I picked from your results is the CLK_FPU_DIV:
>
> It should count cycles spent in fdivs or fdiv instructions. So I'd try to test
> it by something like:
>
> #include <stdio.h>
> #include <stdlib.h>
> int main(int argc, char *argv[])
> {
> 	double a = atof(argv[1]);
> 	double b = 3.14159265;
> 	double c = a / b;
> 	printf("res = %lf\n", c);
> 	return 0;
> }
>
> gcc -o div -O0 -g div.c
>
> Check whether it contains the fdif or fdivs instrucions by:
>
> objdump -d div
>
> If it contains the instructions, try to get a nonzero result from CLK_FPU_DIV:
>
> ocount -e CLK_FPU_DIV ./div 23445
>
>
> Thanks.
> Michael
>
>
> ------------------------------------------------------------------------------
> What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
> patterns at an interface-level. Reveals which users, apps, and protocols are
> consuming the most bandwidth. Provides multi-vendor support for NetFlow,
> J-Flow, sFlow and other flows. Make informed decisions using capacity planning
> reports.http://sdm.link/zohodev2dev
> _______________________________________________
> oprofile-list mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/oprofile-list
>

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.