Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753889AbYKHBEW (ORCPT ); Fri, 7 Nov 2008 20:04:22 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752859AbYKHBEN (ORCPT ); Fri, 7 Nov 2008 20:04:13 -0500 Received: from smtp1.linux-foundation.org ([140.211.169.13]:53808 "EHLO smtp1.linux-foundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752848AbYKHBEM (ORCPT ); Fri, 7 Nov 2008 20:04:12 -0500 Date: Fri, 7 Nov 2008 17:03:07 -0800 From: Andrew Morton To: Masami Hiramatsu Cc: Ananth N Mavinakayanahalli , Jim Keniston , David Miller , LKML , maneesh@in.ibm.com, Srikar Dronamraju Subject: Re: [PATCH] kprobe: increase kprobe_hash_table size Message-Id: <20081107170307.1a4f815e.akpm@linux-foundation.org> In-Reply-To: <4914DAEE.2050301@redhat.com> References: <4914D2DE.9030603@redhat.com> <20081107155646.b375413e.akpm@linux-foundation.org> <4914DAEE.2050301@redhat.com> X-Mailer: Sylpheed 2.4.8 (GTK+ 2.12.5; x86_64-redhat-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2043 Lines: 52 On Fri, 07 Nov 2008 19:18:54 -0500 Masami Hiramatsu wrote: > Hi Andrew, > > Andrew Morton wrote: > > On Fri, 07 Nov 2008 18:44:30 -0500 Masami Hiramatsu wrote: > > > >> Increase the size of kprobe hash table to 512. It's useful when hundreds > >> of kprobes were used in the kernel because current size is just 64. > >> > > > > "useful" is a bit vague. How big is the problem which this solves, and > > how well did it solve it? > > For example, when probing enters and exits of syscall-related functions, > we need more than 500 probes. In that case, each hlist would have 8 > elements in average. With this patch, the hlist would have 1 element in > average. > > I agree that there may be many opinions about what is the best suited size. > Why I chose 512 was that I thought the table (byte) size was less than or > equal 4096 even on 64-bit arch. Well... text data bss dec hex filename 7036 744 9380 17160 4308 kernel/kprobes.o 7048 744 73892 81684 13f14 kernel/kprobes.o That's 64 kbytes more memory. It will be kretprobe_table_locks[] which is hurting here, due to the ____cacheline_aligned. I expected CONFIG_X86_VSMP=y to make this far worse, but fortunately that only affects ____cacheline_internodealigned_in_smp. btw, that array wastes a ton of memory on uniprocessor builds. Using ____cacheline_aligned_in_smp should fix that. Please always check these thigns with /usr/bin/size. btw2, could/should kprobe_table[] and kretprobe_inst_table[] be aggregated into kretprobe_table_locks[]? That would save some memory and might save some cache misses as well? Anyway, enough pos-facto code review. Is this change which you're proposing worth increasing kernel memory usage by 64k? -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/