linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* aio-stress throughput regressions from 2.6.11 to 2.6.12
@ 2005-07-01  7:56 Suparna Bhattacharya
  2005-07-01 14:25 ` Benjamin LaHaise
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Suparna Bhattacharya @ 2005-07-01  7:56 UTC (permalink / raw)
  To: linux-aio, linux-fsdevel; +Cc: linux-kernel

Has anyone else noticed major throughput regressions for random
reads/writes with aio-stress in 2.6.12 ?
Or have there been any other FS/IO regressions lately ?

On one test system I see a degradation from around 17+ MB/s to 11MB/s
for random O_DIRECT AIO (aio-stress -o3 testext3/rwfile5) from 2.6.11
to 2.6.12. It doesn't seem filesystem specific. Not good :(

BTW, Chris/Ben, it doesn't look like the changes to aio.c have had an impact
(I copied those back to my 2.6.11 tree and tried the runs with no effect)
So it is something else ...

Ideas/thoughts/observations ?

Regards
Suparna

-- 
Suparna Bhattacharya (suparna@in.ibm.com)
Linux Technology Center
IBM Software Lab, India

--
To unsubscribe, send a message with 'unsubscribe linux-aio' in
the body to majordomo@kvack.org.  For more info on Linux AIO,
see: http://www.kvack.org/aio/
Don't email: <a href=mailto:"aart@kvack.org">aart@kvack.org</a>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: aio-stress throughput regressions from 2.6.11 to 2.6.12
  2005-07-01  7:56 aio-stress throughput regressions from 2.6.11 to 2.6.12 Suparna Bhattacharya
@ 2005-07-01 14:25 ` Benjamin LaHaise
  2005-07-06  4:30   ` Suparna Bhattacharya
  2005-07-05 14:00 ` Chris Mason
  2005-07-11  7:43 ` aio-stress throughput regressions from 2.6.11 to 2.6.12 Sébastien Dugué
  2 siblings, 1 reply; 9+ messages in thread
From: Benjamin LaHaise @ 2005-07-01 14:25 UTC (permalink / raw)
  To: Suparna Bhattacharya; +Cc: linux-aio, linux-fsdevel, linux-kernel

On Fri, Jul 01, 2005 at 01:26:00PM +0530, Suparna Bhattacharya wrote:
> On one test system I see a degradation from around 17+ MB/s to 11MB/s
> for random O_DIRECT AIO (aio-stress -o3 testext3/rwfile5) from 2.6.11
> to 2.6.12. It doesn't seem filesystem specific. Not good :(

What sort of io subsystem does it have?  Also, does changing the 
elevator make any difference?  I'm away for the long weekend, but will 
help look into this next week.

		-ben

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: aio-stress throughput regressions from 2.6.11 to 2.6.12
  2005-07-01  7:56 aio-stress throughput regressions from 2.6.11 to 2.6.12 Suparna Bhattacharya
  2005-07-01 14:25 ` Benjamin LaHaise
@ 2005-07-05 14:00 ` Chris Mason
  2005-07-05 16:12   ` Benjamin LaHaise
  2005-07-06 10:37   ` Suparna Bhattacharya
  2005-07-11  7:43 ` aio-stress throughput regressions from 2.6.11 to 2.6.12 Sébastien Dugué
  2 siblings, 2 replies; 9+ messages in thread
From: Chris Mason @ 2005-07-05 14:00 UTC (permalink / raw)
  To: suparna; +Cc: linux-aio, linux-fsdevel, linux-kernel

On Friday 01 July 2005 03:56, Suparna Bhattacharya wrote:
> Has anyone else noticed major throughput regressions for random
> reads/writes with aio-stress in 2.6.12 ?
> Or have there been any other FS/IO regressions lately ?
>
> On one test system I see a degradation from around 17+ MB/s to 11MB/s
> for random O_DIRECT AIO (aio-stress -o3 testext3/rwfile5) from 2.6.11
> to 2.6.12. It doesn't seem filesystem specific. Not good :(
>
> BTW, Chris/Ben, it doesn't look like the changes to aio.c have had an
> impact (I copied those back to my 2.6.11 tree and tried the runs with no
> effect) So it is something else ...
>
> Ideas/thoughts/observations ?

Lets try to narrow it down a bit:

aio-stress -o 3 -d 1 will set the depth to 1, (io_submit then wait one request 
at a time).  This doesn't take the aio subsystem out of the picture, but it 
does make the block layer interaction more or less the same as non-aio 
benchmarks.  If this is slow, I would suspect something in the block layer, 
and iozone -I -i 2 -w -f testext3/rwfile5 should also show the regression.

