Subject: Re: [Cbe-oss-dev] [RFC, PATCH 4/4] Add support to OProfile for profiling Cell BE SPUs -- update

From: Maynard Johnson <[email-masked]>
Date: Sun, 04 Feb 2007 11:33:46 -0600

Arnd Bergmann wrote:

>On Sunday 04 February 2007 00:49, Maynard Johnson wrote:
>  
>
>>I seem to recall looking at this option a while back, but didn't go that 
>>route since struct spu_context is opaque to me.  With such a teqnique, I 
>>could then use a simple 16-element array of  pointers to cached_info 
>>objects, creating them as needed when spu_context->profile_private is 
>>NULL.  I suppose the better option for now is to add a 
>>get_profile_private() function to SPUFs, rather than requiring 
>>spu_context to be visible.
>>    
>>
>
>Yes, that sounds good. Note that the file providing the 
>spufs_get_profile_private (and respective spufs_set_profile_private)
>functions needs to be compiled into the kernel then in case oprofile
>gets linked in but spufs is a module.
>  
>
Hmm . . . we already depend on the register/unregister functions in 
sched.c, so my patch changes the oprofile Kconfig to default to 'm' and 
'depends on SPU_FS'.

>I think it would also be necessary to have another interface for cleaning
>up this data when spufs destroys the context. That could possibly
>a variation of the existing notifier call, or a new call, or you
>establish the convention that if the private pointer is non-NULL,
>spufs will kfree it.
>  
>
Yes, I was thnking along the lines of your last suggestion.  I presume 
OProfile gets notified (object_id == 0) before the context is actually 
destroyed.  At that time, we would NULL-out the reference to the 
cached_info, so then SPUFS would kfree it at destroy time.

-Maynard

>	Arnd <><