Re: Another Performance Regression in write() syscall

Salman Qazi
2009-02-25T01:06:06Z

On Mon, Feb 23, 2009 at 10:25 PM, Dave Hansen <dave@linux.vnet.ibm.com> wrote:
> On Mon, 2009-02-23 at 22:05 -0800, Salman Qazi wrote:
>> Analysis of profile data has led us to believe that the commit
>> 3d733633a633065729c9e4e254b2e5442c00ef7e has caused a performance
>> regression. This commit provides for tracking of writers so that read only
>> bind mounts function correctly.
>>
>> We can verify this regression by applying the following patch to partially
>> disable the above-mentioned commit and then running the fstime component
>> of Unixbench. The settings used were 256 byte writes with MAX_BLOCK of 2000.
>
> I'm a bit surprised that write() is what is regressing. Unless I
> screwed up, we do all the expensive accounting at open()/close() time.
> Is this a test that gets run in parallel on multiple cpus?
>
> Could you take a look at Nick's patches to speed this stuff up?
>
> http://thread.gmane.org/gmane.linux.file-systems/28186
>

The pair of patches seems to fix our problem. The benchmark results
for 2.6.29-rc6 + the above patches:

308200, 335850, 335900, 335150, 334700

Thanks for your help.

> We may need to dust those off, although I'm still a bit worried about
> the complexities of open-coding all the barriers.
>
> Could we also see some kind of profile? What kind of machine are you
> seeing this on, btw?

It's an Opteron with with 4 cores. Unfortunately, I don't have a
profile for the upstream kernel.

>
> -- Dave
>
>