Skip to content
  • Andy Grover's avatar
    dm thin: include metadata_low_watermark threshold in pool status · 63c8ecb6
    Andy Grover authored
    
    
    The metadata low watermark threshold is set by the kernel.  But the
    kernel depends on userspace to extend the thinpool metadata device when
    the threshold is crossed.
    
    Since the metadata low watermark threshold is not visible to userspace,
    upon receiving an event, userspace cannot tell that the kernel wants the
    metadata device extended, instead of some other eventing condition.
    Making it visible (but not settable) enables userspace to affirmatively
    know the kernel is asking for a metadata device extension, by comparing
    metadata_low_watermark against nr_free_blocks_metadata, also reported in
    status.
    
    Current solutions like dmeventd have their own thresholds for extending
    the data and metadata devices, and both devices are checked against
    their thresholds on each event.  This lessens the value of the kernel-set
    threshold, since userspace will either extend the metadata device sooner,
    when receiving another event; or will receive the metadata lowater event
    and do nothing, if dmeventd's threshold is less than the kernel's.
    (This second case is dangerous. The metadata lowater event will not be
    re-sent, so no further event will be generated before the metadata
    device is out if space, unless some other event causes userspace to
    recheck its thresholds.)
    
    Signed-off-by: default avatarAndy Grover <agrover@redhat.com>
    Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
    63c8ecb6