From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932878AbcDSURh (ORCPT ); Tue, 19 Apr 2016 16:17:37 -0400 Received: from mail.efficios.com ([78.47.125.74]:55846 "EHLO mail.efficios.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932156AbcDSURg (ORCPT ); Tue, 19 Apr 2016 16:17:36 -0400 Date: Tue, 19 Apr 2016 20:17:29 +0000 (UTC) From: Mathieu Desnoyers To: rostedt Cc: "H. Peter Anvin" , linux-kernel@vger.kernel.org, Ingo Molnar , Andrew Morton , Thomas Gleixner , Jiri Olsa , Masami Hiramatsu , Namhyung Kim , linux-trace-users@vger.kernel.org Message-ID: <2093660141.63332.1461097049611.JavaMail.zimbra@efficios.com> In-Reply-To: <20160419154113.64f146dc@grimm.local.home> References: <20160419143421.829909157@goodmis.org> <20160419143725.295928551@goodmis.org> <1694657549.62933.1461084928341.JavaMail.zimbra@efficios.com> <20160419131947.3c5208b4@gandalf.local.home> <4ACF15B6-D344-4647-9CF8-CEDE5BF5EF70@zytor.com> <20160419154113.64f146dc@grimm.local.home> Subject: Re: [RFC][PATCH 2/4] tracing: Use pid bitmap instead of a pid array for set_event_pid MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [78.47.125.74] X-Mailer: Zimbra 8.6.0_GA_1178 (ZimbraWebClient - FF45 (Linux)/8.6.0_GA_1178) Thread-Topic: tracing: Use pid bitmap instead of a pid array for set_event_pid Thread-Index: vb5hkygvEWapp7p6zWglfj6duX9WuQ== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org ----- On Apr 19, 2016, at 3:41 PM, rostedt rostedt@goodmis.org wrote: > On Tue, 19 Apr 2016 11:57:32 -0700 > "H. Peter Anvin" wrote: > >> Also, I understand there is one of these bitmaps per ring buffer, and >> the ring buffer is in the tens of megabytes. > > Right, there's only one bitmap per tracing instance, which in most > cases is just one (I know of people who make more). And by default, the > tracing buffer is 1.4 megs per CPU. > > If you have a pid_max of the max size, I highly doubt you will be doing > that on a single CPU machine. If you have 48 CPUs, the ring buffer will > be 1.4 * 48 megs, making the 1/2 meg bitmap a nit. > > I will say, there may be two bitmaps soon, because I plan on adding > this same code to the function tracer logic. Ah indeed, since there is a hard limit to 4194304, that makes the worse case bitmap 512k. We could argue that given a sparse dataset in the PID table (typical in our use-cases), a small hash table would have better cache locality than the bitmap. But I agree that the hash table does add a bit of complexity, so it becomes a complexity vs cache locality tradeoff. So I understand why you would want to go for the simpler bitmap solution, unless the hash table would prove to bring a measurable performance improvement. Thanks, Mathieu -- Mathieu Desnoyers EfficiOS Inc. http://www.efficios.com