On Sunday 04 February 2007 00:49, Maynard Johnson wrote: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 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.
I think it would also be necessary to have another interface for cleaningYes, 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.
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.
Arnd <><