> -----Original Message----- > From: Burakov, Anatoly <anatoly.bura...@intel.com> > Sent: Thursday, November 21, 2019 9:17 PM > To: Xueming(Steven) Li <xuemi...@mellanox.com>; David Marchand > <david.march...@redhat.com> > Cc: Asaf Penso <as...@mellanox.com>; dev <dev@dpdk.org>; dpdk stable > <sta...@dpdk.org> > Subject: Re: [dpdk-dev] [dpdk-stable] [PATCH 2/2] malloc: fix realloc padded > element size > > On 21-Nov-19 1:15 PM, Burakov, Anatoly wrote: > > On 21-Nov-19 12:55 PM, Xueming(Steven) Li wrote: > >> Hi Anatoly, > >> > >>> -----Original Message----- > >>> From: Burakov, Anatoly <anatoly.bura...@intel.com> > >>> Sent: Thursday, November 21, 2019 8:30 PM > >>> To: David Marchand <david.march...@redhat.com>; Xueming(Steven) > Li > >>> <xuemi...@mellanox.com> > >>> Cc: Asaf Penso <as...@mellanox.com>; dev <dev@dpdk.org>; dpdk > stable > >>> <sta...@dpdk.org> > >>> Subject: Re: [dpdk-stable] [PATCH 2/2] malloc: fix realloc padded > >>> element size > >>> > >>> On 20-Nov-19 1:25 PM, David Marchand wrote: > >>>> On Wed, Nov 20, 2019 at 3:12 AM Xueming(Steven) Li > >>>> <xuemi...@mellanox.com> wrote: > >>>>> > >>>>>> -----Original Message----- > >>>>>> From: David Marchand <david.march...@redhat.com> > >>>>>> Sent: Wednesday, November 20, 2019 4:47 AM > >>>>>> To: Xueming(Steven) Li <xuemi...@mellanox.com>; Anatoly > Burakov > >>>>>> <anatoly.bura...@intel.com> > >>>>>> Cc: Asaf Penso <as...@mellanox.com>; dev <dev@dpdk.org>; dpdk > >>>>>> stable <sta...@dpdk.org> > >>>>>> Subject: Re: [dpdk-stable] [PATCH 2/2] malloc: fix realloc padded > >>>>>> element size > >>>>>> > >>>>>> On Tue, Nov 12, 2019 at 3:50 PM Xueming Li > >>>>>> <xuemi...@mellanox.com> > >>>>>> wrote: > >>>>>>> > >>>>>>> When resize a memory with next element, the original element > >>>>>>> size grows. > >>>>>>> If the orginal element has padding, the real inner element size > >>>>>>> didn't grow as well and this causes trailer verification failure > >>>>>>> when malloc debug enabled. > >>>>>> > >>>>>> I did not see this when running the malloc_autotest with debug > >>>>>> enabled. > >>>>>> What is missing for me to catch it? > >>>>>> > >>>>> Yes, it happens rarely, depends on memory fragment. I only caught > >>>>> this in > >>> middle of a long test. > >>>>> > >>>>>> > >>>>>> Just a bit chilly to apply this series. > >>>>>> The first patch seems an optimisation. > >>>>>> The second one seems more interesting if we fix the debug mode, > >>>>>> but I suppose we can live without them in 19.11. > >>>>> Few people enable memory debug option, they are there for years. > >>>> > >>>> Had a discussion offlist with Anatoly. > >>>> Those two issues are hard to catch but the fixes are relevant and > >>>> Anatoly is confident. > >>>> I will take this in rc3. > >>>> > >>>> Series applied, thanks. > >>>> > >>> > >>> To test them, i had to modify malloc to always create padded > >>> elements :) > >> > >> I fix another issue in element join, as I made some local enhancement > >> patch on memory, it's required, not sure whether it help on public code. > >> > >> diff --git a/lib/librte_eal/common/malloc_elem.c > >> b/lib/librte_eal/common/malloc_elem.c > >> index afacb1813c..c3fa0d1039 100644 > >> --- a/lib/librte_eal/common/malloc_elem.c > >> +++ b/lib/librte_eal/common/malloc_elem.c > >> @@ -487,6 +487,10 @@ join_elem(struct malloc_elem *elem1, struct > >> malloc_elem *elem2) > >> else > >> elem1->heap->last = elem1; > >> elem1->next = next; > >> + if (elem1->pad) { > >> + struct malloc_elem *inner = RTE_PTR_ADD(elem1, > >> elem1->pad); > >> + inner->size += elem2->size; > >> + } > >> } > >> > >> > > > > This looks like a good change as well - while we /mostly/ join > > elements when they're free, there is one case where we can join a free > > element with one already occupied - and /that/ element could be > > padded, which we currently don't update. So, this patch would help the > public code as well.
Correct, it happens in rte_realloc. > > (that said, the += should be replaced with explicit calculation of correct > size, > as this joining may be run multiple times, and we don't want incorrect size > accumulating...) I'll update and send a new patch. > > > > >> > >>> > >>> -- > >>> Thanks, > >>> Anatoly > > > > > > > -- > Thanks, > Anatoly