If it doesn't regress, I would suspect something in the aio core.  My first 
attempts at the context switch reduction patches caused this kind of 
regression.  There was too much latency in sending the events up to userland.

Other options:

Try different elevators
Try O_SYNC aio random writes
Try aio random reads
Try buffers random reads

-chris
--
To unsubscribe, send a message with 'unsubscribe linux-aio' in
the body to majordomo@kvack.org.  For more info on Linux AIO,
see: http://www.kvack.org/aio/
Don't email: <a href=mailto:"aart@kvack.org">aart@kvack.org</a>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: aio-stress throughput regressions from 2.6.11 to 2.6.12
  2005-07-05 14:00 ` Chris Mason
@ 2005-07-05 16:12   ` Benjamin LaHaise
  2005-07-06 10:37   ` Suparna Bhattacharya
  1 sibling, 0 replies; 9+ messages in thread
From: Benjamin LaHaise @ 2005-07-05 16:12 UTC (permalink / raw)
  To: Chris Mason; +Cc: suparna, linux-aio, linux-fsdevel, linux-kernel

On Tue, Jul 05, 2005 at 10:00:24AM -0400, Chris Mason wrote:
> If it doesn't regress, I would suspect something in the aio core.  My first 
> attempts at the context switch reduction patches caused this kind of 
> regression.  There was too much latency in sending the events up to userland.

AIO will by its very nature have a higher rate of context switches unless 
the subsystem in question does its completion from the interrupt handler.  
There are a few optimizations in this area that we can do to improve things 
for some of the common usage models: when sleeping in read_events() we can 
do iocb runs in the sleeping task instead of switching to the aio helper 
daemon.  That might help for Oracle's usage model of aio, and it should 
also help aio-stress.

There are also other ways of reducing the overhead of the context switches.  
O_DIRECT operations could take note of the mm they are operating on and 
do its get_user_pages() on the mm without the tlb being flushed.

		-ben
-- 
"Time is what keeps everything from happening all at once." -- John Wheeler
--
To unsubscribe, send a message with 'unsubscribe linux-aio' in
the body to majordomo@kvack.org.  For more info on Linux AIO,
see: http://www.kvack.org/aio/
Don't email: <a href=mailto:"aart@kvack.org">aart@kvack.org</a>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: aio-stress throughput regressions from 2.6.11 to 2.6.12
  2005-07-01 14:25 ` Benjamin LaHaise
@ 2005-07-06  4:30   ` Suparna Bhattacharya
  2005-07-08 17:58     ` Benjamin LaHaise
  0 siblings, 1 reply; 9+ messages in thread
From: Suparna Bhattacharya @ 2005-07-06  4:30 UTC (permalink / raw)
  To: Benjamin LaHaise; +Cc: linux-aio, linux-fsdevel, linux-kernel

On Fri, Jul 01, 2005 at 10:25:55AM -0400, Benjamin LaHaise wrote:
> On Fri, Jul 01, 2005 at 01:26:00PM +0530, Suparna Bhattacharya wrote:
> > On one test system I see a degradation from around 17+ MB/s to 11MB/s
> > for random O_DIRECT AIO (aio-stress -o3 testext3/rwfile5) from 2.6.11
> > to 2.6.12. It doesn't seem filesystem specific. Not good :(
> 
> What sort of io subsystem does it have?  Also, does changing the 

aic7xxx.
> elevator make any difference?  I'm away for the long weekend, but will 

I tried switching to the noop elevator - the regression was still there.

> help look into this next week.

Do you see the regression as well, or is it just me ?

Regards
Suparna

> 
> 		-ben

-- 
Suparna Bhattacharya (suparna@in.ibm.com)
Linux Technology Center
IBM Software Lab, India


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: aio-stress throughput regressions from 2.6.11 to 2.6.12
  2005-07-05 14:00 ` Chris Mason
  2005-07-05 16:12   ` Benjamin LaHaise
@ 2005-07-06 10:37   ` Suparna Bhattacharya
  2005-07-06 12:10     ` aio-stress regressions in 2.6.12 narrowed down to AIC7xxx Suparna Bhattacharya
  1 sibling, 1 reply; 9+ messages in thread
From: Suparna Bhattacharya @ 2005-07-06 10:37 UTC (permalink / raw)
  To: Chris Mason; +Cc: linux-aio, linux-fsdevel, linux-kernel

