AnsweredAssumed Answered

Questions related to suspending VDK scheduler

Question asked by miket on Jun 28, 2012
Latest reply on Jul 30, 2012 by miket

BF527, vdsp++ 5.10

I am develping an application under vdsp++/vdk/lwip which needs to be able to suspend thread scheduling for a while.

Model is:

a) normal execution

b) threadX suspends all threads but itself <what is most efficient way  to do that ?>

c) threadX initiates activity and waits on semaphore <It will make non-eligible for dispatch>

d) isr based processing or guard timer posts a semaphore

e) normal thread scheduling is resumed

d) extra bonus portion - regular scheduling would be disabled for relatively long time(< 1minute) it would be nice to be notified of media insertion , such as usb/ethernet/sdcard, which happened during that time.

 

Looking at VDK manual the only legitimate way to stop thread scheduling is to Push/PopUnscheduledRegion().

- Can thread in fact block while in critical region - I acknowledge that it is a poor practice, at the same time if there are no alternatives can system block (will ISR be able to post a semaphore/mutex/whatever) or I can expect a crash?

- can I expect the unscheduled region to be uninterrupted by vdk itself. Preferably I would like to selectively disable some of the interrupts as well as round-robin.

Also I have noticed specific notes that unscheuled regions can be nested. at the same time I do not see any api allowing to directly schedule threads from user level - is nesting allowed for convenience ?

Can thread temporary increase its own or other threads timeslice quota for round-robin? Ideally I would like to temporary give some of the threads more recovery capability from scheduling jitter.

 

Thank you, Michael

Feel free to comment on additional negative side-effects I may be overlooking

Outcomes