Re: Asynch I/O overloaded 2.2.15/2.3.99

From: Jeff V. Merkey (jmerkey@timpanogas.com)
Date: Wed Apr 12 2000 - 12:41:38 EST


I have seen an occasional hang when I run the tq_disk queue, but it's
infrequent. What would be better is to have the AIO subsystem just work
in the first place. When I don't run it, performance stinks.

I am posting the code for 2.2.15 that is causing both the Ooops with the
swapper process and the tq_disk hang. You guys may see the hole
immediately. All the memory being used is GFP_BUFFER or GFP_KERNEL (and
some SLAB_BUFFER memory).

The functions aReadDiskSectors, aWriteDiskSectors, and aFillDiskSectors
are the routines that (should) give the greatest AIO parallelism, but
are the ones that break. If I use the pReadDiskSectors, etc. functions
that only gate a single AIO request at a time to the drivers, no Ooops,
no hang, and much poorer AIO performance.

Jeff

Andi Kleen wrote:
>
> On Wed, Apr 12, 2000 at 07:15:46PM +0200, Andrea Arcangeli wrote:
> >
> > >Jeff saw a definate improvement in the performance of his system
> > >when running tq_disk...
> >
> > He should reduce NR_REQUEST instead of adding suprious
> > run_task_queue(&tq_disk) until the complexity problem of get_request gets
> > fixed.
>
> Or just use a free list for the requests instead of the slow linear
> search ?
>
> -Andi


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Apr 15 2000 - 21:00:19 EST