On Fri, Feb 10, 2023 at 09:16:29AM +0100, Klaus Jensen wrote: > On Feb 9 09:12, Keith Busch wrote: > > From: Keith Busch <kbusch@xxxxxxxxxx> > > > > Add support for NVMe TP4146 Flexible Data Placemen, allowing placement > > identifiers in write commands. The user can enabled this with the new > > "fdp=1" parameter for fio's io_uring_cmd ioengine. By default, the fio > > jobs will cycle through all the namespace's available placement > > identifiers for write commands. > > Technically, the namespace has Placement *Handles* associated and when > writing, a Placement *Identifier* is used to also specify the Reclaim > Group. Yep. The details can get a bit confusing, but the placement id is really all fio needs to construct the write command. > > The user can limit which placement > > identifiers can be used with additional parameter, "fdp_plis=<list,>", > > which can be used to separate write intensive jobs from less intensive > > ones. > > With the above in mind, it might make sense to align with the spec and > call this "fdp_pids" instead. In this implementation, you're just specifying the indices from which to pull the pids rather than providing a direct list of them, so didn't want to call it "pids". > As far as I can tell, fio won't cycle through reclaim groups and create the > pid on its own, without fdp_plis explicitly indicating it? If you don't specify any, fio will use all the placement identifiers. The code handling that in this patch is bit subtle.