[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
problem about the fuction message_queue_broadcast under multi-processor
- Date: Sat, 25 Feb 2006 19:09:16 +0800
- From: frank1997 at gmail.com (SONG FRANK)
- Subject: problem about the fuction message_queue_broadcast under multi-processor
I have a problems 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
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.