Re: [RTEMS Project] #3621: Statically initialize object information structures

2020-01-02 Thread RTEMS trac
#3621: Statically initialize object information structures
-+--
 Reporter:  Sebastian Huber  |   Owner:  Sebastian Huber
 Type:  enhancement  |  Status:  closed
 Priority:  normal   |   Milestone:  5.1
Component:  score| Version:  5
 Severity:  normal   |  Resolution:  fixed
 Keywords:   |  Blocked By:
 Blocking:   |
-+--

Comment (by Sebastian Huber ):

 In [changeset:"a320aeddd969db9864353eb54556d66c2bda6817/rtems"
 a320aedd/rtems]:
 {{{
 #!CommitTicketReference repository="rtems"
 revision="a320aeddd969db9864353eb54556d66c2bda6817"
 score: Fix objects node initialization

 The objects node is statically initialized to one.  Clear the node field
 before it is set.

 Update #3621.
 }}}

--
Ticket URL: 
RTEMS Project 
RTEMS Project
___
bugs mailing list
bugs@rtems.org
http://lists.rtems.org/mailman/listinfo/bugs

Re: [RTEMS Project] #3621: Statically initialize object information structures

2018-12-13 Thread RTEMS trac
#3621: Statically initialize object information structures
-+--
 Reporter:  Sebastian Huber  |   Owner:  Sebastian Huber
 Type:  enhancement  |  Status:  assigned
 Priority:  normal   |   Milestone:  5.1
Component:  score| Version:  5
 Severity:  normal   |  Resolution:
 Keywords:   |  Blocked By:
 Blocking:   |
-+--

Comment (by Sebastian Huber ):

 In [changeset:"0f5b2c0906e77863d86dda2c91e32f9ab1983fdf/rtems"
 0f5b2c09/rtems]:
 {{{
 #!CommitTicketReference repository="rtems"
 revision="0f5b2c0906e77863d86dda2c91e32f9ab1983fdf"
 rtems: Use object information to get config max

 Use functions instead of macros.  Add missing
 rtems_configuration_get_maximum_*() functions.

 Update #3621.
 }}}

--
Ticket URL: 
RTEMS Project 
RTEMS Project
___
bugs mailing list
bugs@rtems.org
http://lists.rtems.org/mailman/listinfo/bugs

Re: [RTEMS Project] #3621: Statically initialize object information structures

2018-12-13 Thread RTEMS trac
#3621: Statically initialize object information structures
-+--
 Reporter:  Sebastian Huber  |   Owner:  Sebastian Huber
 Type:  enhancement  |  Status:  assigned
 Priority:  normal   |   Milestone:  5.1
Component:  score| Version:  5
 Severity:  normal   |  Resolution:
 Keywords:   |  Blocked By:
 Blocking:   |
-+--

Comment (by Sebastian Huber ):

 In [changeset:"8b0e752fee90af946e0e117ca7d46a7df7814d14/rtems"
 8b0e752/rtems]:
 {{{
 #!CommitTicketReference repository="rtems"
 revision="8b0e752fee90af946e0e117ca7d46a7df7814d14"
 score: Remove Objects_Information::auto_extend

 Use Objects_Information::objects_per_block to provide this information.
 Add and use _Objects_Is_auto_extend().

 Update #3621.
 }}}

--
Ticket URL: 
RTEMS Project 
RTEMS Project
___
bugs mailing list
bugs@rtems.org
http://lists.rtems.org/mailman/listinfo/bugs

Re: [RTEMS Project] #3621: Statically initialize object information structures

2018-12-13 Thread RTEMS trac
#3621: Statically initialize object information structures
-+--
 Reporter:  Sebastian Huber  |   Owner:  Sebastian Huber
 Type:  enhancement  |  Status:  closed
 Priority:  normal   |   Milestone:  5.1
Component:  score| Version:  5
 Severity:  normal   |  Resolution:  fixed
 Keywords:   |  Blocked By:
 Blocking:   |
