Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Tue, 11 Feb 2003 05:00:52 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Tue, 11 Feb 2003 05:00:52 -0500 Received: from packet.digeo.com ([12.110.80.53]:37270 "EHLO packet.digeo.com") by vger.kernel.org with ESMTP id ; Tue, 11 Feb 2003 05:00:50 -0500 Date: Tue, 11 Feb 2003 02:10:54 -0800 From: Andrew Morton To: Con Kolivas Cc: linux-kernel@vger.kernel.org, Linus Torvalds , Roland McGrath Subject: Re: [BENCHMARK] 2.5.60 with contest Message-Id: <20030211021054.0ea47494.akpm@digeo.com> In-Reply-To: <200302112036.38710.ckolivas@yahoo.com.au> References: <200302112036.38710.ckolivas@yahoo.com.au> X-Mailer: Sylpheed version 0.8.9 (GTK+ 1.2.10; i586-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 11 Feb 2003 10:10:28.0997 (UTC) FILETIME=[CDB06350:01C2D1B5] Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1908 Lines: 87 Con Kolivas wrote: > > interestingly dbench_load wouldnt give me a number because dbench never > quite started - a whole swag of processes visible but not doing anything Signal problems... What dbench is doing is: - Install a SIGCONT handler - fork N times, children drop into a pause() - parent does kill(0, SIGCONT); It appears that the SIGCONT is not causing the children to drop out of the pause(). Changing it to SIGINT makes it work. The tarball is at http://samba.org/ftp/tridge/dbench/dbench-2.0.tar.gz Here's the relevant snippet: static double create_procs(int nprocs, void (*fn)(struct child_struct * )) { int i, status; int synccount; signal(SIGCONT, sigcont); start_timer(); synccount = 0; if (nprocs < 1) { fprintf(stderr, "create %d procs? you must be kidding.\n", nprocs); return 1; } children = shm_setup(sizeof(struct child_struct)*nprocs); if (!children) { printf("Failed to setup shared memory\n"); return end_timer(); } memset(children, 0, sizeof(*children)*nprocs); for (i=0;i