Thread (9 messages) flat view 9 messages, 3 authors, 2007-10-24

Re: [patch 2/2] Cell: Wrap master run control bit

From: Geoff Levand <hidden>
Date: 2007-09-07 01:32:09

Arnd Bergmann wrote:
On Tuesday 04 September 2007, Geoff Levand wrote:
quoted
From: Masato Noguchi <redacted>

Add platform specific SPU run control routines.

The current spufs_run_spu() implementation uses the SPU master
run control bit (MFC_SR1[S]) to control SPE execution, but the
PS3 hypervisor does not support the use of this feature.  This
change adds run control wrapper routines.  The  bare metal
routines use the master run control bit, and the PS3 specific
routines use the priv2 run control register.

Signed-off-by: Masato Noguchi <redacted>
Signed-off-by: Geoff Levand <redacted>
Hmm, ok. Since I don't think we'll get to do the right solution
(unmapping the ps registers on the ps3) that soon, doing this
patch is at least better than the current situation where we
end up with an oops every time we leave spu_run.

It would probably be good to mention the remaining problem
with the current approach in the changelog and as a comment
in the ps3 specific functions.
Ok, I did that.
quoted
@@ -178,6 +179,8 @@ struct spu_management_ops {
 	int (*enumerate_spus)(int (*fn)(void *data));
 	int (*create_spu)(struct spu *spu, void *data);
 	int (*destroy_spu)(struct spu *spu);
+	int (*enable_spu)(struct spu_context *ctx);
+	int (*disable_spu)(struct spu_context *ctx);
 	int (*init_affinity)(void);
 };
Also, I think you should make the return type of the callback
'void' since the result is not used anywhere.
Noguchi-san was hesitant to do this.  I also thought lets leave it
as is until we consider the unmapping support, as maybe a return
value might make sense.  Jeremy, if you think it better to return
void, please make the update.

-Geoff
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help