• Ming Lei's avatar
    ublk_drv: add SET_PARAMS/GET_PARAMS control command · 0aa73170
    Ming Lei authored
    Add two commands to set/get parameters generically.
    
    One important goal of ublk is to provide generic framework for making
    block device by userspace flexibly.
    
    As one generic block device, there are still lots of block parameters,
    such as max_sectors, write_cache/fua, discard related limits,
    zoned parameters, ...., so this patch starts to add generic mechanism
    for set/get device parameters.
    
    Both generic block parameters(all kinds of queue settings) and ublk
    feature parameters can be covered with this way, then it becomes quite
    easy to extend in future.
    
    Add two parameter types are used so far: basic(covers basic queue setting
    and misc settings which can't be grouped easily) and discard, basic type
    must be set, and discard type becomes optional now
    
    This way provides mechanism to simulate any kind of generic block device
    from userspace easily, from both block queue setting viewpoint or ublk
    feature viewpoint.
    
    The style of putting all parameters together is suggested by Christoph.
    Suggested-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: default avatarMing Lei <ming.lei@redhat.com>
    Link: https://lore.kernel.org/r/20220730092750.1118167-4-ming.lei@redhat.comSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
    0aa73170
ublk_cmd.h 5.01 KB