From owner-freebsd-hackers@FreeBSD.ORG Thu May 12 20:52:00 2005 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0464E16A4D0 for ; Thu, 12 May 2005 20:52:00 +0000 (GMT) Received: from mail25.sea5.speakeasy.net (mail25.sea5.speakeasy.net [69.17.117.27]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9CA5D43D60 for ; Thu, 12 May 2005 20:51:59 +0000 (GMT) (envelope-from jhb@FreeBSD.org) Received: (qmail 18727 invoked from network); 12 May 2005 20:51:59 -0000 Received: from server.baldwin.cx ([216.27.160.63]) (envelope-sender )AES256-SHA encrypted SMTP for ; 12 May 2005 20:51:59 -0000 Received: from [10.50.41.242] (gw1.twc.weather.com [216.133.140.1]) (authenticated bits=0) by server.baldwin.cx (8.13.1/8.13.1) with ESMTP id j4CKpp4t067266; Thu, 12 May 2005 16:51:52 -0400 (EDT) (envelope-from jhb@FreeBSD.org) From: John Baldwin To: freebsd-hackers@FreeBSD.org Date: Thu, 12 May 2005 16:05:43 -0400 User-Agent: KMail/1.8 References: <200504112003.25096.vs@rambler-co.ru> In-Reply-To: <200504112003.25096.vs@rambler-co.ru> MIME-Version: 1.0 Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200505121605.44816.jhb@FreeBSD.org> X-Spam-Status: No, score=-102.8 required=4.2 tests=ALL_TRUSTED, USER_IN_WHITELIST autolearn=failed version=3.0.2 X-Spam-Checker-Version: SpamAssassin 3.0.2 (2004-11-16) on server.baldwin.cx cc: hackers@FreeBSD.org cc: Vladislav Shabanov Subject: Re: do-nothing code in sysv_shm.c X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 May 2005 20:52:00 -0000 On Monday 11 April 2005 12:03 pm, Vladislav Shabanov wrote: > I`ve found the following code in sysv_shm.c : > > ............ > static void > shminit() > { > int i; > > TUNABLE_INT_FETCH("kern.ipc.shmmaxpgs", &shminfo.shmall); > for (i = PAGE_SIZE; i > 0; i--) { > shminfo.shmmax = shminfo.shmall * PAGE_SIZE; > if (shminfo.shmmax >= shminfo.shmall) > break; > } > TUNABLE_INT_FETCH("kern.ipc.shmmin", &shminfo.shmmin); > ......... > > IMHO, loop does nothing. Possible variant: > > #define shmall_bits (sizeof(shminfo.shmall)*8) > > if (0 == (shminfo.shmall & (~ ( (1<<(shmall_bits-PAGE_SHIFT-1)) - 1)))) { > /* if high PAGE_SHIFT+1 bits of shminfo.shmall is zero */ > shminfo.shmmax = shminfo.shmall << PAGE_SHIFT; > } else { > shminfo.shmmax = __INT_MAX; > } > > ------------------------------ > previous changes in this part of code: > > http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/kern/sysv_shm.c.diff?r1=1.78& >r2=1.79&f=h > http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/kern/sysv_shm.c.diff?r1=1.79& >r2=1.80&f=h _______________________________________________ > freebsd-hackers@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org" After talking to Alfred, I just changed it to use 'i' rather than PAGE_SIZE in the loop as it's easy to follow and given that this code only runs once at boot it's not critical that it be fast. Thanks for the report! -- John Baldwin <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org