mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-19 06:44:31 +00:00
- Add information about the buf lock to db_show_buffer.
- Add a 'show lockedbufs' command that is similar to show lockedvnods. Sponsored by: Isilon Systems, Inc.
This commit is contained in:
parent
f158df07ab
commit
6c759f3558
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=144084
|
@ -3790,12 +3790,16 @@ DB_SHOW_COMMAND(buffer, db_show_buffer)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
db_printf("buf at %p\n", bp);
|
||||||
db_printf("b_flags = 0x%b\n", (u_int)bp->b_flags, PRINT_BUF_FLAGS);
|
db_printf("b_flags = 0x%b\n", (u_int)bp->b_flags, PRINT_BUF_FLAGS);
|
||||||
db_printf(
|
db_printf(
|
||||||
"b_error = %d, b_bufsize = %ld, b_bcount = %ld, b_resid = %ld\n"
|
"b_error = %d, b_bufsize = %ld, b_bcount = %ld, b_resid = %ld\n"
|
||||||
"b_bufobj = (%p), b_data = %p, b_blkno = %jd\n",
|
"b_bufobj = (%p), b_data = %p, b_blkno = %jd\n",
|
||||||
bp->b_error, bp->b_bufsize, bp->b_bcount, bp->b_resid,
|
bp->b_error, bp->b_bufsize, bp->b_bcount, bp->b_resid,
|
||||||
bp->b_bufobj, bp->b_data, (intmax_t)bp->b_blkno);
|
bp->b_bufobj, bp->b_data, (intmax_t)bp->b_blkno);
|
||||||
|
db_printf("lockstatus = %d, excl count = %d, excl owner %p\n",
|
||||||
|
lockstatus(&bp->b_lock, NULL), bp->b_lock.lk_exclusivecount,
|
||||||
|
bp->b_lock.lk_lockholder);
|
||||||
if (bp->b_npages) {
|
if (bp->b_npages) {
|
||||||
int i;
|
int i;
|
||||||
db_printf("b_npages = %d, pages(OBJ, IDX, PA): ", bp->b_npages);
|
db_printf("b_npages = %d, pages(OBJ, IDX, PA): ", bp->b_npages);
|
||||||
|
@ -3810,4 +3814,18 @@ DB_SHOW_COMMAND(buffer, db_show_buffer)
|
||||||
db_printf("\n");
|
db_printf("\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DB_SHOW_COMMAND(lockedbufs, lockedbufs)
|
||||||
|
{
|
||||||
|
struct buf *bp;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0; i < nbuf; i++) {
|
||||||
|
bp = &buf[i];
|
||||||
|
if (lockcount(&bp->b_lock)) {
|
||||||
|
db_show_buffer((uintptr_t)bp, 1, 0, NULL);
|
||||||
|
db_printf("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
#endif /* DDB */
|
#endif /* DDB */
|
||||||
|
|
Loading…
Reference in a new issue