Date: Fri, 6 Oct 2017 21:52:28 +0000 (UTC) From: Mark Johnston <markj@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r324377 - in head: share/man/man9 sys/kern sys/sys Message-ID: <201710062152.v96LqSLk086571@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: markj Date: Fri Oct 6 21:52:28 2017 New Revision: 324377 URL: https://svnweb.freebsd.org/changeset/base/324377 Log: Let stack_create(9) take a malloc flags argument. Reviewed by: cem Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D12614 Modified: head/share/man/man9/stack.9 head/sys/kern/kern_proc.c head/sys/kern/subr_sleepqueue.c head/sys/kern/subr_stack.c head/sys/sys/stack.h Modified: head/share/man/man9/stack.9 ============================================================================== --- head/share/man/man9/stack.9 Fri Oct 6 20:51:32 2017 (r324376) +++ head/share/man/man9/stack.9 Fri Oct 6 21:52:28 2017 (r324377) @@ -27,7 +27,7 @@ .\" .\" $FreeBSD$ .\" -.Dd September 10, 2015 +.Dd October 6, 2017 .Dt STACK 9 .Os .Sh NAME @@ -42,7 +42,7 @@ In the kernel configuration file: .Cd "options STACK" .Pp .Ft struct stack * -.Fn stack_create "void" +.Fn stack_create "int flags" .Ft void .Fn stack_destroy "struct stack *st" .Ft int @@ -85,8 +85,11 @@ Each stack trace is described by a .Vt "struct stack" . Before a trace may be created or otherwise manipulated, storage for the trace must be allocated with -.Fn stack_create , -which may sleep. +.Fn stack_create . +The +.Ar flags +argument is passed to +.Xr malloc 9 . Memory associated with a trace is freed by calling .Fn stack_destroy . .Pp Modified: head/sys/kern/kern_proc.c ============================================================================== --- head/sys/kern/kern_proc.c Fri Oct 6 20:51:32 2017 (r324376) +++ head/sys/kern/kern_proc.c Fri Oct 6 21:52:28 2017 (r324377) @@ -2547,7 +2547,7 @@ sysctl_kern_proc_kstack(SYSCTL_HANDLER_ARGS) return (error); kkstp = malloc(sizeof(*kkstp), M_TEMP, M_WAITOK); - st = stack_create(); + st = stack_create(M_WAITOK); lwpidarray = NULL; PROC_LOCK(p); Modified: head/sys/kern/subr_sleepqueue.c ============================================================================== --- head/sys/kern/subr_sleepqueue.c Fri Oct 6 20:51:32 2017 (r324376) +++ head/sys/kern/subr_sleepqueue.c Fri Oct 6 21:52:28 2017 (r324377) @@ -1163,7 +1163,7 @@ sleepq_sbuf_print_stacks(struct sbuf *sb, void *wchan, M_TEMP, M_WAITOK); for (stack_idx = 0; stack_idx < stacks_to_allocate; stack_idx++) - st[stack_idx] = stack_create(); + st[stack_idx] = stack_create(M_WAITOK); /* Where we will store the td name, tid, etc. */ td_infos = malloc(sizeof(struct sbuf *) * stacks_to_allocate, Modified: head/sys/kern/subr_stack.c ============================================================================== --- head/sys/kern/subr_stack.c Fri Oct 6 20:51:32 2017 (r324376) +++ head/sys/kern/subr_stack.c Fri Oct 6 21:52:28 2017 (r324377) @@ -50,11 +50,11 @@ static int stack_symbol(vm_offset_t pc, char *namebuf, static int stack_symbol_ddb(vm_offset_t pc, const char **name, long *offset); struct stack * -stack_create(void) +stack_create(int flags) { struct stack *st; - st = malloc(sizeof *st, M_STACK, M_WAITOK | M_ZERO); + st = malloc(sizeof(*st), M_STACK, flags | M_ZERO); return (st); } Modified: head/sys/sys/stack.h ============================================================================== --- head/sys/sys/stack.h Fri Oct 6 20:51:32 2017 (r324376) +++ head/sys/sys/stack.h Fri Oct 6 21:52:28 2017 (r324377) @@ -34,7 +34,7 @@ struct sbuf; /* MI Routines. */ -struct stack *stack_create(void); +struct stack *stack_create(int); void stack_destroy(struct stack *); int stack_put(struct stack *, vm_offset_t); void stack_copy(const struct stack *, struct stack *);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201710062152.v96LqSLk086571>