From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Hansen Subject: Re: [PATCHv4 04/39] radix-tree: implement preload for multiple contiguous elements Date: Wed, 22 May 2013 07:20:28 -0700 Message-ID: <519CD42C.6040600@sr71.net> References: <1368321816-17719-1-git-send-email-kirill.shutemov@linux.intel.com> <1368321816-17719-5-git-send-email-kirill.shutemov@linux.intel.com> <519BC3BE.3070702@sr71.net> <20130522120356.9CB12E0090@blue.fi.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: Andrea Arcangeli , Andrew Morton , Al Viro , Hugh Dickins , Wu Fengguang , Jan Kara , Mel Gorman , linux-mm@kvack.org, Andi Kleen , Matthew Wilcox , "Kirill A. Shutemov" , Hillf Danton , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org To: "Kirill A. Shutemov" Return-path: In-Reply-To: <20130522120356.9CB12E0090@blue.fi.intel.com> Sender: owner-linux-mm@kvack.org List-Id: linux-fsdevel.vger.kernel.org On 05/22/2013 05:03 AM, Kirill A. Shutemov wrote: > On most machines we will have RADIX_TREE_MAP_SHIFT=6. In this case, > on 64-bit system the per-CPU feature overhead is > for preload array: > (30 - 21) * sizeof(void*) = 72 bytes > plus, if the preload array is full > (30 - 21) * sizeof(struct radix_tree_node) = 9 * 560 = 5040 bytes > total: 5112 bytes > > on 32-bit system the per-CPU feature overhead is > for preload array: > (19 - 11) * sizeof(void*) = 32 bytes > plus, if the preload array is full > (19 - 11) * sizeof(struct radix_tree_node) = 8 * 296 = 2368 bytes > total: 2400 bytes > --- > > Is it good enough? Yup, just stick the calculations way down in the commit message. You can put the description that it "eats about 5k more memory per-cpu than existing code" up in the very beginning. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756147Ab3EVOU1 (ORCPT ); Wed, 22 May 2013 10:20:27 -0400 Received: from www.sr71.net ([198.145.64.142]:52112 "EHLO blackbird.sr71.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754506Ab3EVOUY (ORCPT ); Wed, 22 May 2013 10:20:24 -0400 Message-ID: <519CD42C.6040600@sr71.net> Date: Wed, 22 May 2013 07:20:28 -0700 From: Dave Hansen User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130510 Thunderbird/17.0.6 MIME-Version: 1.0 To: "Kirill A. Shutemov" CC: Andrea Arcangeli , Andrew Morton , Al Viro , Hugh Dickins , Wu Fengguang , Jan Kara , Mel Gorman , linux-mm@kvack.org, Andi Kleen , Matthew Wilcox , "Kirill A. Shutemov" , Hillf Danton , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCHv4 04/39] radix-tree: implement preload for multiple contiguous elements References: <1368321816-17719-1-git-send-email-kirill.shutemov@linux.intel.com> <1368321816-17719-5-git-send-email-kirill.shutemov@linux.intel.com> <519BC3BE.3070702@sr71.net> <20130522120356.9CB12E0090@blue.fi.intel.com> In-Reply-To: <20130522120356.9CB12E0090@blue.fi.intel.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 05/22/2013 05:03 AM, Kirill A. Shutemov wrote: > On most machines we will have RADIX_TREE_MAP_SHIFT=6. In this case, > on 64-bit system the per-CPU feature overhead is > for preload array: > (30 - 21) * sizeof(void*) = 72 bytes > plus, if the preload array is full > (30 - 21) * sizeof(struct radix_tree_node) = 9 * 560 = 5040 bytes > total: 5112 bytes > > on 32-bit system the per-CPU feature overhead is > for preload array: > (19 - 11) * sizeof(void*) = 32 bytes > plus, if the preload array is full > (19 - 11) * sizeof(struct radix_tree_node) = 8 * 296 = 2368 bytes > total: 2400 bytes > --- > > Is it good enough? Yup, just stick the calculations way down in the commit message. You can put the description that it "eats about 5k more memory per-cpu than existing code" up in the very beginning.