Re: [ECOS] Re: ISR not causing an DSR in some rare conditions

2006-01-13 Thread Stefan Sommerfeld
Hi, There was a discussion on the developers list last week or the week before about a subtle race condition that arose when an interrupt occurred at the exact instant that a single thread called a blocking primitive and the scheduler was busy transitioning to the idle thread. See

Re: [ECOS] Re: ISR not causing an DSR in some rare conditions

2006-01-13 Thread Nick Garnett
Stefan Sommerfeld [EMAIL PROTECTED] writes: I'm using a self-compiled gcc 3.4.3 for xscale. I'll try to compile a different version to check if this helps. I'll also try to setup a test system which should trigger this problem faster (not 24 hours) to do some more investigation. You could

[ECOS] DSR Scheduling Problem

2006-01-13 Thread Jay Foster
I am experiencing a problem with a serial driver that I'm developing. It uses separate RX and TX ISRs and DSRs. The RX and TX ISRs just schedule the corresponding DSR to run. The test begins by transmitting data, which is looped back to the receiver. It starts out with: TX ISR - TX DSR

[ECOS] Re: DSR Scheduling Problem

2006-01-13 Thread Grant Edwards
The test begins by transmitting data, which is looped back to the receiver. It starts out with: TX ISR - TX DSR TX ISR - TX DSR ... TX-ISR - TX DSR Then I get the RX ISR during the TX DSR, which just schedules the RX DSR. However, the RX DSR does not run until 39

[ECOS] Re: DSR Scheduling Problem

2006-01-13 Thread Grant Edwards
On 2006-01-14, Jay Foster [EMAIL PROTECTED] wrote: I still think that FIFO queuing of the DSRs is better than LIFO queuing, because in the absence of any DSR priority information, the best that can be done is temporal priority (ie FIFO). That happens to work for your application, but I don't

RE: [ECOS] Re: DSR Scheduling Problem

2006-01-13 Thread Paul D. DeRocco
From: Grant Edwards I still maintain that your application is either broken or you don't have enough CPU. If one interrupts source requires so much DSR time that others can't run, then there is simply something wrong. You seem to prefer a tx underrun error to an rx overrun error. I

[ECOS] Re: DSR Scheduling Problem

2006-01-13 Thread Grant Edwards
On 2006-01-14, Paul D. DeRocco [EMAIL PROTECTED] wrote: I still maintain that your application is either broken or you don't have enough CPU. If one interrupts source requires so much DSR time that others can't run, then there is simply something wrong. You seem to prefer a tx underrun