From owner-freebsd-arch@FreeBSD.ORG Tue Jul 25 17:04:35 2006 Return-Path: X-Original-To: freebsd-arch@freebsd.org Delivered-To: freebsd-arch@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9E1F616A4DF for ; Tue, 25 Jul 2006 17:04:35 +0000 (UTC) (envelope-from asmrookie@gmail.com) Received: from wx-out-0102.google.com (wx-out-0102.google.com [66.249.82.196]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8872A43D45 for ; Tue, 25 Jul 2006 17:04:34 +0000 (GMT) (envelope-from asmrookie@gmail.com) Received: by wx-out-0102.google.com with SMTP id i31so992751wxd for ; Tue, 25 Jul 2006 10:04:33 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:sender:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references:x-google-sender-auth; b=JxDGMjP2DlFRNxY9wT8MXU/f8G6GbjHJAVPrkwIvUZ8ndalMjklo3sbf9GTk0PzTifmJ0R/62fQhNuPVJ1f1wGBnkDCu332ex50tiZG75Vq60jReRjYB06RYtXDsq+xhrOK3uCoFS95KgOiJOVmbMua++isngLGeQohRihtazbk= Received: by 10.70.84.16 with SMTP id h16mr6805220wxb; Tue, 25 Jul 2006 10:04:33 -0700 (PDT) Received: by 10.70.11.18 with HTTP; Tue, 25 Jul 2006 10:04:33 -0700 (PDT) Message-ID: <3bbf2fe10607251004wf94e238xb5ea7a31c973817f@mail.gmail.com> Date: Tue, 25 Jul 2006 19:04:33 +0200 From: "Attilio Rao" Sender: asmrookie@gmail.com To: "John Baldwin" In-Reply-To: <200607251232.51230.jhb@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <3bbf2fe10607250813w8ff9e34pc505bf290e71758@mail.gmail.com> <3bbf2fe10607250814m1a476f09p2d962dedc0c99be1@mail.gmail.com> <200607251232.51230.jhb@freebsd.org> X-Google-Sender-Auth: 125ef96a6c39eae2 Cc: freebsd-arch@freebsd.org Subject: Re: [PATCH] Mantaining turnstile aligned to 128 bytes in i386 CPUs X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Jul 2006 17:04:35 -0000 2006/7/25, John Baldwin : > On Tuesday 25 July 2006 11:14, Attilio Rao wrote: > > 2006/7/25, Attilio Rao : > > > Hi, > > > Intel documentation points out that having a 128-bytes aligned > > > syncronizing primitive (which fits in a cache line) will minimize the > > > traffic for cache bus, so this patch implements an alignment for i386 > > > on turnstiles. > > > > > > Any comments, feedbacks? > > > > Oh, sorry, I've unforgotten the diff. > > > > Attilio > > I think a better approach would be to stick turnstiles (and sleepqueues) in a > UMA zone and specify cache-size alignment to the zone. However, turnstiles > aren't really sychronization primitives in that you don't spin on a variable > inside the structure, and I think it's the spinning and avoiding bouncing > cache lines around that Intel's documentation is really about. In that case, > the things you want aligned are things like mutexes, rwlocks, etc. Well, I think that this is referred in particular to the latter issue you mentioned. Spinning is not really concerned to cache bus issues (more, in particular, datapath latency). With this point of view, turnstiles (as sleepqueues) are passed around CPUs more than a mutex/rwlock (or a cv), I guess, so I was thinking that it's better optimizing turnstile than the real syncronizing primitive itself. Attilio -- Peace can only be achieved by understanding - A. Einstein