On Tue, Jul 05, 2005 at 10:00:24AM -0400, Chris Mason wrote:
> On Friday 01 July 2005 03:56, Suparna Bhattacharya wrote:
> > Has anyone else noticed major throughput regressions for random
> > reads/writes with aio-stress in 2.6.12 ?
> > Or have there been any other FS/IO regressions lately ?
> >
> > On one test system I see a degradation from around 17+ MB/s to 11MB/s
> > for random O_DIRECT AIO (aio-stress -o3 testext3/rwfile5) from 2.6.11
> > to 2.6.12. It doesn't seem filesystem specific. Not good :(
> >
> > BTW, Chris/Ben, it doesn't look like the changes to aio.c have had an
> > impact (I copied those back to my 2.6.11 tree and tried the runs with no
> > effect) So it is something else ...
> >
> > Ideas/thoughts/observations ?
> 
> Lets try to narrow it down a bit:
> 
> aio-stress -o 3 -d 1 will set the depth to 1, (io_submit then wait one request 
This doesn't regress - the problem really happens when we don't wait one
at a time.

> at a time).  This doesn't take the aio subsystem out of the picture, but it 
> does make the block layer interaction more or less the same as non-aio 
> benchmarks.  If this is slow, I would suspect something in the block layer, 
> and iozone -I -i 2 -w -f testext3/rwfile5 should also show the regression.
> 
> If it doesn't regress, I would suspect something in the aio core.  My first 
> attempts at the context switch reduction patches caused this kind of 
> regression.  There was too much latency in sending the events up to userland.
> 
> Other options:
> 
> Try different elevators

Still regresses (I tried noop instead of as)

> Try O_SYNC aio random writes
> Try aio random reads
> Try buffers random reads

Again all these end up waiting one at a time with mainline because it
forces buffered AIO to be synchronous, so we the regression doesn't
show up. But, when I apply my patches to make buffered fsAIO async,
so we aren't waiting one at a time -- there is a similar regression.
In fact it was this regression that made me go back and check if it
was happening with AIO-DIO as well.

Regards
Suparna

> 
> -chris

-- 
Suparna Bhattacharya (suparna@in.ibm.com)
Linux Technology Center
IBM Software Lab, India

--
To unsubscribe, send a message with 'unsubscribe linux-aio' in
the body to majordomo@kvack.org.  For more info on Linux AIO,
see: http://www.kvack.org/aio/
Don't email: <a href=mailto:"aart@kvack.org">aart@kvack.org</a>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: aio-stress regressions in 2.6.12 narrowed down to AIC7xxx
  2005-07-06 10:37   ` Suparna Bhattacharya
@ 2005-07-06 12:10     ` Suparna Bhattacharya
  0 siblings, 0 replies; 9+ messages in thread
From: Suparna Bhattacharya @ 2005-07-06 12:10 UTC (permalink / raw)
  To: Chris Mason; +Cc: linux-aio, linux-fsdevel, linux-kernel, linux-scsi


OK, I think I have narrowed it down to aic7xxx driver, because when
I specify CONFIG_SCSI_AIC7XXX_OLD, it does not regress. 

The regression occurs from 2.6.11 to 2.6.12  (from 17MB/s it goes down to
11MB/s)

The regression is still there in 2.6.13-rc1 +  the "speed fix" patch(discussed
in the recent aic7xxx regression thread on linux-scsi)

Recreate by running: aio-stress -O -o3 <1 GB testfile>

Config options:
CONFIG_SCSI_AIC7XXX=y
CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
CONFIG_AIC7XXX_RESET_DELAY_MS=15000
CONFIG_AIC7XXX_DEBUG_ENABLE=y
CONFIG_AIC7XXX_DEBUG_MASK=0
CONFIG_AIC7XXX_REG_PRETTY_PRINT=y


Comparing dmesg outputs
On 2.6.11
scsi0 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 6.2.36
        <Adaptec aic7896/97 Ultra2 SCSI adapter>
        aic7896/97: Ultra2 Wide Channel B, SCSI Id=7, 32/253 SCBs

(scsi0:A:0): 80.000MB/s transfers (40.000MHz, offset 63, 16bit)
  Vendor: IBM-ESXS  Model: ST318305LC    !#  Rev: B245
  Type:   Direct-Access                      ANSI SCSI revision: 03
scsi0:A:0:0: Tagged Queuing enabled.  Depth 32
(scsi0:A:1): 80.000MB/s transfers (40.000MHz, offset 63, 16bit)
  Vendor: IBM-ESXS  Model: ST318305LC    !#  Rev: B245
