| /spdk/scripts/ |
| H A D | spdk-gpt.py | 13 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 D | setup.sh | 71 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 D | fio-wrapper | 63 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 D | prep_benchmarks.sh | 38 for queue in /sys/block/nvme*n*/queue; do
|
| /spdk/doc/ |
| H A D | ssd_internals.md | 19 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 D | bdev_pg.md | 6 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 D | compression.md | 5 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 D | bdev_module.md | 5 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 D | vhost.md | 17 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 D | ftl.md | 3 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 D | iscsi.md | 170 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 D | stylesheet.css | 213 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 D | about.md | 20 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 D | blob.md | 23 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 D | iscsi_initiator.sh | 33 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 D | devices.sh | 168 [[ -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 D | common.sh | 53 "$rootdir/scripts/sync_dev_uevents.sh" block/partition "${parts[@]}" & 78 [[ -e /sys/block/$dev ]] || return 1
|
| /spdk/test/vhost/integrity/ |
| H A D | integrity_vm.sh | 28 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 D | run_perf.sh | 141 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 D | common.sh | 170 [[ -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 D | README.md | 5 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 D | vhost_perf.sh | 74 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 D | spdkcli_virtio_user.test.match | 2 …o- block .........................................................................................…
|
| /spdk/test/nvme/xnvme/ |
| H A D | xnvme.sh | |
| /spdk/test/nvmf/ |
| H A D | common.sh | 667 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##*/}"
|