The sbitmap_queue.min_shallow_depth member was added by kernel commit a327553965de ("sbitmap: fix missed wakeups caused by sbitmap_queue_get_shallow()") at Linux 4.18. Without the patch, on earlier kernels the "sbitmapq" command fails with the following error: crash> sbitmapq ffff89bb7638ee50 sbitmapq: invalid structure member offset: sbitmap_queue_min_shallow_depth FILE: sbitmap.c LINE: 398 FUNCTION: sbitmap_queue_context_load() Signed-off-by: Kazuhito Hagio <k-hagio-ab@xxxxxxx> --- sbitmap.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sbitmap.c b/sbitmap.c index c8c9f2b6d003..500246ec6bea 100644 --- a/sbitmap.c +++ b/sbitmap.c @@ -371,7 +371,8 @@ static void sbitmap_queue_show(const struct sbitmap_queue_context *sqc, else if (VALID_MEMBER(sbitmap_round_robin)) /* 5.13 and later */ fprintf(fp, "round_robin = %d\n", sc->round_robin); - fprintf(fp, "min_shallow_depth = %u\n", sqc->min_shallow_depth); + if (VALID_MEMBER(sbitmap_queue_min_shallow_depth)) /* 4.18 and later */ + fprintf(fp, "min_shallow_depth = %u\n", sqc->min_shallow_depth); } static void sbitmap_queue_context_load(ulong addr, struct sbitmap_queue_context *sqc) @@ -395,7 +396,8 @@ static void sbitmap_queue_context_load(ulong addr, struct sbitmap_queue_context sqc->ws_active = INT(sbitmap_queue_buf + OFFSET(sbitmap_queue_ws_active)); if (VALID_MEMBER(sbitmap_queue_round_robin)) sqc->round_robin = BOOL(sbitmap_queue_buf + OFFSET(sbitmap_queue_round_robin)); - sqc->min_shallow_depth = UINT(sbitmap_queue_buf + OFFSET(sbitmap_queue_min_shallow_depth)); + if (VALID_MEMBER(sbitmap_queue_min_shallow_depth)) + sqc->min_shallow_depth = UINT(sbitmap_queue_buf + OFFSET(sbitmap_queue_min_shallow_depth)); FREEBUF(sbitmap_queue_buf); } -- 2.27.0 -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://listman.redhat.com/mailman/listinfo/crash-utility Contribution Guidelines: https://github.com/crash-utility/crash/wiki