Paolo Mantegazza wrote:
> 
> It seems to me that you are using the interrupt vector 0xF1 for IPIs
> without installing any IPI handler. In the previous RTAI, 0.1, version
> it was checked because we shared IPIs with Linux now we use our own and
> let Linux show the message above for diagnose.
> In fact it is RTAI_4_VECTOR, i.e. 0xF1 or 241. Linux diagnoses it as 209
> because it subtracts 32 for the first 32 reserved irqs.
> The rtai SMP scheduler uses it to send rescheduling messages. I do not
> understand how you got there. There is a 1 Khz timer example that shows
> how to use IPI messages without the scheduler to process timer
> interrupts if you need just a periodic task that want to exploit all the
> available CPUs for a lot of fp calculations, with fifos to communicate
> to/from a Linux process that tries to write a fifo sent 5Mb/s directly
> to disk.

Now it works ...
I've just changed the RT_TASK which handle sending_message
with a function call which does the same thing.

After some tries , I've found that it was the rt_semaphore
which caused this unexpected IRQ. ( I've tried with only
a loop and the rt_sem_wait inside ... )
I don't use any IPI messages at all , unless the semaphores.

> Can I  have a look at your code?

I'm sorry but I've modified my driver into functions ... 

The driver did :

###########################################################################

SEM sem_sender ;

RT_TASK tasksender ;
void threadsender(int data)
{
        for(;;)
        {
                rt_sem_wait(&sem_sender) ;
                ... Jobs to do ...
        }
}

int init_module(void)
{
        ....
        rt_sem_init(&sem_sender,0) ;
        rt_task_init(&tasksender,&threadsender,0,1024,20,0,NULL) ;
        rt_task_resume(&tasksender) ;
        ...
        return 0 ;
}


*** in an other module ....

extern SEM sem_sender ;

void my_synchro_function(int data)
{
        for(;;)
        {
                rt_sem_wait(&sem_synchro) ;
                ........
                rt_sem_signal(&sem_sender) ;
                ........
        }
}

... ( with priority 20 for this thread ) ...

###########################################################################

But I have some others RT_TASKs that work like that without any error.
The only thing that changes, is that this RT_TASK was unblocked by
another
RT_TASK with the same priority.


Thanks for all.

> 
-- 
Kumsta Christophe
<[EMAIL PROTECTED]>
Real-Time System developper
RT-Linux (RTAI) Use the Source Luck !
--- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
----
For more information on Real-Time Linux see:
http://www.rtlinux.org/~rtlinux/

Reply via email to