1. 21 10月, 2008 7 次提交
  2. 14 10月, 2008 1 次提交
  3. 10 10月, 2008 3 次提交
  4. 08 9月, 2008 1 次提交
  5. 05 9月, 2008 2 次提交
    • J
      powerpc/spufs: Fix race for a free SPU · b65fe035
      Jeremy Kerr 提交于
      We currently have a race for a free SPE. With one thread doing a
      spu_yield(), and another doing a spu_activate():
      
      thread 1				thread 2
      spu_yield(oldctx)			spu_activate(ctx)
        __spu_deactivate(oldctx)
        spu_unschedule(oldctx, spu)
        spu->alloc_state = SPU_FREE
      					spu = spu_get_idle(ctx)
      					    - searches for a SPE in
      					      state SPU_FREE, gets
      					      the context just
      					      freed by thread 1
      					spu_schedule(ctx, spu)
      					  spu->alloc_state = SPU_USED
      spu_schedule(newctx, spu)
        - assumes spu is still free
        - tries to schedule context on
          already-used spu
      
      This change introduces a 'free_spu' flag to spu_unschedule, to indicate
      whether or not the function should free the spu after descheduling the
      context. We only set this flag if we're not going to re-schedule
      another context on this SPU.
      
      Add a comment to document this behaviour.
      Signed-off-by: NJeremy Kerr <jk@ozlabs.org>
      b65fe035
    • J
      powerpc/spufs: Fix multiple get_spu_context() · 9f43e391
      Jeremy Kerr 提交于
      Commit 8d5636fb introduced a reference
      count on SPU contexts during find_victim, but this may cause a leak in
      the reference count if we later find a better contender for a context to
      unschedule.
      
      Change the reference to after we've found our victim context, so we
      don't do the extra get_spu_context().
      Signed-off-by: NJeremy Kerr <jk@ozlabs.org>
      9f43e391
  6. 19 8月, 2008 1 次提交
  7. 14 8月, 2008 1 次提交
  8. 13 8月, 2008 1 次提交
    • J
      powerpc/spufs: fix npc setting for NOSCHED contexts · d9dd421f
      Jeremy Kerr 提交于
      Currently, spu_run ignores the npc argument for contexts created with
      SPU_CREATE_NOSCHED. While this is correct for isolated contexts,
      there's no need to enforce the npc restriction on non-isolated NOSCHED
      contexts.
      
      This means that NOSCHED contexts can only ever run with an entry point
      of 0x0.
      
      This change to spu_run_init allows setting of the npc (and, while we're
      at it, the privcntl) for non-isolated NOSCHED contexts. This allows
      us to run NOSCHED contexts from any entry point.
      Signed-off-by: NJeremy Kerr <jk@ozlabs.org>
      d9dd421f
  9. 27 7月, 2008 1 次提交
  10. 25 7月, 2008 1 次提交
  11. 24 7月, 2008 2 次提交
  12. 23 7月, 2008 1 次提交
  13. 09 7月, 2008 7 次提交
  14. 30 6月, 2008 1 次提交
  15. 16 6月, 2008 4 次提交
  16. 15 5月, 2008 2 次提交
  17. 08 5月, 2008 2 次提交
  18. 06 5月, 2008 1 次提交
  19. 05 5月, 2008 1 次提交