On Fri, 2008-07-04 at 21:05 +0200, [EMAIL PROTECTED] wrote:
> plain text document attachment
> (0004-powerpc-spufs-add-atomic-busy_spus-counter-to-struc.patch)
> As nr_active counter includes also spus waiting for syscalls to return
> we need a seperate counter that only counts spus that are currently running
> on spu side. This counter shall be used by a cpufreq governor that targets
> a frequency dependent from the number of running spus.
> 
> From: Maxim Shchetynin <[EMAIL PROTECTED]>
> Signed-off-by: Christian Krafft <[EMAIL PROTECTED]>

This needs your S-O-B, Arnd, and should go via jk.

Cheers,
Ben.

> ---
>  arch/powerpc/platforms/cell/spufs/sched.c |    6 ++++++
>  include/asm-powerpc/spu.h                 |    1 +
>  2 files changed, 7 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/powerpc/platforms/cell/spufs/sched.c 
> b/arch/powerpc/platforms/cell/spufs/sched.c
> index e929e70..be77910 100644
> --- a/arch/powerpc/platforms/cell/spufs/sched.c
> +++ b/arch/powerpc/platforms/cell/spufs/sched.c
> @@ -993,6 +993,7 @@ void spuctx_switch_state(struct spu_context *ctx,
>       struct timespec ts;
>       struct spu *spu;
>       enum spu_utilization_state old_state;
> +     int node;
>  
>       ktime_get_ts(&ts);
>       curtime = timespec_to_ns(&ts);
> @@ -1014,6 +1015,11 @@ void spuctx_switch_state(struct spu_context *ctx,
>               spu->stats.times[old_state] += delta;
>               spu->stats.util_state = new_state;
>               spu->stats.tstamp = curtime;
> +             node = spu->node;
> +             if (old_state == SPU_UTIL_USER)
> +                     atomic_dec(&cbe_spu_info[node].busy_spus);
> +             if (new_state == SPU_UTIL_USER);
> +                     atomic_inc(&cbe_spu_info[node].busy_spus);
>       }
>  }
>  
> diff --git a/include/asm-powerpc/spu.h b/include/asm-powerpc/spu.h
> index 99348c1..8b2eb04 100644
> --- a/include/asm-powerpc/spu.h
> +++ b/include/asm-powerpc/spu.h
> @@ -191,6 +191,7 @@ struct cbe_spu_info {
>       struct list_head spus;
>       int n_spus;
>       int nr_active;
> +     atomic_t busy_spus;
>       atomic_t reserved_spus;
>  };
>  
> -- 
> 1.5.4.3
> 

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to