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