-+--
Changes (by Sebastian Huber ):

 * status:  assigned => closed
 * resolution:   => fixed


Comment:

 In [changeset:"21275b58a5a69c3c838082ffc8a7a3641f32ea9a/rtems"
 21275b58/rtems]:
 {{{
 #!CommitTicketReference repository="rtems"
 revision="21275b58a5a69c3c838082ffc8a7a3641f32ea9a"
 score: Static Objects_Information initialization

 Statically allocate the objects information together with the initial
 set of objects either via .  Provide default object
 informations with zero objects via librtemscpu.a.  This greatly
 simplifies the workspace size estimate.  RTEMS applications which do not
 use the unlimited objects option are easier to debug since all objects
 reside now in statically allocated objects of the right types.

 Close #3621.
 }}}

--
Ticket URL: 
RTEMS Project 
RTEMS Project
___
bugs mailing list
bugs@rtems.org
http://lists.rtems.org/mailman/listinfo/bugs

Re: [RTEMS Project] #3621: Statically initialize object information structures

2018-12-07 Thread RTEMS trac
#3621: Statically initialize object information structures
-+--
 Reporter:  Sebastian Huber  |   Owner:  Sebastian Huber
 Type:  enhancement  |  Status:  assigned
 Priority:  normal   |   Milestone:  5.1
Component:  score| Version:  5
 Severity:  normal   |  Resolution:
 Keywords:   |  Blocked By:
 Blocking:   |
-+--

Comment (by Sebastian Huber ):

 In [changeset:"d6e347387198c7e8fac4b4f6f52c3d9624ebafcd/rtems"
 d6e3473/rtems]:
 {{{
 #!CommitTicketReference repository="rtems"
 revision="d6e347387198c7e8fac4b4f6f52c3d9624ebafcd"
 score: Remove dead code

 Update #3621.
 }}}

--
Ticket URL: 
RTEMS Project 
RTEMS Project
___
bugs mailing list
bugs@rtems.org
http://lists.rtems.org/mailman/listinfo/bugs

Re: [RTEMS Project] #3621: Statically initialize object information structures

2018-12-07 Thread RTEMS trac
#3621: Statically initialize object information structures
-+--
 Reporter:  Sebastian Huber  |   Owner:  Sebastian Huber
 Type:  enhancement  |  Status:  assigned
 Priority:  normal   |   Milestone:  5.1
Component:  score| Version:  5
 Severity:  normal   |  Resolution:
 Keywords:   |  Blocked By:
 Blocking:   |
-+--

Comment (by Sebastian Huber ):

 In [changeset:"1c2d17839760b0d8ad5a02e4c84bd8f99fac4e98/rtems"
 1c2d178/rtems]:
 {{{
 #!CommitTicketReference repository="rtems"
 revision="1c2d17839760b0d8ad5a02e4c84bd8f99fac4e98"
 score: Remove Objects_Information::maximum

 This information is already present in Objects_Information::maximum_id.
 Add and use _Objects_Get_maximum_index().

 Update #3621.
 }}}

--
Ticket URL: 
RTEMS Project 
RTEMS Project
___
bugs mailing list
bugs@rtems.org
http://lists.rtems.org/mailman/listinfo/bugs

Re: [RTEMS Project] #3621: Statically initialize object information structures

2018-12-07 Thread RTEMS trac
#3621: Statically initialize object information structures
-+--
 Reporter:  Sebastian Huber  |   Owner:  Sebastian Huber
 Type:  enhancement  |  Status:  assigned
 Priority:  normal   |   Milestone:  5.1
Component:  score| Version:  5
 Severity:  normal   |  Resolution:
 Keywords:   |  Blocked By:
 Blocking:   |
-+--

Comment (by Sebastian Huber ):

 In [changeset:"359a3a36ca9bf82054fe6a83bd97868c310e5aae/rtems"
 359a3a3/rtems]:
 {{{
 #!CommitTicketReference repository="rtems"
 revision="359a3a36ca9bf82054fe6a83bd97868c310e5aae"
 score: Rename Objects_Information::allocation_size

 Rename Objects_Information::allocation_size in
 Objects_Information::objects_per_block.  Adjust integer types in
 _Objects_Shrink_information() and _Objects_Free().

 Update #3621.
 }}}

--
Ticket URL: 
RTEMS Project 
RTEMS Project
___
bugs mailing list
bugs@rtems.org
http://lists.rtems.org/mailman/listinfo/bugs

Re: [RTEMS Project] #3621: Statically initialize object information structures

2018-12-07 Thread RTEMS trac
#3621: Statically initialize object information structures
-+--
 Reporter:  Sebastian Huber  |   Owner:  Sebastian Huber
 Type:  enhancement  |  Status:  assigned
 Priority:  normal   |   Milestone:  5.1
Component:  score| Version:  5
 Severity:  normal   |  Resolution:
 Keywords:   |  Blocked By:
 Blocking:   |
-+--

Comment (by Sebastian Huber ):

 In [changeset:"9c9c6a93b1a17ad12f61b41e1d5f4616871cdba7/rtems"
 9c9c6a9/rtems]:
 {{{
 #!CommitTicketReference repository="rtems"
 revision="9c9c6a93b1a17ad12f61b41e1d5f4616871cdba7"
 score: Remove Objects_Information::is_string

 Use Objects_Information::name_length to store this information.

 Update #3621.
 }}}

--
Ticket URL: 
RTEMS Project 
RTEMS Project
___
bugs mailing list
bugs@rtems.org
http://lists.rtems.org/mailman/listinfo/bugs

Re: [RTEMS Project] #3621: Statically initialize object information structures

2018-12-07 Thread RTEMS trac
#3621: Statically initialize object information structures
-+--
 Reporter:  Sebastian Huber  |   Owner:  Sebastian Huber
 Type:  enhancement  |  Status:  assigned
 Priority:  normal   |   Milestone:  5.1
Component:  score| Version:  5
 Severity:  normal   |  Resolution:
 Keywords:   |  Blocked By:
 Blocking:   |
-+--

Comment (by Sebastian Huber ):

 In [changeset:"f70079ca20b11da6e481ddfeab4516545ec71cbd/rtems"
 f70079c/rtems]:
 {{{
 #!CommitTicketReference repository="rtems"
 revision="f70079ca20b11da6e481ddfeab4516545ec71cbd"
 score: Remove Objects_Information::the_api

 Remove Objects_Information::the_class.  This information is already
 contained in Objects_Information::maximum_id.

 Update #3621.
 }}}

--
Ticket URL: 
RTEMS Project 
RTEMS Project
___
bugs mailing list
bugs@rtems.org
http://lists.rtems.org/mailman/listinfo/bugs

Re: [RTEMS Project] #3621: Statically initialize object information structures

2018-12-07 Thread RTEMS trac
#3621: Statically initialize object information structures
-+--
 Reporter:  Sebastian Huber  |   Owner:  Sebastian Huber
 Type:  enhancement  |  Status:  assigned
 Priority:  normal   |   Milestone:  5.1
Component:  score| Version:  5
 Severity:  normal   |  Resolution:
 Keywords:   |  Blocked By:
 Blocking:   |
-+--

Comment (by Sebastian Huber ):

 In [changeset:"3899bc1a4b3294306ae2fd3f8ff0ee10365d9f4b/rtems"
 3899bc1a/rtems]:
 {{{
 #!CommitTicketReference repository="rtems"
 revision="3899bc1a4b3294306ae2fd3f8ff0ee10365d9f4b"
 score: Optimize object lookup

 Use the maximum ID for the ID to object translation.  Using the maximum
 ID gets rid of an additional load from the object information in
 _Objects_Get().  In addition, object lookups fail for every ID in case
 the object information is cleared to zero.  This makes it a bit more
 robust during system startup (see new tests in spconfig02).

 The local table no longer needs a NULL pointer entry at array index
 zero.  Adjust all the object iteration loops accordingly.

 Remove Objects_Information::minimum_id since it contains only redundant
 information.  Add _Objects_Get_minimum_id() to get the minimum ID.

 Update #3621.
 }}}

