Home
last modified time | relevance | path

Searched refs:block (Results 1 – 25 of 54) sorted by relevance

123

/spdk/scripts/
H A Dspdk-gpt.py13 def block_exists(block): argument
14 return os.path.exists(block) and stat.S_ISBLK(os.stat(block).st_mode)
17 def lbsize(block): argument
18 if not os.path.exists("/sys/block/%s/queue/logical_block_size" % block):
21 with open("/sys/block/%s/queue/logical_block_size" % block) as lbs:
25 def readb(block, offset, length, format="Q"): argument
26 b = os.open(block, os.O_RDONLY)
33 def is_spdk_gpt(block, entry): argument
34 block_path = "/dev/" + block
37 print("%s is not a block device" % block)
[all …]
H A Dsetup.sh71 echo " To block all PCI devices: PCI_ALLOWED=\"none\""
84 echo " If set in the environment, the attempt to wait for block devices associated"
235 local blocks block blockp dev mount holder
241 for block in "${blocks[@]}"; do
244 for holder in "/sys/class/block/$block"*/holders/*; do
253 used+=("mount@$block:$dev")
255 done < <(lsblk -l -n -o NAME,MOUNTPOINT "/dev/$block")
260 if block_in_use "$block" > /dev/null; then
261 used+=("data@$block")
[all...]
H A Dfio-wrapper63 for nvme in /sys/block/nvme*; do
77 blocks=(/sys/block/ublk*)
99 "$rootdir/scripts/sync_dev_uevents.sh" block/disk "${devs[@]}"
110 if [[ -e /sys/block/$dev/device/queue_depth ]]; then
125 if [[ -e /sys/block/$dev/queue/scheduler ]]; then
H A Dprep_benchmarks.sh38 for queue in /sys/block/nvme*n*/queue; do
/spdk/doc/
H A Dssd_internals.md19 blocks**. The size of an erase block is highly implementation specific, but
20 can be thought of as somewhere between 1MiB and 8MiB. For each erase block,
22 bit-granularity once. In order to write to the erase block a second time, the
23 entire block must be erased (i.e. all bits in the block are flipped back to
24 0). This is the asymmetry part from above. Erasing a block causes a measurable
25 amount of wear and each block may only be erased a limited number of times.
31 media. Instead, upon each write to a logical block, a new location on the NAND
32 Flash is selected and written and the mapping of the logical block to its
46 fact, there is a command that clears the translation for a block. In NVMe,
48 is called trim. When a user attempts to read a block that doesn't have a
[all …]
H A Dbdev_pg.md6 use the SPDK bdev library to access block devices.
10 A block device is a storage device that supports reading and writing data in
15 The block device layer consists of a single generic library in `lib/bdev`,
17 various types of block devices. The public header file for the generic library
19 of block device. This guide will cover how to interact with bdevs using that
23 common abstraction for all block devices:
35 generic block device. struct spdk_bdev_desc, heretofore called a *descriptor*,
36 represents a handle to a given block device. Descriptors are used to establish
37 and track permissions to use the underlying block device, much like a file
38 descriptor on UNIX systems. Requests to the block device are asynchronous and
[all …]
H A Dcompression.md5 The SPDK "reduce" block compression scheme is based on using SSDs for storing compressed blocks of
8 is generic and not tied to any specific block device framework such as the SPDK block device (bdev)
10 software modules can built on top of this library to create and present block devices in a
11 specific block device framework. For SPDK, a bdev_reduce module will serve as a wrapper around
12 the libreduce library, to present the compressed block devices as an SPDK bdev.
23 A compressed block device is a logical entity built on top of a similarly-sized backing storage
33 compressed block device. Since this algorithm ensures atomicity by never overwriting data
42 A compressed block device compresses and decompresses data in units of chunks, where a chunk is a
44 the chunk size and is specified when the compressed block device is created. A chunk
51 number of chunk maps allocated is equal to the size of the compressed block device divided by its c…
[all …]
H A Dbdev_module.md5 This programming guide is intended for developers authoring their own block
11 A block device module is SPDK's equivalent of a device driver in a traditional
13 called to service block device I/O requests. SPDK provides a number of block
49 * Function table for a block device backend.
51 * The backend block device function table provides a set of APIs to allow
56 /* Destroy the backend block device object */
62 /* Check if the block device supports a specific I/O type. */
136 block device. Once the I/O request is completed, the module must call
152 the I/O to other block devices. The canonical example would be a bdev module
174 claim. Shared claims continue to block new incompatible claims and new writers
[all …]
H A Dvhost.md17 It is capable of exposing virtualized block devices to QEMU instances or other arbitrary
96 ### Create bdev (block device) {#vhost_bdev_create}
98 SPDK bdevs are block devices which will be exposed to the guest OS.
101 For vhost-blk, bdevs are exposed directly as block devices in the guest OS and are
109 will create a 64MB malloc bdev with 512-byte block size.
180 SPDK malloc block device by specifying bootindex=0 for the boot image.
284 sda sda QEMU HARDDISK 1:0:0:0 80G ATA block:scsi:pci
285 sda1 sda1 80G block:scsi:pci
286 sdb sdb NVMe disk 2:0:0:0 372,6G INTEL block:scsi:virtio:pci
287 sdc sdc Malloc disk 2:0:1:0 128M INTEL block:scsi:virtio:pci
[all …]
H A Dftl.md3 The Flash Translation Layer library provides efficient 4K block device access on top of devices
59 |block 1| |block 1| | |block x| | | |block y |block y|
101 written block for a ZNS drive, this data will stay there until the whole zone is reset. This might …
149 …tself, but also a sequence id (`seq_id`), which describes the relative age of a given logical block
150 (multiple writes to the same logical block would produce the same amount of P2L entries, only the l…
H A Discsi.md170 echo noop > /sys/block/sdc/queue/scheduler
176 echo "2" > /sys/block/sdc/queue/nomerges
179 Increase requests for block queue
182 echo "1024" > /sys/block/sdc/queue/nr_requests
200 Construct two 64MB Malloc block devices with 512B sector size "Malloc0" and "Malloc1":
283 we will create the block device base on the NVMe device attached, and for the
284 remove_cb, we will unregister the block device, which will also notify the
290 When the LUN receive the hot-remove notification from block device layer,
293 wait for all the commands which have already been submitted to block device to
H A Dstylesheet.css213 display: inline-block;
751 display: inline-block;
762 display: inline-block;
774 display: inline-block;
785 display: inline-block;
796 display: inline-block;
807 display: inline-block;
954 display:block;
1425 display: block !important;
1505 display: inline-block;
[all …]
H A Dabout.md20 SPDK further provides a full block stack as a user space library that performs
21 many of the same operations as a block stack in an operating system. This
H A Dblob.md23 Blobstore is a persistent, power-fail safe block allocator designed to be used as the local storage…
29 groups of blocks on a block device called 'blobs'. Blobs are typically large, measured in at least …
30 kilobytes, and are always a multiple of the underlying block size.
43 number of blocks in the disk. A logical block is typically either 512B or 4KiB.
95 not block but instead return control at that point and make a call to the callback function provide…
104 device driver to Blobstore. The blobstore performs operations on a backing block device by calling …
265 that cluster 0 begins at the first logical block.
285 The super block is a single page located at the beginning of the partition. It contains basic infor…
287 to the latest source code for complete structural details of the super block and metadata region.
345 When a thin provisioned volume writes to a block that does not have an allocated cluster, the
[all …]
/spdk/test/iscsi_tgt/perf/
H A Discsi_initiator.sh33 echo noop > /sys/block/${disks[i]}/queue/scheduler
34 echo "2" > /sys/block/${disks[i]}/queue/nomerges
35 echo "1024" > /sys/block/${disks[i]}/queue/nr_requests
/spdk/test/setup/
H A Ddevices.sh168 [[ -e /sys/class/block/$pv0/holders/$dm ]]
169 [[ -e /sys/class/block/$pv1/holders/$dm ]]
200 for block in "/sys/block/nvme"!(*c*); do
201 ctrl=${block##*/} ctrl=${ctrl%n*}
H A Dcommon.sh53 "$rootdir/scripts/sync_dev_uevents.sh" block/partition "${parts[@]}" &
78 [[ -e /sys/block/$dev ]] || return 1
/spdk/test/vhost/integrity/
H A Dintegrity_vm.sh28 for entry in /sys/block/sd*; do
34 devs=(/sys/block/vd*)
72 stats=($(cat /sys/block/$dev/stat))
/spdk/test/nvme/perf/
H A Drun_perf.sh141 block-size=*) BLK_SIZE="${OPTARG#*=}" ;;
248 echo -1 > /sys/block/$disk/queue/io_poll_delay
252 echo 0 > /sys/block/$disk/queue/io_poll_delay
264 sysfs=/sys/block/$disk/queue
274 sysfs=/sys/block/$disk/queue
437 sysfs=/sys/block/$disk/queue
/spdk/test/dd/
H A Dcommon.sh170 [[ -e /sys/block/zram$id ]]
172 echo 1 > "/sys/block/zram$id/reset"
180 [[ -e /sys/block/zram$id ]]
182 echo "$size" > "/sys/block/zram$id/disksize"
/spdk/test/app/fuzz/vhost_fuzz/
H A DREADME.md5 currently supports fuzzing both vhost block and vhost scsi devices. When
14 that the application accepts. Since the vhost application accepts both vhost block
34 submitted to the proper block devices.
/spdk/test/vhost/perf_bench/
H A Dvhost_perf.sh74 echo " spdk_vhost_blk - use spdk vhost block"
310 # Create block backstores for vhost kernel process
314 targetcli backstores/block create $backstore_name $p
322 # using block backstore number
326 targetcli vhost/$wwpn/tpg1/luns create /backstores/block/$(basename ${partitions[$j]})
441 block=$(printf '%s' $SCSI_DISK)
442 vm_exec "$vm_num" "echo none > /sys/class/block/$block/queue/scheduler"
452 major_minor=$(vm_exec "$vm_num" "cat /sys/block/$block/de
[all...]
/spdk/test/spdkcli/match_files/
H A Dspdkcli_virtio_user.test.match2 …o- block .........................................................................................…
/spdk/test/nvme/xnvme/
H A Dxnvme.sh
/spdk/test/nvmf/
H A Dcommon.sh667 local block nvme
678 for block in /sys/block/nvme*; do
679 [[ -e $block ]] || continue
680 is_block_zoned "${block##*/}" && continue
681 block_in_use "${block##*/}" || nvme="/dev/${block##*/}"

123