Alex Tomas wrote:
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. XFS recently made similar scalability changes in this area, see the 2006
OLS paper, if you're interested.
-Eric
-
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html