git: 531f8cfea06b - main - Use dedicated lock name for pbufs
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 31 Jan 2022 02:46:53 UTC
The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=531f8cfea06b689b6c17219faa3e67977958b0c0 commit 531f8cfea06b689b6c17219faa3e67977958b0c0 Author: Konstantin Belousov <kib@FreeBSD.org> AuthorDate: 2022-01-23 00:24:12 +0000 Commit: Konstantin Belousov <kib@FreeBSD.org> CommitDate: 2022-01-31 02:46:14 +0000 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 <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 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;