From owner-freebsd-current@FreeBSD.ORG Thu Jan 18 22:47:57 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 5460616A415; Thu, 18 Jan 2007 22:47:57 +0000 (UTC) (envelope-from cswiger@mac.com) Received: from mail-out4.apple.com (mail-out4.apple.com [17.254.13.23]) by mx1.freebsd.org (Postfix) with ESMTP id 30DDA13C44B; Thu, 18 Jan 2007 22:47:57 +0000 (UTC) (envelope-from cswiger@mac.com) Received: from relay5.apple.com (relay5.apple.com [17.128.113.35]) by mail-out4.apple.com (8.13.8/8.13.8) with ESMTP id l0IMluNl014484; Thu, 18 Jan 2007 14:47:56 -0800 (PST) Received: from relay5.apple.com (unknown [127.0.0.1]) by relay5.apple.com (Symantec Mail Security) with ESMTP id 7B0EA29C002; Thu, 18 Jan 2007 14:47:56 -0800 (PST) X-AuditID: 11807123-a3b5bbb0000039f2-94-45aff91c36f4 Received: from [17.214.13.96] (unknown [17.214.13.96]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by relay5.apple.com (Apple SCV relay) with ESMTP id 6322730400B; Thu, 18 Jan 2007 14:47:56 -0800 (PST) In-Reply-To: <45AFF47E.3020905@FreeBSD.org> References: <3bbf2fe10607250813w8ff9e34pc505bf290e71758@mail.gmail.com> <3bbf2fe10607281004o6727e976h19ee7e054876f914@mail.gmail.com> <3bbf2fe10701160851r79b04464m2cbdbb7f644b22b6@mail.gmail.com> <20070116154258.568e1aaf@pleiades.nextvenue.com> <3bbf2fe10701161525j6ad9292y93502b8df0f67aa9@mail.gmail.com> <45AD6DFA.6030808@FreeBSD.org> <3bbf2fe10701161655p5e686b52n7340b3100ecfab93@mail.gmail.com> <200701172022.l0HKMYV8053837@apollo.backplane.com> <20070118113831.A11834@delplex.bde.org> <200701181948.l0IJmdfn061671@apollo.backplane.com> <45AFED63.7020009@FreeBSD.org> <25EB3FED-71A9-4AE1-9A38-5D2DC27D0DF7@mac.com> <45AFF47E.3020905@FreeBSD.org> Mime-Version: 1.0 (Apple Message framework v752.2) Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Message-Id: <0B6D259B-618B-466C-844E-3F79FDE272BB@mac.com> Content-Transfer-Encoding: 7bit From: Chuck Swiger Date: Thu, 18 Jan 2007 14:47:55 -0800 To: Maxim Sobolev X-Mailer: Apple Mail (2.752.2) X-Brightmail-Tracker: AAAAAA== Cc: 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: Thu, 18 Jan 2007 22:47:57 -0000 On Jan 18, 2007, at 2:28 PM, Maxim Sobolev wrote: >> Unfortunately, there are simply different tradeoffs between >> mechanisms for copying depending on whether you want to use or >> avoid using/thrashing the L1/L2 caches, whether the data is cache- >> aligned, and so forth; the CPU can't infer what you want to >> occur-- you have to tell it. I find it interesting that some of >> the architectures (PA-RISC, > > Well, of course there are some special cases, but in general there > should be some baseline suitable for most of uses. That's why we > (and most other operating systems) only provide single version for > the mem*(3) APIs. Well, a truly generic version in is lib/libc/string/bcopy.c; it's architecture-neutral (ie, it's pure C code) and it handles all kinds of things like overlapping source and destination addresses, non- aligned access, and so forth. The downside is that it's slower than using movl/movsl, much less some of the fancier variants that Bruce and Matt have been discussing (in considerable, interesting detail) earlier: http://now.cs.berkeley.edu/Td/bcopy.html If you're only moving, say, 5 bytes, the overhead of fancy loop unrolling and prefetching and so forth isn't going to help compared with a simple movb/movl combination, so it really depends. -- -Chuck