a problem about the fuction message_queue_broadcast under multi-processor

SONG FRANK frank1997 at gmail.com
Sat Feb 25 11:33:38 UTC 2006


Dear Sirs
I have a problem with RTEMS,It will be very appreciated if you can
tell me how to deal with it.

I am working at the multi-processor's support of 4 processors under
leon2. When I tested the fuction message_queue_broadcast, I
encountered a problem. I make Nodel 1 to create a message queue, and
make Nodel2, Node3 and Node4 to invoke the function
message_queue_receive. Then I make Node1 to invoke the function
message_queue_broadcast 1 time after sleeping for a long time.
According to the description,it should broadcast 3 messages, but in
fact it has only broadcast 1 message. Then I modified the test
program.
 I make Node1 to create a message queue, and make Node2, Node3, and
Node4 to invoke the function message_queue_receive. Then I make Node1
to invoke the function maeeage_queue_broadcast 4 times after sleeping
for a long time. The result is that the former three times, Node1
broadcast 1 message,  and the final time it broadcast 0 message. It
means that the receive requests of Node2, Node3, and Node4 haven't 
lost. But why the function message_queue_broadcast hasn`t broadcast 3
messages, and when I create 4 tasks
with single processor, and make task1 to create a message queue,and
make task2, task3, task4 to invoke the function message_queue_receive,
Then I make task 1 to invoke the function message_queue_broadcast 1
time after sleeping for a long time. Task1 can broadcast 3messages.
Why the function message_queue_broadcast work abnormally under the
condition of 4 processors.


Now I found that when Node2 invoke the function Joel
message_queue_receive and sends the interrupt to Node1, Node1 can
invoke the function_MPCI_Receive_server immediately. But after Node3
and Node4 invoke the function message_queue_receive and send the
interrupt to Node1, Node1 haven't invoked the
function_MPCI_Receive_server immediatly. In oder words, the receive
request haven't lost but not handled in time. I don't kown that is the
reason, could you help me?

Thank you very much.
Best regards.
Frank



More information about the users mailing list