git: 78d27f25c78a - stable/13 - Use dedicated lock name for pbufs
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 07 Feb 2022 09:50:49 UTC
The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=78d27f25c78afe5efd5b90120ca728f7be0c4d88 commit 78d27f25c78afe5efd5b90120ca728f7be0c4d88 Author: Konstantin Belousov <kib@FreeBSD.org> AuthorDate: 2022-01-23 00:24:12 +0000 Commit: Konstantin Belousov <kib@FreeBSD.org> CommitDate: 2022-02-07 09:38:49 +0000 Use dedicated lock name for pbufs (cherry picked from commit 531f8cfea06b689b6c17219faa3e67977958b0c0) --- 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 a3cec5d7ec74..aaf7b69d47db 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) { @@ -1175,6 +1169,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) @@ -1205,7 +1205,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 86f5fbef7c92..e1b0450e2613 100644 --- a/sys/sys/buf.h +++ b/sys/sys/buf.h @@ -291,16 +291,14 @@ struct buf { /* * Buffer locking */ -extern const char *buf_wmesg; /* Default buffer lock message */ -#define BUF_WMESG "bufwait" #include <sys/proc.h> /* XXX for curthread */ #include <sys/mutex.h> /* * 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 791fc1ebfe11..d81e5ec8692d 100644 --- a/sys/vm/vm_pager.c +++ b/sys/vm/vm_pager.c @@ -480,6 +480,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) { @@ -489,7 +491,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;