31/05/2018 11:50, Anatoly Burakov: > This patchset does two things. First, it enables reserving > memzones of zero-length that are IOVA-contiguous. Second, > it fixes a long-standing race condition in reserving > zero-length memzones, where malloc heap is not locked between > stats collection and reservation, and will instead allocate > biggest element on the spot. > > Some limitations are added, but they are a trade-off between > not having race conditions and user convenience. It would be > possible to lock all heaps during memzone reserve for zero- > length, and that would keep the old behavior, but given how > such allocation (especially when asking for IOVA-contiguous > memory) may take a long time, a design decision was made to > keep things simple, and only check other heaps if the > current one is completely busy. > > Ideas on improvement are welcome. > > Anatoly Burakov (3): > malloc: add finding biggest free IOVA-contiguous element > malloc: allow reserving biggest element > memzone: improve zero-length memzone reserve
Applied, thanks