From: Arnd B. <ar...@ar...> - 2006-12-02 20:01:21
|
On Friday 01 December 2006 21:01, Maynard Johnson wrote: > +static void notify_spus_active(void) > +{ > + int node; > + for (node = 0; node < MAX_NUMNODES; node++) { > + struct spu *spu; > + mutex_lock(&spu_prio->active_mutex[node]); > + list_for_each_entry(spu, &spu_prio->active_list[node], list) { > + struct spu_context *ctx = spu->ctx; > + blocking_notifier_call_chain(&spu_switch_notifier, > + ctx ? ctx->object_id : 0, spu); > + } > + mutex_unlock(&spu_prio->active_mutex[node]); > + } I wonder if this is enough for oprofile. Don't you need to access user space data of the task running on the SPU? I always assumed you want to do it via get_user or copy_from_user, which obviously doesn't work here, when you're running in the oprofile task. Are you using something like access_process_vm now? Arnd <>< |