On Wed, Sep 28, 2022 at 8:21 PM Stefan Hajnoczi <[email protected]> wrote: > On Tue, Sep 27, 2022 at 03:34:30PM -0400, Stefan Hajnoczi wrote: > > + ret = blkio_get_bool(s->blkio, > > + "mem-regions-pinned", > > + &s->mem_regions_pinned); > > + if (ret < 0) { > > + /* Be conservative (assume pinning) if the property is not > > supported */ > > + s->mem_regions_pinned = true; > > This is too conservative :). It can be changed to: > > s->mem_regions_pinned = s->needs_mem_regions; > > That way we avoid ram_block_discard_disable() for libblkio drivers (like > io_uring in libblkio 1.0) that don't use memory regions and don't > support the "mem-regions-pinned" property yet.
Even if a driver doesn't _need_ memory regions to be mapped before use, it may still do something special with the ones that _are_ mapped, so we may have no choice but to set s->mem_regions_pinned = true. (Unless we are assuming that all future libblkio versions will either not have such drivers, or will provide a "mem-regions-pinned" property, but that feels brittle.) Alberto
