linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "" <simon@baydel.com>
To: linux-kernel@vger.kernel.org
Subject: File IO performance
Date: Wed, 14 Feb 2001 12:47:52 +0000	[thread overview]
Message-ID: <46C587D9403D@baydel.com> (raw)

I have been performing some IO tests under Linux on SCSI disks.
I noticed gaps between the commands and decided to investigate.
I am new to the kernel and do not profess to underatand what 
actually happens. My observations suggest that the file 
structured part of the io consists of the following file phases 
which mainly reside in mm/filemap.c . The user read call ends up in
a generic file read routine. If the requested buffer is not in
the file cache then the data is requested from disk via the disk 
readahead routine. When this routine completes the data is copied 
to user space. I have been looking at these phases on an analyzer
and it seems that none of them overlap for a single user process. 

This creates gaps in the scsi commands which significantly reduce
bandwidth, particularly at todays disk speeds. 

I am interested in making changes to the readahead routine. In this 
routine there is a loop


 /* Try to read ahead pages.
  * We hope that ll_rw_blk() plug/unplug, coalescence, requests sort
  * and the scheduler, will work enough for us to avoid too bad 
  * actuals IO requests. 
  */ 

 while (ahead < max_ahead) {
  ahead ++;
  if ((raend + ahead) >= end_index)
   break;
  if (page_cache_read(filp, raend + ahead) < 0)
 }


this whole loop completes before the disk command starts. If the 
commands are large and it is for a maximum read ahead this loops 
takes some time and is followed by disk commands. 

It seems that the performance could be improved if the disk commands 
were overlapped in some way with the time taken in this loop. I have 
not traced page_cache_read so I have no idea what is happening but I 
guess this is some page location and entry onto the specific device 
buffer queues ?

I am really looking for some help in underatanding what is happening 
here and suggestions in ways which operations may be overlapped.
__________________________

Simon Haynes - Baydel 
Phone : 44 (0) 1372 378811
Email : simon@baydel.com
__________________________

             reply	other threads:[~2001-02-14 12:59 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-02-14 12:47 simon [this message]
2001-02-14 14:07 ` File IO performance Marcelo Tosatti
2001-02-14 17:19   ` simon
2001-02-14 17:44   ` Steve Lord
2001-02-14 17:38     ` Marcelo Tosatti
2001-02-14 21:15       ` Steve Lord

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=46C587D9403D@baydel.com \
    --to=simon@baydel.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).