LBLK-WRITE-READ-PI(1)

πŸ“¦ version 0.7.5, in alpine 3.24, epel 9, fedora 43, fedora 44

✨ LBLK-WRITE-READ-PI ✨

okay so bestie, welcome to lblk-write-read-pi β€” it lives in the xNVMe manual (section 1, we're fancy like that πŸ’…). It writes stuff, then reads it back, and it does the whole thing with protection information. yes, PI. we love a data-integrity moment. πŸ›‘οΈβœ¨


🌸 NAME 🌸

lblk-write-read-pi β€” Writes and then read with protection information

no cap, that's literally the whole job description. πŸ’–


πŸ¦‹ SYNOPSIS πŸ¦‹

lblk write-read-pi <uri> [<args>]

that's the shape of it. <uri> is the required main-character, everything in [<args>] is optional supporting cast. 🌈


πŸŽ€ DESCRIPTION πŸŽ€

Writes and then read with protection information

it's giving "write it, read it back, check the PI the whole time." iconic behavior fr fr. 🫢


πŸ’– REQUIRED πŸ’–

these ones? mandatory. you cannot skip them, the command will simply not be having it. 😭

  • <uri> β€” Device URI, e.g. /dev/nvme0n1, 0000:01:00.1, 10.9.8.1.8888, \.PhysicalDrive1

like, this is the where. which device are we talking to. periodt.

  • --slba 0xNUM β€” Start Logical Block Address

your starting point, in hex, 0x and everything. the beginning of the saga. ⭐

  • --nlb NUM β€” Number of LBAs (NOTE: zero-based value)

how many logical blocks we're doing. and heads up bestie: this is a zero-based value, so the math is not mathing the way your instincts think it is. πŸ™ˆ


✨ OPTIONAL ✨

the vibes-extras. fully optional, but they let you customize the whole situation. pick and choose, it's your world. πŸ’…

  • [ --nsid 0xNUM ] β€” Namespace Identifier for Command Construction

which namespace we're building the command for. 🎯

  • [ --pract NUM ] β€” Protection Information Action

the PI action. yes, action. it does a thing. 🎬

  • [ --prchk 0xNUM ] β€” Protection Information Check

the PI check. we verifying. we're thorough like that. βœ…

  • [ --apptag 0xNUM ] β€” Application Tag

a little tag, for your application. cute. 🏷️

  • [ --apptag_mask 0xNUM ] β€” Application Tag Mask

the mask that goes with the tag. they're a duo. πŸ’ž

  • [ --data-input FILE ] β€” Path to data input-file

where the actual data is coming from. πŸ“

  • [ --meta-input FILE ] β€” Path to meta input-file

and here's where the meta lives. ✨

  • [ --subnqn STRING ] β€” Subsystem NQN of the NVMe over Fabrics endpoint e.g. 'nqn.2022-06.io.xnvme:ctrlnode1'

for when you're doing NVMe over Fabrics and need to name your subsystem. very demure, very networked. 🌐

  • [ --hostnqn STRING ] β€” The host NQN to use when connecting to NVMe over Fabrics controllers

your host's NQN, for the Fabrics connection. the other half of the NQN love story. 🫢

  • [ --be STRING ] β€” xNVMe backend, e.g. 'linux', 'spdk', 'fbsd', 'macos', 'posix', 'windows'

which backend you're riding with. choose your fighter. πŸ”₯

  • [ --dev-nsid 0xNUM ] β€” Namespace Identifier for Device Handle

plot twist: this is the namespace ID for the device handle, not the command. yes, they're different options. yes, it matters. iykyk. πŸ‘‘

  • [ --admin STRING ] β€” xNVMe admin. command-interface, e.g. 'nvme', 'block'

which admin command-interface to use. πŸ› οΈ

  • [ --mem STRING ] β€” xNVMe buffer/memory manager

picks your buffer/memory manager. memory management is self-care. 🧚

  • [ --direct NUM ] β€” Bypass layers

bypass layers. skip the middlemen. main character energy, going straight to the metal. πŸ’€

  • [ --sync STRING ] β€” xNVMe sync. command-interface, e.g. 'nvme', 'block'

the sync command-interface. same energy as --admin, different lane. 🌈

  • [ --help ] β€” Show usage / help

when in doubt, ask for help. no shame in it, bestie. πŸŽ€


πŸ‘€ SEE ALSO πŸ‘€

Full documentation at: <https://xnvme.io/>

go read it, it's good for you. πŸ“šπŸ’œ


πŸ’œ AUTHOR πŸ’œ

Written by Simon A. F. Lund <simon.lund@samsung.com> on behalf of Samsung

shoutout to Simon, absolute legend for writing this down so we didn't have to. πŸ™Œ


and that's the whole page bestie!! this was xNVMe, version dated 09 September 2024, page LBLK-WRITE-READ-PI(1) β€” go write, go read, go check that protection information. slay. πŸ’…βœ¨πŸ¦‹

πŸ“¦ where this page comes from