mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-14 09:11:27 +00:00
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@9231 d57e44dd-8a1f-0410-8b47-8ef2f437770f
84 lines
2.5 KiB
Plaintext
84 lines
2.5 KiB
Plaintext
User space FILEIO handler
|
|
=========================
|
|
|
|
Version 3.5.0, 21 December 2020
|
|
----------------------------
|
|
|
|
User space program fileio_tgt uses interface of SCST's scst_user dev
|
|
handler and allows to see how it works in various modes. Fileio_tgt
|
|
provides mostly the same functionality as the kernel space SCST's
|
|
scst_vdisk handler with the only exceptions that it supports O_DIRECT
|
|
mode and doesn't support BLOCKIO one. O_DIRECT mode is basically the
|
|
same as BLOCKIO, but also supports files, so for some loads it could be
|
|
significantly faster, than the regular FILEIO access. All the words
|
|
about BLOCKIO mode from SCST's README file apply to O_DIRECT mode as
|
|
well.
|
|
|
|
Installation
|
|
------------
|
|
|
|
Make sure you have installed SCST core, if not, see its README file for
|
|
details how to do it.
|
|
|
|
Then run "make all install"
|
|
|
|
For the best performance make sure you don't have any debug options
|
|
(i.e. lines like "CFLAGS += -DDEBUG" containing "-DDEBUG*" string)
|
|
enabled in the Makefile.
|
|
|
|
Usage
|
|
-----
|
|
|
|
Load scst_user module using modprobe or insmod, then start fileio_tgt
|
|
program. It can be used as the following:
|
|
|
|
fileio_tgt [OPTION] name path
|
|
|
|
Where:
|
|
|
|
- OPTION - one or several not required options, see below.
|
|
|
|
- name - name of the virtual device as it will be seen by SCST and used
|
|
in the subsequent access management using the corresponding SCST interface.
|
|
|
|
- path - path to the device file.
|
|
|
|
The following options are supported:
|
|
|
|
-b or --block=size: block size, must be power of 2 and >=512
|
|
|
|
-e or --threads=count: number of threads
|
|
|
|
-t or --write_through: write through mode
|
|
|
|
-r or --read_only: read only
|
|
|
|
-o or --direct: O_DIRECT mode, see above for details
|
|
|
|
-n or --nullio: NULLIO mode, see SCST's README file for details
|
|
|
|
-c or --nv_cache: NV_CACHE mode, see SCST's README file for details
|
|
|
|
-p or --parse=type: parse type, one of "std" (default), "call" or "excpt"
|
|
|
|
-f or --on_free=type: on free call type, one of "ignore" (default) or "call"
|
|
|
|
-m or --mem_reuse=type: Memory reuse type, one of "all" (default), "read",
|
|
"write" or "none"
|
|
|
|
-s or --prio_thread: Use separate thread for mgmt (prio) commands
|
|
|
|
-l or --non_blocking: Use non-blocking operations
|
|
|
|
Also in the debug builds the following options are supported:
|
|
|
|
-d or --debug=level: debug tracing level
|
|
|
|
-g or --debug_tm_ignore: turn on DEBUG_TM_IGNORE, one of the task management
|
|
debugging features
|
|
|
|
If you don't understand some these options, don't use them, default
|
|
values provide the best performance.
|
|
|
|
Vladislav Bolkhovitin <vst@vlnb.net>, http://scst.sourceforge.net
|