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
__________________________
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/