Commit 7b1a7014 authored by arnd@arndb.de's avatar arnd@arndb.de Committed by Paul Mackerras

[POWERPC] spufs: add a phys-id attribute to each SPU context

For performance analysis, it is often interesting to know
which physical SPE a thread is currently running on, and,
more importantly, if it is running at all.

This patch adds a simple attribute to each SPU directory
with that information.
The attribute is read-only and called 'phys-id'. It contains
an ascii string with the number of the physical SPU (e.g.
"0x5"), or alternatively the string "0xffffffff" (32 bit -1)
when it is not running at all at the time that the file
is read.
Signed-off-by: default avatarArnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent 724bd80e
...@@ -1328,6 +1328,22 @@ static u64 spufs_srr0_get(void *data) ...@@ -1328,6 +1328,22 @@ static u64 spufs_srr0_get(void *data)
DEFINE_SIMPLE_ATTRIBUTE(spufs_srr0_ops, spufs_srr0_get, spufs_srr0_set, DEFINE_SIMPLE_ATTRIBUTE(spufs_srr0_ops, spufs_srr0_get, spufs_srr0_set,
"%llx\n") "%llx\n")
static u64 spufs_id_get(void *data)
{
struct spu_context *ctx = data;
u64 num;
spu_acquire(ctx);
if (ctx->state == SPU_STATE_RUNNABLE)
num = ctx->spu->number;
else
num = (unsigned int)-1;
spu_release(ctx);
return num;
}
DEFINE_SIMPLE_ATTRIBUTE(spufs_id_ops, spufs_id_get, 0, "0x%llx\n")
struct tree_descr spufs_dir_contents[] = { struct tree_descr spufs_dir_contents[] = {
{ "mem", &spufs_mem_fops, 0666, }, { "mem", &spufs_mem_fops, 0666, },
{ "regs", &spufs_regs_fops, 0666, }, { "regs", &spufs_regs_fops, 0666, },
...@@ -1351,5 +1367,6 @@ struct tree_descr spufs_dir_contents[] = { ...@@ -1351,5 +1367,6 @@ struct tree_descr spufs_dir_contents[] = {
{ "spu_tag_mask", &spufs_spu_tag_mask_ops, 0666, }, { "spu_tag_mask", &spufs_spu_tag_mask_ops, 0666, },
{ "event_mask", &spufs_event_mask_ops, 0666, }, { "event_mask", &spufs_event_mask_ops, 0666, },
{ "srr0", &spufs_srr0_ops, 0666, }, { "srr0", &spufs_srr0_ops, 0666, },
{ "phys-id", &spufs_id_ops, 0666, },
{}, {},
}; };
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment