From owner-svn-src-all@FreeBSD.ORG Wed Oct 24 19:49:53 2012 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C0D87D4D; Wed, 24 Oct 2012 19:49:53 +0000 (UTC) (envelope-from asmrookie@gmail.com) Received: from mail-la0-f54.google.com (mail-la0-f54.google.com [209.85.215.54]) by mx1.freebsd.org (Postfix) with ESMTP id 7B0568FC0C; Wed, 24 Oct 2012 19:49:51 +0000 (UTC) Received: by mail-la0-f54.google.com with SMTP id e12so715499lag.13 for ; Wed, 24 Oct 2012 12:49:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=zxzU7WxyT3ET+TwApPFUNYFnd7ykie7zpq2zZsY2n7Y=; b=D3sCJmdhDB+kMErF+IsZ3fqLSaFGm2MOT6y5aS9vVItQtA7/dONgtbj89rX4M2n6cv d/zo1laRP+VGJVXW5Og/ouhlY4X/faCjDhq9HWiDEKdloNPIaU3WZOiOGN8+oBXCXd7N WKwUNZzciqhIYyxtWtbLRm66RkvLjldHG5Xd77CvGk849lra9z7r4GShS5rQoTKOca6Y Bt2dgJlpq0fcbqeXHbNNS5OYPgs/hXedQplSUTObS6JNwk0zqxKengKdEEek+Tk3cXGo vABwFSiD1equHLfJIxPZyLu3xFSCKPx3/8CZUZ+61G83Bi3FV9WtNymr7qOaOeUkPEvP eJvQ== MIME-Version: 1.0 Received: by 10.152.105.103 with SMTP id gl7mr15273395lab.10.1351108190417; Wed, 24 Oct 2012 12:49:50 -0700 (PDT) Sender: asmrookie@gmail.com Received: by 10.112.30.37 with HTTP; Wed, 24 Oct 2012 12:49:50 -0700 (PDT) In-Reply-To: <50883EA8.1010308@freebsd.org> References: <201210241836.q9OIafqo073002@svn.freebsd.org> <50883EA8.1010308@freebsd.org> Date: Wed, 24 Oct 2012 20:49:50 +0100 X-Google-Sender-Auth: RTSTaoqMaiydgDohnK8iBu8_5TQ Message-ID: Subject: Re: svn commit: r242014 - head/sys/kern From: Attilio Rao To: Andre Oppermann Content-Type: text/plain; charset=UTF-8 Cc: svn-src-head@freebsd.org, Adrian Chadd , src-committers@freebsd.org, Jim Harris , svn-src-all@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: attilio@FreeBSD.org List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Oct 2012 19:49:53 -0000 On Wed, Oct 24, 2012 at 8:16 PM, Andre Oppermann wrote: > On 24.10.2012 20:56, Jim Harris wrote: >> >> On Wed, Oct 24, 2012 at 11:41 AM, Adrian Chadd wrote: >>> >>> On 24 October 2012 11:36, Jim Harris wrote: >>> >>>> Pad tdq_lock to avoid false sharing with tdq_load and tdq_cpu_idle. >>> >>> >>> Ok, but.. >>> >>> >>>> struct mtx tdq_lock; /* run queue lock. */ >>>> + char pad[64 - sizeof(struct mtx)]; >>> >>> >>> .. don't we have an existing compile time macro for the cache line >>> size, which can be used here? >> >> >> Yes, but I didn't use it for a couple of reasons: >> >> 1) struct tdq itself is currently using __aligned(64), so I wanted to >> keep it consistent. >> 2) CACHE_LINE_SIZE is currently defined as 128 on x86, due to >> NetBurst-based processors having 128-byte cache sectors a while back. >> I had planned to start a separate thread on arch@ about this today on >> whether this was still appropriate. > > > See also the discussion on svn-src-all regarding global struct mtx > alignment. > > Thank you for proving my point. ;) > > Let's go back and see how we can do this the sanest way. These are > the options I see at the moment: > > 1. sprinkle __aligned(CACHE_LINE_SIZE) all over the place This is wrong because it doesn't give padding. > 2. use a macro like MTX_ALIGN that can be SMP/UP aware and in > the future possibly change to a different compiler dependent > align attribute What is this macro supposed to do? I don't understand that from your description. > 3. embed __aligned(CACHE_LINE_SIZE) into struct mtx itself so it > automatically gets aligned in all cases, even when dynamically > allocated. This works but I think it is overkill for structures including sleep mutexes which are the vast majority. So I wouldn't certainly be in favor of such a patch. Attilio -- Peace can only be achieved by understanding - A. Einstein