> Hi all,
Hi You!
> I've new DC-390F (NCR53C875) SCSI controller, and relative
> hdd SCSI Quantum Fireball 3.1Gb.
> I want know the correct configuration.
Your configuration is correct, however I would configure the driver
with maximum queued commands = 4. The Fireball has a small cache and
8 will probably not increase performance and perhaps decrease it.
> CONFIG_SCSI_NCR53C8XX=y
> # CONFIG_SCSI_NCR53C8XX_TAGGED_QUEUE is not set
Was enabled in your syslog messages.
> # CONFIG_SCSI_NCR53C8XX_IOMAPPED is not set
> CONFIG_SCSI_NCR53C8XX_MAX_TAGS=8
Set it to 4
> CONFIG_SCSI_NCR53C8XX_SYNC=20
> # CONFIG_SCSI_NCR53C8XX_NO_DISCONNECT is not set
> # CONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT is not set
> testing it with hdparm:
>
> # hdparm -t /dev/sda
>
> /dev/sda:
> Timing buffered disk reads: 16 MB in 5.18 seconds = 3.09 MB/sec
Seems you exactly get half the sustained data rate, the HD is able too.
My first idea is that read-ahead size and/or the number of tagged commands
are perhaps too large for this HD that does not have a large cache.
I assume that read caching is enable, but you should verify this with
the 'scsi-config' tool.
You should probably try the following:
1 - Do the same test with tagged command queuing disabled.
2 - Reduce the read ahead size used in block mode operation.
3 - Use iozone benchmark which measures speed through the file system and
so will get benefits of asynchronous read-ahead.
The following (not yet compiled) code should set the read-ahead size
for block mode to 60 sectors (default is 120).
-------------------------------------------------------------------
int fd;
char *dev_name;
int ra_sectors;
dev_name = "/dev/sda";
ra_sectors = 60;
fd = open(dev_name, O_RDONLY);
if (fd == -1) {
fprintf(stderr, "can't open %s for reading\n", dev_name);
exit(1);
}
if (ioctl(fd, BLKRASET, ra_sectors) == -1) {
fprintf(stderr, "can't tune read ahead size\n");
exit(1);
}
----------------------------------------------------------------
Gerard.