On 4/15/2015 2:48 PM, Gedare Bloom wrote: > On Wed, Apr 15, 2015 at 3:46 PM, Joel Sherrill > <joel.sherr...@oarcorp.com> wrote: >> >> On 4/15/2015 2:45 PM, Gedare Bloom wrote: >>> On Wed, Apr 15, 2015 at 3:41 PM, Joel Sherrill >>> <joel.sherr...@oarcorp.com> wrote: >>>> --- >>>> testsuites/sptests/sp13/system.h | 23 +++++++++++++++++++---- >>>> 1 file changed, 19 insertions(+), 4 deletions(-) >>>> >>>> diff --git a/testsuites/sptests/sp13/system.h >>>> b/testsuites/sptests/sp13/system.h >>>> index 3b170bf..8e5ffbb 100644 >>>> --- a/testsuites/sptests/sp13/system.h >>>> +++ b/testsuites/sptests/sp13/system.h >>>> @@ -66,13 +66,28 @@ TEST_EXTERN rtems_name Queue_name[ 4 ]; /* array >>>> of queue names */ >>>> #define CONFIGURE_RTEMS_INIT_TASKS_TABLE >>>> >>>> /* >>>> - * First three created in init.c, last created in task1.c. >>>> + * Created in init.c: >>>> + * Q1 - CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 100, MESSAGE_SIZE ) (1600) >>>> + * Q2 - CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 10, MESSAGE_SIZE ) (160) >>>> + * Q3 - CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 100, MESSAGE_SIZE ) (1600) >>>> + * >>>> + * Q1 and Q2 deleted in task1.c >>>> + * >>>> + * Q1 recreated in task1.c >>>> + * Q1 - CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 100, 20 ) (2000) >>>> + * >>>> + * Q1 deleted again in task1.c. >>>> + * Q1 repeatedly created and deleted for 2 messages of 1-1030 bytes >>>> + * in length >>>> + * Q1 - CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 1030, 2 ) (2000) >>>> + * >>>> + * Thus the peak message memory needed is technically only: >>>> + * Q3 + third instance of Q1 at peak of two 1030 byte messages. >>>> + * >>>> */ >>>> #define CONFIGURE_MESSAGE_BUFFER_MEMORY \ >>>> CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 100, MESSAGE_SIZE ) + \ >>>> - CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 10, MESSAGE_SIZE ) + \ >>>> - CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 100, MESSAGE_SIZE ) + \ >>>> - CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 100, 20 ) >>>> + CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 1030, 2 ) >>> Should be ( 2, 1030 ) >> Yep. Good catch. Is the comment clear? > A bit verbose but good enough for posterity. Grr.... Because there are two pointers overhead per buffer, you can't ignore that in the calculation. Two 1030 byte messages take less space than 100 16-byte messages.
2 * (8 + 1030) = 2076 versus 100 * (8 + 16) = 2400 Should I do the math to do this tight or just list all the message queues? FWIW my math will be wrong again for 64-bit pointers. -- Joel Sherrill, Ph.D. Director of Research & Development joel.sherr...@oarcorp.com On-Line Applications Research Ask me about RTEMS: a free RTOS Huntsville AL 35805 Support Available (256) 722-9985 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel