Messages in this thread | | | Date | Mon, 8 Dec 2008 14:22:26 -0800 | From | Andrew Morton <> | Subject | Re: [PATCH] percpu_counter: Fix __percpu_counter_sum() |
| |
On Mon, 8 Dec 2008 17:12:41 -0500 Theodore Tso <tytso@mit.edu> wrote:
> Actually, if all popular architectures had a hardware-implemented > atomic_t, I wonder how much ext4 really needs the percpu counter, > especially given ext4's multiblock allocator; with ext3, given that > each block allocation required taking a per-filesystem spin lock, > optimizing away that spinlock was far more important for improving > ext3's scalability. But with the multiblock allocator, it may that > we're going through a lot more effort than what is truly necessary.
I expect that the performance numbers for the percpu counters in the superblock are buried away in the historical git changelogs somewhere. I don't recall how much difference it made.
An atomic_inc() of an fs-wide counter will have similar cost to spin_lock() of an fs-wide lock.
If the multiblock allocator can avoid doing one atomic_inc() for each block and can instead do atomic_add(large_value, &counter) then yes, I'm sure that an fs-wide atomic_long_t would be OK.
Of course, similar changes should be made in trucate, etc.
| |