Skip to content

Instantly share code, notes, and snippets.

View mgerdts's full-sized avatar

Mike Gerdts mgerdts

View GitHub Profile
@mgerdts
mgerdts / README.md
Last active January 24, 2023 17:15
SPDK check_so_ver tests

Configure abi test builds

In a checked out spdk repo:

. test/common/config/pkgdep/git
INSTALL_REFSPDK=true install_sources

After this, two new directories should exist:

@mgerdts
mgerdts / gerrit-margin-fix.js
Created February 13, 2023 05:05
Workaround for Gerrit bug 16113
// ==UserScript==
// @name Gerrit margin fix
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Workaround https://bugs.chromium.org/p/gerrit/issues/detail?id=16113
// @author Mike Gerdts <mgerdts@nvidia.com>
// @match https://*/gerrit/q/*
// @match https://*/gerrit/dashboard/self
// @icon https://www.google.com/s2/favicons?sz=64&domain=tampermonkey.net
// @grant none
@mgerdts
mgerdts / design.md
Last active April 4, 2023 11:35
Degraded Lvols

Logical Volumes with Missing External Snapshots

The original design of external snapshots allows esnap clone lvols to successfully open before the external snapshot is present. A logical volume with a missing external snapshot is referred to as degraded. It was done this way because:

  1. It is hard for the SPDK administrator to control the order that examine_config callbacks will be called.
  2. The consumer of an esnap clone may not actually need to perform reads from the external snapshot because the clusters containing the requested blocks may have already been allocated in the esnap clone's blob.
  3. Esnap clones may be at the root of a deep tree of snapshots and clones. It would be complex to delay the online of all of these until the external snapshot is available.
  4. Immediate registration of bdevs simplifies management of degraded lvols.
    1. bdev_get_bdevs allows degraded lvols to be seen. The module-specific section indicates when it is degraded.
  5. bdev_lvol_delete allows degraded esnap c