Re: [RFC] Ext3 online defrag

Alex Tomas
2006-10-27T14:04:31Z

>>>>> Eric Sandeen (ES) writes:

ES> Alex Tomas wrote:
>> 3) scalable reservation
>> required for delayed allocation to avoid -ENOSPC at flush time.
>> current version uses per-sb spinlock.

ES> Can you elaborate on this issue? Shouldn't delayed allocation
ES> decrement free space immediately, and only the actual block location
ES> choice is delayed? Or is this due to potential extra metadata space
ES> required as blocks are allocated?

exactly. in this case, reservation has nothing to do with allocation
or preallocation of real blocks. this is just a *per-sb counter* of
blocks reserved for allocation at flush time. it includes all
non-allocated-yet blocks and metadata needed to allocate them (bitmaps,
group descriptors, blocks extent tree, etc). the previous version
of mballoc has reservation, but it doesn't scale very well being
a single global counter protected by the spinlock. at least, in many
regular loads I observed the reservation function in top30 of oprofile.

thanks, Alex