[PATCH 8/9] score: Add _Objects_Release_for_get_isr_disable()

Sebastian Huber sebastian.huber at embedded-brains.de
Mon Jun 10 08:21:12 UTC 2013


On 06/07/2013 06:46 PM, Gedare Bloom wrote:
> I think the per-object critical section is (should be) only a factor
> for SMP. UP mode should continue to use the same kind of protection,
> that is, dispatch disable, plus allocator or isr locks in some
> situations. The way I see it from what Sebastian has said so far, we
> will have something like,
> Object_Get() // dispatch disable on local core / UP, optional isr disable.
> Object_Acquire() // fine-grained lock on SMP, nop on UP
> ... do something
> Object_Release() // fine-grained unlock on SMP, nop on UP
> Object_Put() // unnest dispatch
>
> But, we might be able to consider turning Object_Acquire/Release into
> ISR_Disable/Enable on UP to replace Object_Get_isr_disable() in some
> cases. That would have to be determined on a case-by-case basis
> probably.

Yes, this is exactly how I would do it at the moment.

The _Objects_Get_isr_disable() is only used for semaphores.  It is necessary to 
support release operations in interrupt context.

There is a lot of work ahead.  The highest priority things on my current TODO 
list are:

1. A working scheduler
2. Success of all SMP test cases
3. A per-processor thread dispatch disable level
4. Cache line optimized per-CPU structure
5. Ability to delete threads
6. Condition variables (necessary for bdbuf -> block device based file systems)
7. TLS
8. Thread dispatch necessary signalization without overhead

-- 
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber at embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.



More information about the devel mailing list