Hi Abhilash,
By default target_core_file.c is using O_SYNC to ensure that WRITEs are
written directly to disk before acknowledging back to the SCSI client.
This will have a considerable effect on FILEIO WRITE performance, but is
done by default to ensure proper data integrity in the face of target
power loss.
You may want to double check the filp_open() flags with SCST to ensure
that you are comparing 'apples to apples' here. Optionally you can try
disabling O_SYNC with target_core_file.c via rtslib with the class
FileIOStorageObject:_set_buffered_mode() mentioned here:
Another area to consider improvement is how SCSI Target Data phase are
handled.
The target framework should split SCSI data phases into multiple smaller
IO to increase
performance. In other work instead of synchronous data phase it need to
be asynchronous.
--ravi
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html