--
Ticket URL: 
RTEMS Project 
RTEMS Project
___
bugs mailing list
bugs@rtems.org
http://lists.rtems.org/mailman/listinfo/bugs

Re: [RTEMS Project] #3621: Statically initialize object information structures

2018-12-07 Thread RTEMS trac
#3621: Statically initialize object information structures
-+--
 Reporter:  Sebastian Huber  |   Owner:  Sebastian Huber
 Type:  enhancement  |  Status:  assigned
 Priority:  normal   |   Milestone:  5.1
Component:  score| Version:  5
 Severity:  normal   |  Resolution:
 Keywords:   |  Blocked By:
 Blocking:   |
-+--

Comment (by Sebastian Huber ):

 In [changeset:"0da9d805cd697dd2eed050374f704b29e8d3c18a/rtems"
 0da9d80/rtems]:
 {{{
 #!CommitTicketReference repository="rtems"
 revision="0da9d805cd697dd2eed050374f704b29e8d3c18a"
 score: Rename Objects_Information::size

 Rename Objects_Information::size to Objects_Information::object_size.
 Change its type from size_t to uint16_t and move it to reduce the size
 of Objects_Information.

 Update #3621.
 }}}

--
Ticket URL: 
RTEMS Project 
RTEMS Project
___
bugs mailing list
bugs@rtems.org
http://lists.rtems.org/mailman/listinfo/bugs

Re: [RTEMS Project] #3621: Statically initialize object information structures

2018-11-26 Thread RTEMS trac
#3621: Statically initialize object information structures
-+--
 Reporter:  Sebastian Huber  |   Owner:  Sebastian Huber
 Type:  enhancement  |  Status:  assigned
 Priority:  normal   |   Milestone:  5.1
Component:  score| Version:  5
 Severity:  normal   |  Resolution:
 Keywords:   |  Blocked By:
 Blocking:   |
-+--

Comment (by Chris Johns):

 Great and thank you.

--
Ticket URL: 
RTEMS Project 
RTEMS Project
___
bugs mailing list
bugs@rtems.org
http://lists.rtems.org/mailman/listinfo/bugs

Re: [RTEMS Project] #3621: Statically initialize object information structures

2018-11-26 Thread RTEMS trac
#3621: Statically initialize object information structures
-+--
 Reporter:  Sebastian Huber  |   Owner:  Sebastian Huber
 Type:  enhancement  |  Status:  assigned
 Priority:  normal   |   Milestone:  5.1
Component:  score| Version:  5
 Severity:  normal   |  Resolution:
 Keywords:   |  Blocked By:
 Blocking:   |
-+--

Comment (by Sebastian Huber):

 You can still do whatever you want after the system is initialized. I just
 want to get rid of the workspace allocations used during the system
 startup and instead use storage allocated by the linker.

--
Ticket URL: 
RTEMS Project 
RTEMS Project
___
bugs mailing list
bugs@rtems.org
http://lists.rtems.org/mailman/listinfo/bugs

Re: [RTEMS Project] #3621: Statically initialize object information structures

2018-11-26 Thread RTEMS trac
#3621: Statically initialize object information structures
-+--
 Reporter:  Sebastian Huber  |   Owner:  Sebastian Huber
 Type:  enhancement  |  Status:  assigned
 Priority:  normal   |   Milestone:  5.1
Component:  score| Version:  5
 Severity:  normal   |  Resolution:
 Keywords:   |  Blocked By:
 Blocking:   |
-+--

