[Cbe-oss-dev] [PATCH] libspe2: add SPE_NOSCHED to spe_context_create()
Gerhard Stenzel
stenzel at de.ibm.com
Fri Aug 1 19:20:41 EST 2008
This patch adds a new flag for spe_context_create() that ensures that a
program can "keep" an SPE until it runs to completion. In other words,
the physical SPE resource that runs this context becomes "invisible" to
the SPE scheduler and can't be used to run other context, even if they
have higher priority. Because of this behaviour, this function is
considered a privileged operation. The process needs "CAP_SYS_NICE"
capability in Linux (see capabilities(7)) - which usually only root has.
Please note also, that this requires the following patches
powerpc/spufs: allow spu_acquire_saved to correctly handle NOSCHED contexts
powerpc/spufs: consolidate contexts of normal and NOSCHED context directories
sent by Jeremy Kerr to cbe-oss-dev August, the 1st, 2008
to be applied to the kernel, otherwise SPE_NOSCHED will fail.
Signed-off-by: Gerhard Stenzel <stenzel at de.ibm.com>
===================================================================
Index: libspe2/spebase/create.c
===================================================================
--- libspe2/spebase/create.c (revision 129)
+++ libspe2/spebase/create.c (working copy)
@@ -231,6 +231,9 @@ spe_context_ptr_t _base_spe_context_crea
}
/* initialise spu_createflags */
+ if (flags & SPE_NOSCHED)
+ spu_createflags |= SPU_CREATE_NOSCHED;
+
if (flags & SPE_ISOLATE) {
flags |= SPE_MAP_PS;
spu_createflags |= SPU_CREATE_ISOLATE | SPU_CREATE_NOSCHED;
Index: libspe2/libspe2-types.h
===================================================================
--- libspe2/libspe2-types.h (revision 129)
+++ libspe2/libspe2-types.h (working copy)
@@ -180,6 +180,7 @@ enum ps_area { SPE_MSSYNC_AREA, SPE_MFC_
#define SPE_ISOLATE_EMULATE 0x00000100
#define SPE_EVENTS_ENABLE 0x00001000
#define SPE_AFFINITY_MEMORY 0x00002000
+#define SPE_NOSCHED 0x00004000
/**
===================================================================
Best regards,
Gerhard Stenzel, Linux on Cell Development, LTC
-------------------------------------------------------------------------------------
IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Martin Jetter | Geschaeftsfuehrung: Herbert Kircher
Sitz der Gesellschaft: Boeblingen | Registergericht: Amtsgericht Stuttgart, HRB 243294
More information about the cbe-oss-dev
mailing list