From owner-freebsd-current@FreeBSD.ORG Tue Jan 16 21:19:15 2007 Return-Path: X-Original-To: freebsd-current@freebsd.org Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9830316A47C; Tue, 16 Jan 2007 21:19:15 +0000 (UTC) (envelope-from scottl@samsco.org) Received: from pooker.samsco.org (pooker.samsco.org [168.103.85.57]) by mx1.freebsd.org (Postfix) with ESMTP id 32BEC13C4B8; Tue, 16 Jan 2007 21:19:14 +0000 (UTC) (envelope-from scottl@samsco.org) Received: from phobos.samsco.home (phobos.samsco.home [192.168.254.11]) (authenticated bits=0) by pooker.samsco.org (8.13.4/8.13.4) with ESMTP id l0GLJ8j9067886; Tue, 16 Jan 2007 14:19:13 -0700 (MST) (envelope-from scottl@samsco.org) Message-ID: <45AD4148.90002@samsco.org> Date: Tue, 16 Jan 2007 14:19:04 -0700 From: Scott Long User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.2pre) Gecko/20070111 SeaMonkey/1.1 MIME-Version: 1.0 To: John Baldwin References: <3bbf2fe10607250813w8ff9e34pc505bf290e71758@mail.gmail.com> <200701161438.52481.jhb@freebsd.org> <3bbf2fe10701161236s48e6cc16p99c8c38c1d7becde@mail.gmail.com> <200701161605.22394.jhb@freebsd.org> In-Reply-To: <200701161605.22394.jhb@freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH authentication, not delayed by milter-greylist-2.0.2 (pooker.samsco.org [168.103.85.57]); Tue, 16 Jan 2007 14:19:13 -0700 (MST) X-Spam-Status: No, score=-1.4 required=3.8 tests=ALL_TRUSTED autolearn=failed version=3.1.1 X-Spam-Checker-Version: SpamAssassin 3.1.1 (2006-03-10) on pooker.samsco.org Cc: Pawel Jakub Dawidek , Kip Macy , Suleiman Souhlal , Attilio Rao , freebsd-current@freebsd.org, freebsd-arch@freebsd.org Subject: Re: [PATCH] Mantaining turnstile aligned to 128 bytes in i386 CPUs X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Jan 2007 21:19:15 -0000 John Baldwin wrote: > On Tuesday 16 January 2007 15:36, Attilio Rao wrote: >> 2007/1/16, John Baldwin : >>> On Tuesday 16 January 2007 11:51, Attilio Rao wrote: >>>> 2006/7/28, Attilio Rao : >>>>> After some thinking, I think it's better using init/fini methods >>>>> (since they hide the sizeof(struct turnstile) with size parameter). >>>>> >>>>> Feedbacks and comments are welcome: >>>>> http://users.gufi.org/~rookie/works/patches/uma_sync_init.diff >>>> [CC'ed all the interested people] >>>> >>>> Even if a long time is passed I did some benchmarks based on ebizzy > tool. >>>> This program claims to reproduce a real httpd server behaviour and is >>>> used into the Linux world for benchmarks, AFAIK. >>>> I think that results of the comparison on this patch is very >>>> interesting, and I think it worths a commit :) >>>> I think that results can be even better on a Xeon machine (I had no >>>> chance to reproduce this on some of these). >>>> (Results taken in consideration have been measured after some starts, >>>> in order to minimize caching differences). >>>> >>>> The patch: >>>> http://users.gufi.org/~rookie/works/patches/ts-sq/ts-sq.diff >>> Looks good. Some minor nits are that in subr_turnstile.c in the comment I >>> would say "a turnstile is allocated" rather than "a turnstile is got from > a >>> specific UMA zone" as it reads a little bit clearer. Also, I would >>> say "Allocate a" rather than "Get a" for the two _alloc() functions. > Also, >>> why not just use UMA_ALIGN_CACHE and make UMA_ALIGN_CACHE (128 - 1) on > i386 >>> and amd64 rather than adding a new UMA_ALIGN_SYNC? >> I was thinking that in this way anyone who wants to replace the >> syncronizing primitive boundary to an appropriate value can do it. >> I just used UMA_ALIGN_CACHE as default value beacause I don't know the >> better boundary (for syncronizing primitives) for other arches. > > Is there a good reason to not cache-align synch primitives? That is, why > would an arch not use cache-align? Also, is there a reason to not update > UMA_ALIGN_CACHE on x86? > If you always cache-line-align them, that also addresses the Intel recommendation to always keep them from sharing cache lines. Scott