Comment (by Chris Johns):

 Replying to [ticket:3621 Sebastian Huber]:
 > The object controls reside on the heap even for fixed object count
 configuration.  Using a statically allocated array makes it easier to find
 the objects during debugging.

 It is not clear me to what the requirements are these change are being
 based on? Is there some overriding push for everything to be static tables
 every where.

 Static tables for initialisation do solve some issues such as audit-able
 configuration control but are there other use cases where this may not be
 a good fit. I cannot tell. For example statically inflexible kernel
 initialisation and libdl do not sit well together. The demands on the
 kernel configuration from the loadable code can vary and does and if you
 consider libdl as a means to produce "golden images" having the ability to
 vary the configuration is important. I have built systems where the
 bootloader loads the kernel configuration data and then loads the
 application. Can this still be done?

--
Ticket URL: 
RTEMS Project 
RTEMS Project
___
bugs mailing list
bugs@rtems.org
http://lists.rtems.org/mailman/listinfo/bugs

[RTEMS Project] #3621: Statically initialize object information structures

2018-11-26 Thread RTEMS trac
#3621: Statically initialize object information structures
--+-
  Reporter:  Sebastian Huber  |  Owner:  Sebastian Huber
  Type:  enhancement  | Status:  assigned
  Priority:  normal   |  Milestone:  5.1
 Component:  score|Version:  5
  Severity:  normal   |   Keywords:
Blocked By:   |   Blocking:
--+-
 Statically initialize the object information structures to make the
 configuration easier to review and simplify the debugging.

 The workspace size estimate generated by  looks
 currently like this:
 {{{
   const rtems_configuration_table Configuration = { ( ( ( (ssize_t)
 ((1 +
 0) != 0 ? 1 : 0) * ((Objects_Maximum) ((1 + 0) & ~0x8000U))) *
 (sizeof(Configuration_Thread_control))) != 0 ? 1 : 0) * ((1 + 0) != 0
 ? 1 :
 0) * ((Objects_Maximum) ((1 + 0) & ~0x8000U))) *
 (sizeof(Configuration_Thread_control)) + (2 * sizeof(uintptr_t) +
 (sizeof(Heap_Protection_block_begin) +
 sizeof(Heap_Protection_block_end +
 sizeof(Heap_Block)) + (8) - 1) - ((sizeof(Heap_Block)) + (8) - 1) %
 (8))) -
 1) - (1 + 0) != 0 ? 1 : 0) * ((Objects_Maximum) ((1 + 0) &
 ~0x8000U)))
 * (sizeof(Configuration_Thread_control)) + (2 * sizeof(uintptr_t) +
 (sizeof(Heap_Protection_block_begin) +
 sizeof(Heap_Protection_block_end +
 sizeof(Heap_Block)) + (8) - 1) - ((sizeof(Heap_Block)) + (8) - 1) %
 (8)))
 }}}
 [more than 500 similar lines]
 {{{
 1) - (((sizeof(Configuration_Initial_Extensions) /
 sizeof((Configuration_Initial_Extensions)[0])) *
 sizeof(User_extensions_Switch_control) + (2 * sizeof(uintptr_t) +
 (sizeof(Heap_Protection_block_begin) +
 sizeof(Heap_Protection_block_end +
 sizeof(Heap_Block)) + (8) - 1) - ((sizeof(Heap_Block)) + (8) - 1) %
 (8))) -
 1) % sizeof(Heap_Block)) + (8) - 1) - ((sizeof(Heap_Block)) + (8) - 1)
 %
 (8)) + 0 + 0 + (0 * 1024) + 2 * sizeof(uintptr_t) +
 (sizeof(Heap_Protection_block_begin) +
 sizeof(Heap_Protection_block_end +
 (8) - 1) - (((2 * sizeof(uintptr_t) + (sizeof(Heap_Protection_block_begin)
 +
 sizeof(Heap_Protection_block_end + (8) - 1) % (8)) ),
 }}}

 The object controls reside on the heap even for fixed object count
 configuration.  Using a statically allocated array makes it easier to find
 the objects during debugging.

--
Ticket URL: 
RTEMS Project 
RTEMS Project
___
bugs mailing list
bugs@rtems.org
http://lists.rtems.org/mailman/listinfo/bugs