[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [rtl] Weird scheduling problem
- To: rtl@fsmlabs.com
- Subject: Re: [rtl] Weird scheduling problem
- From: Victor Yodaiken <yodaiken@fsmlabs.com>
- Date: Tue, 29 May 2001 15:57:28 -0600
- In-Reply-To: <GBEBJEDLOFFHLCHJLHDLOEPECDAA.jonas.persson@comsys.se>; from jonas.persson@comsys.se on Tue, May 29, 2001 at 02:27:13PM +0200
- Organization: FSM Labs
- References: <GBEBJEDLOFFHLCHJLHDLOEPECDAA.jonas.persson@comsys.se>
- Reply-To: rtl@fsmlabs.com
- Sender: owner-rtl@fsmlabs.com
- User-Agent: Mutt/1.3.15i
What version of RTLinux?
Can you describe the code in more detail?
Try with a simpler design
A:
while(1){
sem_wait(s);
do something
}
B:
while(1){
do something
sem_post(s);
clock_nanosleep(CLOCK_REALTIME, ns2ts(10000));
}
On Tue, May 29, 2001 at 02:27:13PM +0200, Jonas Persson wrote:
> Hi all,
>
> I have a strange scheduling problem. Let's say I have two (RTL-) threads, A and B, which interact in the following way - B, which has higher priority, calls sem_wait on a semaphore. Whenever A has one piece of data ready for B, A calls sem_post on the same semaphore.
>
> For whatever reason, when running this example A runs one cycle and so does B. But when I insert another module, being another RTLinux program, whenever usleep() is called from there, both A and B runs another cycle!
>
> Both A and B are periodic processes with the same periodicity, but only A make calls to pthread_make_periodic_np and pthread_wait_np since B waits for the semaphore and has higher priority than A.
>
> Any thought appreciated!
>
> Regards,
> Jonas
>
> ______________________________________________________________________
> Jonas Persson E-mail: jonas.persson@comsys.se
> Project Manager, M.Sc C.Sc&E http://www.comsys.se/
> Comsys AB Phone: +46-(0)46-286 3051
> Forskningsbyn IDEON Fax: +46-(0)46-286 3505
> S-223 70 Lund, Sweden
> -- [rtl] ---
> To unsubscribe:
> echo "unsubscribe rtl" | mail majordomo@rtlinux.org OR
> echo "unsubscribe rtl <Your_email>" | mail majordomo@rtlinux.org
> --
> For more information on Real-Time Linux see:
> http://www.rtlinux.org/rtlinux/
-- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail majordomo@rtlinux.org OR
echo "unsubscribe rtl <Your_email>" | mail majordomo@rtlinux.org
--
For more information on Real-Time Linux see:
http://www.rtlinux.org/rtlinux/