...

On 2.6.12
scsi0 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 6.2.36
        <Adaptec aic7896/97 Ultra2 SCSI adapter>
        aic7896/97: Ultra2 Wide Channel B, SCSI Id=7, 32/253 SCBs

  Vendor: IBM-ESXS  Model: ST318305LC    !#  Rev: B245
  Type:   Direct-Access                      ANSI SCSI revision: 03
scsi0:A:0:0: Tagged Queuing enabled.  Depth 32
 target0:0:0: Beginning Domain Validation
WIDTH IS 1
(scsi0:A:0): 6.600MB/s transfers (16bit)
(scsi0:A:0): 80.000MB/s transfers (40.000MHz, offset 63, 16bit)
 target0:0:0: Ending Domain Validation
  Vendor: IBM-ESXS  Model: ST318305LC    !#  Rev: B245
...


On 2.6.13-rc1 + "speed fix"
scsi0 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 6.2.36
        <Adaptec aic7896/97 Ultra2 SCSI adapter>
        aic7896/97: Ultra2 Wide Channel B, SCSI Id=7, 32/253 SCBs

 target0:0:0: asynchronous.
  Vendor: IBM-ESXS  Model: ST318305LC    !#  Rev: B245
  Type:   Direct-Access                      ANSI SCSI revision: 03
scsi0:A:0:0: Tagged Queuing enabled.  Depth 32
 target0:0:0: Beginning Domain Validation
 target0:0:0: wide asynchronous.
 target0:0:0: FAST-40 WIDE SCSI 80.0 MB/s ST (25 ns, offset 63)
 target0:0:0: Ending Domain Validation
target0:0:1: asynchronous.
  Vendor: IBM-ESXS  Model: ST318305LC    !#  Rev: B245
...

Regards
Suparna


On Wed, Jul 06, 2005 at 04:07:29PM +0530, Suparna Bhattacharya wrote:
> On Tue, Jul 05, 2005 at 10:00:24AM -0400, Chris Mason wrote:
> > On Friday 01 July 2005 03:56, Suparna Bhattacharya wrote:
> > > Has anyone else noticed major throughput regressions for random
> > > reads/writes with aio-stress in 2.6.12 ?
> > > Or have there been any other FS/IO regressions lately ?
> > >
> > > On one test system I see a degradation from around 17+ MB/s to 11MB/s
> > > for random O_DIRECT AIO (aio-stress -o3 testext3/rwfile5) from 2.6.11
> > > to 2.6.12. It doesn't seem filesystem specific. Not good :(
> > >
> > > BTW, Chris/Ben, it doesn't look like the changes to aio.c have had an
> > > impact (I copied those back to my 2.6.11 tree and tried the runs with no
> > > effect) So it is something else ...
> > >
> > > Ideas/thoughts/observations ?
> > 
> > Lets try to narrow it down a bit:
> > 
> > aio-stress -o 3 -d 1 will set the depth to 1, (io_submit then wait one request 
> This doesn't regress - the problem really happens when we don't wait one
> at a time.
> 
> > at a time).  This doesn't take the aio subsystem out of the picture, but it 
> > does make the block layer interaction more or less the same as non-aio 
> > benchmarks.  If this is slow, I would suspect something in the block layer, 
> > and iozone -I -i 2 -w -f testext3/rwfile5 should also show the regression.
> > 
> > If it doesn't regress, I would suspect something in the aio core.  My first 
> > attempts at the context switch reduction patches caused this kind of 
> > regression.  There was too much latency in sending the events up to userland.
> > 
> > Other options:
> > 
> > Try different elevators
> 
> Still regresses (I tried noop instead of as)
> 
> > Try O_SYNC aio random writes
> > Try aio random reads
> > Try buffers random reads
> 
> Again all these end up waiting one at a time with mainline because it
> forces buffered AIO to be synchronous, so we the regression doesn't
> show up. But, when I apply my patches to make buffered fsAIO async,
> so we aren't waiting one at a time -- there is a similar regression.
> In fact it was this regression that made me go back and check if it
> was happening with AIO-DIO as well.
> 
> Regards
> Suparna
> 
> > 
> > -chris
> 
> -- 
> Suparna Bhattacharya (suparna@in.ibm.com)
> Linux Technology Center
> IBM Software Lab, India
> 
> --
> To unsubscribe, send a message with 'unsubscribe linux-aio' in
> the body to majordomo@kvack.org.  For more info on Linux AIO,
> see: http://www.kvack.org/aio/
> Don't email: <a href=mailto:"aart@kvack.org">aart@kvack.org</a>

