Date: Tue, 31 Jul 2012 00:48:34 +0200 From: Davide Italiano <davide@freebsd.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r238925 - in head/sys: conf kern Message-ID: <CACYV=-HSpq29iWqudjPgejqP9mogkVLDYYF0pQNpoWWxWQfNbA@mail.gmail.com> In-Reply-To: <201207302246.q6UMkgcA053639@svn.freebsd.org> References: <201207302246.q6UMkgcA053639@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Jul 31, 2012 at 12:46 AM, Davide Italiano <davide@freebsd.org> wrote: > Author: davide > Date: Mon Jul 30 22:46:42 2012 > New Revision: 238925 > URL: http://svn.freebsd.org/changeset/base/238925 > > Log: > Until now KTR_ENTRIES, which defines the size of circular buffer used in > ktr(4), was constrained to be a power of two. Remove this constraint and > update sys/conf/NOTES accordingly. > > Reviewed by: jhb > Approved by: gnn (mentor) > Sponsored by: Google Summer of Code 2012 > > Modified: > head/sys/conf/NOTES > head/sys/kern/kern_ktr.c > > Modified: head/sys/conf/NOTES > ============================================================================== > --- head/sys/conf/NOTES Mon Jul 30 21:58:28 2012 (r238924) > +++ head/sys/conf/NOTES Mon Jul 30 22:46:42 2012 (r238925) > @@ -435,7 +435,7 @@ options KTRACE_REQUEST_POOL=101 > # > # KTR is a kernel tracing facility imported from BSD/OS. It is > # enabled with the KTR option. KTR_ENTRIES defines the number of > -# entries in the circular trace buffer; it must be a power of two. > +# entries in the circular trace buffer; it may be an arbitrary number. > # KTR_COMPILE defines the mask of events to compile into the kernel as > # defined by the KTR_* constants in <sys/ktr.h>. KTR_MASK defines the > # initial value of the ktr_mask variable which determines at runtime > > Modified: head/sys/kern/kern_ktr.c > ============================================================================== > --- head/sys/kern/kern_ktr.c Mon Jul 30 21:58:28 2012 (r238924) > +++ head/sys/kern/kern_ktr.c Mon Jul 30 22:46:42 2012 (r238925) > @@ -283,7 +283,7 @@ ktr_tracepoint(u_int mask, const char *f > { > do { > saveindex = ktr_idx; > - newindex = (saveindex + 1) & (KTR_ENTRIES - 1); > + newindex = (saveindex + 1) % KTR_ENTRIES; > } while (atomic_cmpset_rel_int(&ktr_idx, saveindex, newindex) == 0); > entry = &ktr_buf[saveindex]; > } > @@ -338,7 +338,7 @@ static int db_mach_vtrace(void); > DB_SHOW_COMMAND(ktr, db_ktr_all) > { > > - tstate.cur = (ktr_idx - 1) & (KTR_ENTRIES - 1); > + tstate.cur = (ktr_idx - 1) % KTR_ENTRIES; > tstate.first = -1; > db_ktr_verbose = 0; > db_ktr_verbose |= (strchr(modif, 'v') != NULL) ? 2 : 0; I forget this: MFC after: 3 days.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CACYV=-HSpq29iWqudjPgejqP9mogkVLDYYF0pQNpoWWxWQfNbA>