From 531f8cfea06b689b6c17219faa3e67977958b0c0 Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Sun, 23 Jan 2022 02:24:12 +0200 Subject: [PATCH] Use dedicated lock name for pbufs Also remove a pointer to array variable, use array address directly. Reviewed by: markj, mckusick Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D34072 --- sys/kern/vfs_bio.c | 14 +++++++------- sys/sys/buf.h | 6 ++---- sys/vm/vm_pager.c | 4 +++- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/sys/kern/vfs_bio.c b/sys/kern/vfs_bio.c index ce7f860f1ffe..0cf02a95729c 100644 --- a/sys/kern/vfs_bio.c +++ b/sys/kern/vfs_bio.c @@ -400,12 +400,6 @@ struct bufqueue __exclusive_cache_line bqempty; */ uma_zone_t buf_zone; -/* - * Single global constant for BUF_WMESG, to avoid getting multiple references. - * buf_wmesg is referred from macros. - */ -const char *buf_wmesg = BUF_WMESG; - static int sysctl_runningspace(SYSCTL_HANDLER_ARGS) { @@ -1184,6 +1178,12 @@ kern_vfs_bio_buffer_alloc(caddr_t v, long physmem_est) return (v); } +/* + * Single global constant for BUF_WMESG, to avoid getting multiple + * references. + */ +static const char buf_wmesg[] = "bufwait"; + /* Initialize the buffer subsystem. Called before use of any buffers. */ void bufinit(void) @@ -1214,7 +1214,7 @@ bufinit(void) bp->b_xflags = 0; bp->b_data = bp->b_kvabase = unmapped_buf; LIST_INIT(&bp->b_dep); - BUF_LOCKINIT(bp); + BUF_LOCKINIT(bp, buf_wmesg); bq_insert(&bqempty, bp, false); } diff --git a/sys/sys/buf.h b/sys/sys/buf.h index b831003cf63d..8fb49fb1e7d1 100644 --- a/sys/sys/buf.h +++ b/sys/sys/buf.h @@ -292,16 +292,14 @@ struct buf { /* * Buffer locking */ -extern const char *buf_wmesg; /* Default buffer lock message */ -#define BUF_WMESG "bufwait" #include /* XXX for curthread */ #include /* * Initialize a lock. */ -#define BUF_LOCKINIT(bp) \ - lockinit(&(bp)->b_lock, PRIBIO + 4, buf_wmesg, 0, LK_NEW) +#define BUF_LOCKINIT(bp, wmesg) \ + lockinit(&(bp)->b_lock, PRIBIO + 4, wmesg, 0, LK_NEW) /* * * Get a lock sleeping non-interruptably until it becomes available. diff --git a/sys/vm/vm_pager.c b/sys/vm/vm_pager.c index 6a186156b616..7dba1c45143d 100644 --- a/sys/vm/vm_pager.c +++ b/sys/vm/vm_pager.c @@ -489,6 +489,8 @@ pbuf_dtor(void *mem, int size, void *arg) BUF_UNLOCK(bp); } +static const char pbuf_wmesg[] = "pbufwait"; + static int pbuf_init(void *mem, int size, int flags) { @@ -498,7 +500,7 @@ pbuf_init(void *mem, int size, int flags) if (bp->b_kvabase == NULL) return (ENOMEM); bp->b_kvasize = ptoa(PBUF_PAGES); - BUF_LOCKINIT(bp); + BUF_LOCKINIT(bp, pbuf_wmesg); LIST_INIT(&bp->b_dep); bp->b_rcred = bp->b_wcred = NOCRED; bp->b_xflags = 0;