From owner-svn-src-user@FreeBSD.ORG Mon May 13 18:45:12 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 8D2BCC19; Mon, 13 May 2013 18:45:12 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) by mx1.freebsd.org (Postfix) with ESMTP id 6A4D3180; Mon, 13 May 2013 18:45:12 +0000 (UTC) Received: from dhcp-10-2-212-236.hudson-trading.com (unknown [209.249.190.124]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id DC47CB963; Mon, 13 May 2013 14:45:11 -0400 (EDT) Message-ID: <519134BB.5030400@FreeBSD.org> Date: Mon, 13 May 2013 14:45:15 -0400 From: John Baldwin User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:17.0) Gecko/20130328 Thunderbird/17.0.5 MIME-Version: 1.0 To: attilio@FreeBSD.org Subject: Re: svn commit: r250543 - user/attilio/jeff-numa/sys/vm References: <201305120153.r4C1r3DN071206@svn.freebsd.org> <51912816.1020603@FreeBSD.org> In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Mon, 13 May 2013 14:45:12 -0400 (EDT) Cc: src-committers@freebsd.org, svn-src-user@freebsd.org X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 May 2013 18:45:12 -0000 On 5/13/13 2:23 PM, Attilio Rao wrote: > On Mon, May 13, 2013 at 7:51 PM, John Baldwin wrote: >> On 5/11/13 9:53 PM, Attilio Rao wrote: >>> Author: attilio >>> Date: Sun May 12 01:53:03 2013 >>> New Revision: 250543 >>> URL: http://svnweb.freebsd.org/changeset/base/250543 >>> >>> Log: >>> Scan all the domains when trying to allocate from freepages. >>> Some domains may be empty but others may still have some available pages >>> satisfying the allocations. >> >> It seems like you have nested loops here so you are doing N^2 scans >> rather than N? > > If you want to say so. In most cases N=2 and M=4. However also > consider the less overhead caming from all the adjustement of the > flind because of now split DOMAINS-NFREELISTS concepts. *sigh* No. Read the code. vm_phys_alloc_pages() does 'for i = 0; i < vm_ndomains; i++' around calls to vm_phys_alloc_pages_domain() which internally has its _own_ 'for i = 0; i < vm_ndomains; i++'. Same with vm_phys_alloc_freelist_pages(). You don't need it in both places. Also, vm_phys_alloc_pages() should now be able to just call vm_phys_alloc_freelist_pages() and just be a simple loop that only iterates on flind as it used to do before all the NUMA changes. -- John Baldwin