Ticket 4503

Joel Sherrill joel.sherrill at gmail.com
Fri Dec 17 17:05:51 UTC 2021


Zack, did you ever make any progress on this?

I'm just looking at tickets and wondered.

On Sat, Dec 11, 2021 at 9:41 AM Gedare Bloom <gedare at rtems.org> wrote:
>
> On Thu, Nov 18, 2021 at 7:22 PM zack leung <zakthertemsdev at gmail.com> wrote:
> >
> > bump
> >
> > On Mon, 18 Oct 2021 at 23:58, zack leung <zakthertemsdev at gmail.com> wrote:
> >
> > > bump
> > >
> > >
> > > On Sat, 25 Sept 2021 at 00:26, zack leung <zakthertemsdev at gmail.com>
> > > wrote:
> > >
> > >> bump
> > >>
> > >> On Thu, 9 Sept 2021 at 02:17, zack leung <zakthertemsdev at gmail.com>
> > >> wrote:
> > >>
> > >>> >Thanks! I guess i'm really unsure about how the pointer relates to the
> > >>> amount of memory that you can use. I assume the Malloc keeps track of the
> > >>> sections being used in the heap. Does this function Allocate 2 blocks since
> > >>> the pointer is set to
> > >>>
> > >>> (uintptr_t) next_block + HEAP_ALLOC_BONUS - alloc_begin;
> > >>>
>
> No, this is calculating the size of 'this block' considering that it's
> allocated memory starts at "alloc_begin" and it ends at the
> "next_block" heap block metadata or header. You should read about how
> malloc implementations generally work. The allocated memory has some
> metadata before it to implement the linked data structures necessary
> to support dynamic allocation. So a block is the header + allocated
> range. Only the allocated range plus any excess before the next
> block's header is considered usable.
>
> > >>> >(I know it's a bit naive to assume this given my first question)
> > >>>
> > >>> think the method is _Heap_Size_of_alloc_area. It may need a wrapper
> > >>> added to the protected heap wrapper for safety. I don't know if it has one.
> > >>> It should be the equivalent functionality.
> > >>> > How would i implement a wrapper and what safety measures need to be
> > >>> implemented. So far it's checking if :  the block is not in the heap and if
> > >>> it's been previously used. Is the usable memory in the heap calculated by:
> > >>> the size of the block * # of blocks?
> > >>>
>
> You would have to see if the Protected Heap implementation has some
> additional metadata between the end of an allocated range in one block
> and the block header in the next. I don't think it matters too much
> because most of the 'protected' aspects have to do with free block
> management. But that should be confirmed.
>
> The check is not "if it's been previously used" I suggest that you
> look at what the invoked function does and how it is documented. Avoid
> making assumptions based on names.
>
> The usable memory is NOT the size of the block * # of blocks, because
> the size of the block includes the header.
>
> > >>> Thanks, Zack
> > >>>
> > >>> ---------- Forwarded message ---------
> > >>> From: Joel Sherrill <joel at rtems.org>
> > >>> Date: Wed, 8 Sept 2021 at 20:30
> > >>> Subject: Re: Ticket 4503
> > >>> To: Gedare Bloom <gedare at rtems.org>
> > >>> Cc: zack leung <zakthertemsdev at gmail.com>, rtems-devel at rtems.org <
> > >>> devel at rtems.org>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>> On Wed, Sep 8, 2021 at 11:02 AM Gedare Bloom <gedare at rtems.org> wrote:
> > >>>
> > >>>> Hi Zack,
> > >>>>
> > >>>> https://devel.rtems.org/ticket/4503
> > >>>>
> > >>>> The malloc implementation exists in the score as the Heap Manager.
> > >>>> search for "Heap_" within cpukit to get some ideas where to look.
> > >>>>
> > >>>
> > >>> I think the method is _Heap_Size_of_alloc_area. It may need a wrapper
> > >>> added to the protected heap wrapper for safety. I don't know if it has one.
> > >>> It should be the equivalent functionality.
> > >>>
> > >>> newlib's malloc.h will need looking at to make sure we provide the right
> > >>> methods.
> > >>>
> > >>>
> > >>>
> > >>>>
> > >>>> @Joel are these two tickets duplicates?
> > >>>> https://devel.rtems.org/ticket/4503
> > >>>> https://devel.rtems.org/ticket/4271
> > >>>>
> > >>>
> > >>> Yes. Closed #4271 and merged comments.
> > >>>
> > >>> --joel
> > >>>
> > >>>
> > >>>>
> > >>>>
> > >>>> -Gedare
> > >>>>
> > >>>> On Tue, Sep 7, 2021 at 7:14 PM zack leung <zakthertemsdev at gmail.com>
> > >>>> wrote:
> > >>>>
> > >>>>> I was wondering about ticket 4503. I was wondering where The required
> > >>>>> functionality should be in the underlying score/ capability used can be
> > >>>>> found to write this function. Also how does this relate  to
> > >>>>>
> > >>>>> Add common malloc family extension method malloc_usable_size()
> > >>>>> <https://devel.rtems.org/ticket/4271>?
> > >>>>> Thanks
> > >>>>> Zack
> > >>>>> _______________________________________________
> > >>>>> devel mailing list
> > >>>>> devel at rtems.org
> > >>>>> http://lists.rtems.org/mailman/listinfo/devel
> > >>>>
> > >>>>
> > _______________________________________________
> > devel mailing list
> > devel at rtems.org
> > http://lists.rtems.org/mailman/listinfo/devel
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel


More information about the devel mailing list