From owner-freebsd-hackers@FreeBSD.ORG Thu Sep 15 21:28:15 2011 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 157A1106564A; Thu, 15 Sep 2011 21:28:15 +0000 (UTC) (envelope-from lacombar@gmail.com) Received: from mail-gx0-f177.google.com (mail-gx0-f177.google.com [209.85.161.177]) by mx1.freebsd.org (Postfix) with ESMTP id 9A1388FC16; Thu, 15 Sep 2011 21:28:14 +0000 (UTC) Received: by gxk23 with SMTP id 23so3525820gxk.8 for ; Thu, 15 Sep 2011 14:28:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=8jK0MQdtgTB3rj22ac+DIPeopZCZnXDg3QTCj9F5o18=; b=IUSnV4Mc+W8HqO3oDvVpbT6jC8MLcliOp3qzLJmIwhLePLXufNtZQv/eKgpbuCuvls BmzueSQ4vEzZDJ08JsYuI2WVKb2/FK8gPgdItwDSPiBuHbnCZiIl6s6wfwFYqzLiXzer tAEBH6MIj0H2Ee1NUsxAeOMrjhM53wxSUE/qs= MIME-Version: 1.0 Received: by 10.68.71.200 with SMTP id x8mr821595pbu.465.1316122093449; Thu, 15 Sep 2011 14:28:13 -0700 (PDT) Received: by 10.142.12.18 with HTTP; Thu, 15 Sep 2011 14:28:13 -0700 (PDT) In-Reply-To: References: Date: Thu, 15 Sep 2011 17:28:13 -0400 Message-ID: From: Arnaud Lacombe To: Robert Watson Content-Type: multipart/mixed; boundary=bcaec544eb7cdc73ac04ad018df1 Cc: FreeBSD Hackers , "K. Macy" Subject: Re: buf_ring(9) API precisions X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Sep 2011 21:28:15 -0000 --bcaec544eb7cdc73ac04ad018df1 Content-Type: text/plain; charset=ISO-8859-1 Hi, On Thu, Sep 15, 2011 at 5:21 PM, Robert Watson wrote: > On Thu, 15 Sep 2011, K. Macy wrote: > >>> Why are you making an MD guess, the amount of padding to fit the size of >>> a cache line, in MI API ? Strangely enough, you did not make this assumption >>> in, say r205488 (picked randomly). >> >> It has been several years, and I haven't done any work in svn in over a >> year, I don't remember. I probably meant to refine it in a later iteration. >> >> If you would like to send me a patch addressing this I'd be more than >> happy to apply it if appropriate. Otherwise, I will deal with it some time >> after 9 settles. >> >> Thanks for pointing this out. > > I'm not sure if gcc (and friends) allow __aligned(CACHE_LINE_SIZE) to be > used on individual elements of a struct (causing appropriate padding to be > added), but that may be one option here. > It definitively does, it is used in several structure in the tree. Attached a patch to convert buf_ring(9), however, I'm not a huge fan of dedicating a full cache line to the lock pointer. - Arnaud > Of course, that introduces a > further alignment requirement on the struct itself, so a moderate amount of > care would need to be used. > > Robert > --bcaec544eb7cdc73ac04ad018df1 Content-Type: text/x-patch; charset=US-ASCII; name="buf_ring_md_padding.diff" Content-Disposition: attachment; filename="buf_ring_md_padding.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gsm8zgmr0 ZGlmZiAtLWdpdCBhL3N5cy9zeXMvYnVmX3JpbmcuaCBiL3N5cy9zeXMvYnVmX3JpbmcuaAppbmRl eCA1N2U0MmU1Li4wMWYzOTllIDEwMDY0NAotLS0gYS9zeXMvc3lzL2J1Zl9yaW5nLmgKKysrIGIv c3lzL3N5cy9idWZfcmluZy5oCkBAIC00OSwyNSArNDksMTcgQEAgc3RydWN0IGJ1Zl9yaW5nIHsK IAl1aW50NjRfdAkJYnJfZHJvcHM7CiAJdWludDY0X3QJCWJyX3Byb2RfYnVmczsKIAl1aW50NjRf dAkJYnJfcHJvZF9ieXRlczsKLQkvKgotCSAqIFBhZCBvdXQgdG8gbmV4dCBMMiBjYWNoZSBsaW5l Ci0JICovCi0JdWludDY0X3QJICAJX3BhZDBbMTFdOwogCi0Jdm9sYXRpbGUgdWludDMyX3QJYnJf Y29uc19oZWFkOworCXZvbGF0aWxlIHVpbnQzMl90CWJyX2NvbnNfaGVhZCBfX2FsaWduZWQoQ0FD SEVfTElORV9TSVpFKTsKIAl2b2xhdGlsZSB1aW50MzJfdAlicl9jb25zX3RhaWw7CiAJaW50CQkg CWJyX2NvbnNfc2l6ZTsKIAlpbnQgICAgICAgICAgICAgIAlicl9jb25zX21hc2s7CiAJCi0JLyoK LQkgKiBQYWQgb3V0IHRvIG5leHQgTDIgY2FjaGUgbGluZQotCSAqLwotCXVpbnQ2NF90CSAgCV9w YWQxWzE0XTsKICNpZmRlZiBERUJVR19CVUZSSU5HCi0Jc3RydWN0IG10eAkJKmJyX2xvY2s7CisJ c3RydWN0IG10eAkJKmJyX2xvY2sgX19hbGlnbmVkKENBQ0hFX0xJTkVfU0laRSk7CiAjZW5kaWYJ Ci0Jdm9pZAkJCSpicl9yaW5nWzBdOwotfTsKKwl2b2lkCQkJKmJyX3JpbmdbMF0gX19hbGlnbmVk KENBQ0hFX0xJTkVfU0laRSk7Cit9IF9fYWxpZ25lZChDQUNIRV9MSU5FX1NJWkUpOwogCiAvKgog ICogbXVsdGktcHJvZHVjZXIgc2FmZSBsb2NrLWZyZWUgcmluZyBidWZmZXIgZW5xdWV1ZQo= --bcaec544eb7cdc73ac04ad018df1--