Project

General

Profile

Bug #9525

kmem_dump_size is a corrupting influence

Added by John Levon about 1 year ago. Updated about 1 year ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
-
Start date:
2018-05-09
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
needs-triage

Description

SmartOS OS-6925.

On larger machines, the 8 pages plus noise reserved for the kmem_dump region is insufficient.
This means that we'll bust past the buffer, start allocating from real kmem, and end up with
apparent corruption in the subsequent MDB session's ::kmem_verify, because the kmem data
structures are changing while we're dumping pages.

We'll simplify the kmem dump code to only store the statistics that are actually useful directly
in the kmem_cache_t, then use that in MDB to provide an appropriate warning depending upon
the invocation mode of ::kmem_verify. In addition, we'll make that dcmd pipe-friendly so any
reported corruption can be piped through appropriately to get more info e.g.

<cache::kmem_verify | ::map <.+0t24=K | ::print kmem_buftag_t bt_bufctl | ::bufctl

History

#1

Updated by Electric Monk about 1 year ago

  • % Done changed from 0 to 100
  • Status changed from New to Closed

git commit dfec2ecfa1713daac7f3cdf7c6dc2cf4f09a4ee3

commit  dfec2ecfa1713daac7f3cdf7c6dc2cf4f09a4ee3
Author: John Levon <john.levon@joyent.com>
Date:   2018-05-11T20:49:56.000Z

    9525 kmem_dump_size is a corrupting influence
    Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
    Reviewed by: Robert Mustacchi <rm@joyent.com>
    Reviewed by: Richard Lowe <richlowe@richlowe.net>
    Approved by: Dan McDonald <danmcd@joyent.com>

Also available in: Atom PDF