-- 
Suparna Bhattacharya (suparna@in.ibm.com)
Linux Technology Center
IBM Software Lab, India


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: aio-stress throughput regressions from 2.6.11 to 2.6.12
  2005-07-06  4:30   ` Suparna Bhattacharya
@ 2005-07-08 17:58     ` Benjamin LaHaise
  0 siblings, 0 replies; 9+ messages in thread
From: Benjamin LaHaise @ 2005-07-08 17:58 UTC (permalink / raw)
  To: Suparna Bhattacharya; +Cc: linux-aio, linux-fsdevel, linux-kernel

On Wed, Jul 06, 2005 at 10:00:56AM +0530, Suparna Bhattacharya wrote:
> Do you see the regression as well, or is it just me ?

Throughput for me on an ICH6 SATA system using O_DIRECT seems to remain 
pretty constant across 2.6.11-something-FC3 to 2.6.13-rc2 around 31MB/s.  
2.6.11 proper hangs for me, though.

		-ben
-- 
"Time is what keeps everything from happening all at once." -- John Wheeler
--
To unsubscribe, send a message with 'unsubscribe linux-aio' in
the body to majordomo@kvack.org.  For more info on Linux AIO,
see: http://www.kvack.org/aio/
Don't email: <a href=mailto:"aart@kvack.org">aart@kvack.org</a>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: aio-stress throughput regressions from 2.6.11 to 2.6.12
  2005-07-01  7:56 aio-stress throughput regressions from 2.6.11 to 2.6.12 Suparna Bhattacharya
  2005-07-01 14:25 ` Benjamin LaHaise
  2005-07-05 14:00 ` Chris Mason
@ 2005-07-11  7:43 ` Sébastien Dugué
  2 siblings, 0 replies; 9+ messages in thread
From: Sébastien Dugué @ 2005-07-11  7:43 UTC (permalink / raw)
  To: suparna; +Cc: linux-aio, linux-fsdevel, linux-kernel

On Fri, 2005-07-01 at 13:26 +0530, Suparna Bhattacharya wrote:
> Has anyone else noticed major throughput regressions for random
> reads/writes with aio-stress in 2.6.12 ?
> Or have there been any other FS/IO regressions lately ?
> 
> On one test system I see a degradation from around 17+ MB/s to 11MB/s
> for random O_DIRECT AIO (aio-stress -o3 testext3/rwfile5) from 2.6.11
> to 2.6.12. It doesn't seem filesystem specific. Not good :(
> 
> BTW, Chris/Ben, it doesn't look like the changes to aio.c have had an impact
> (I copied those back to my 2.6.11 tree and tried the runs with no effect)
> So it is something else ...
> 
> Ideas/thoughts/observations ?
> 
> Regards
> Suparna
> 

  I'm too seeing a regression, but between 2.6.10 and 2.6.12 and using
sysbench + MySQL (with POSIX AIO). The difference is roughly 8% slower
for 2.6.12. I'm currently trying to trace it.

  aio-stress shows no difference so it probably does not come from
kernel AIO.

  Sébastien.


-- 
------------------------------------------------------

  Sébastien Dugué                BULL/FREC:B1-247
  phone: (+33) 476 29 77 70      Bullcom: 229-7770

  mailto:sebastien.dugue@bull.net

  Linux POSIX AIO: http://www.bullopensource.org/posix
  
------------------------------------------------------

--
To unsubscribe, send a message with 'unsubscribe linux-aio' in
the body to majordomo@kvack.org.  For more info on Linux AIO,
see: http://www.kvack.org/aio/
Don't email: <a href=mailto:"aart@kvack.org">aart@kvack.org</a>

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2005-07-11  7:43 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-07-01  7:56 aio-stress throughput regressions from 2.6.11 to 2.6.12 Suparna Bhattacharya
2005-07-01 14:25 ` Benjamin LaHaise
2005-07-06  4:30   ` Suparna Bhattacharya
2005-07-08 17:58     ` Benjamin LaHaise
2005-07-05 14:00 ` Chris Mason
2005-07-05 16:12   ` Benjamin LaHaise
2005-07-06 10:37   ` Suparna Bhattacharya
2005-07-06 12:10     ` aio-stress regressions in 2.6.12 narrowed down to AIC7xxx Suparna Bhattacharya
2005-07-11  7:43 ` aio-stress throughput regressions from 2.6.11 to 2.6.12 Sébastien Dugué

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).