Chandan U commented on a discussion on cpukit/include/rtems/score/coremsg.h: 
https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/1164#note_148597

 >    Chain_Control Inactive_messages;
 >  };
 >  
 > +#if defined( RTEMS_POSIX_API ) && ( MQ_PRIO_MAX <= 255 )
 > +typedef struct {
 > +  CORE_message_queue_Control   Base;
 > +  Priority_bit_map_Control     Queue;

This is really insightful,  @joel Thank you so much for the detailed 
explanation.

I clearly understand now that the fixed array of Chain_Control which eats the 
memory of 384/ 768 bytes all the time in the bucket + bitmap implementation is 
really concerning for the real time systems, on the other hand RB tree using 
the advantage of the fixed priority limit (32) which reduces the worst case 
time complexity to log2(32)=5 (constant) and also has no static memory overhead 
unlike bucket + bitmap is the most optimal. 

I'll pivot to complete implementation of RB tree logic with maintaining 
backward compatibility.

I'll rework on the patch and update the draft shortly.

Thank you and @sebhub  for the clear guidance on this architectural decision!

-- 
View it on GitLab: 
https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/1164#note_148597
You're receiving this email because of your account on gitlab.rtems.org.


_______________________________________________
bugs mailing list
[email protected]
http://lists.rtems.org/mailman/listinfo/bugs

Reply via email to