Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 May 2013 13:52:35 -0400
From:      John Baldwin <jhb@FreeBSD.org>
To:        Attilio Rao <attilio@FreeBSD.org>
Cc:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   Re: svn commit: r250546 - user/attilio/jeff-numa/sys/x86/acpica
Message-ID:  <51912863.6010601@FreeBSD.org>
In-Reply-To: <201305120210.r4C2AFpt076600@svn.freebsd.org>
References:  <201305120210.r4C2AFpt076600@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 5/11/13 10:10 PM, Attilio Rao wrote:
> Author: attilio
> Date: Sun May 12 02:10:15 2013
> New Revision: 250546
> URL: http://svnweb.freebsd.org/changeset/base/250546
> 
> Log:
>   Add the code to setup the correct number of probed memory domains.
>   
>   Sponsored by:	EMC / Isilon storage division
>   Obtained from:	jeff
> 
> Modified:
>   user/attilio/jeff-numa/sys/x86/acpica/srat.c
> 
> Modified: user/attilio/jeff-numa/sys/x86/acpica/srat.c
> ==============================================================================
> --- user/attilio/jeff-numa/sys/x86/acpica/srat.c	Sun May 12 01:58:04 2013	(r250545)
> +++ user/attilio/jeff-numa/sys/x86/acpica/srat.c	Sun May 12 02:10:15 2013	(r250546)
> @@ -244,33 +244,34 @@ static int
>  renumber_domains(void)
>  {
>  	int domains[VM_PHYSSEG_MAX];
> -	int ndomain, i, j, slot;
> +	int i, j, slot;
>  
>  	/* Enumerate all the domains. */
> -	ndomain = 0;
> +	vm_ndomain = 0;
>  	for (i = 0; i < num_mem; i++) {
>  		/* See if this domain is already known. */
> -		for (j = 0; j < ndomain; j++) {
> +		for (j = 0; j < vm_ndomain; j++) {
>  			if (domains[j] >= mem_info[i].domain)
>  				break;
>  		}
> -		if (j < ndomain && domains[j] == mem_info[i].domain)
> +		if (j < vm_ndomain && domains[j] == mem_info[i].domain)
>  			continue;
>  
>  		/* Insert the new domain at slot 'j'. */
>  		slot = j;
> -		for (j = ndomain; j > slot; j--)
> +		for (j = vm_ndomain; j > slot; j--)
>  			domains[j] = domains[j - 1];
>  		domains[slot] = mem_info[i].domain;
> -		ndomain++;
> -		if (ndomain > MAXMEMDOM) {
> +		vm_ndomain++;
> +		if (vm_ndomain > MAXMEMDOM) {
> +			vm_ndomain = 1;
>  			printf("SRAT: Too many memory domains\n");
>  			return (EFBIG);
>  		}
>  	}
>  
>  	/* Renumber each domain to its index in the sorted 'domains' list. */
> -	for (i = 0; i < ndomain; i++) {
> +	for (i = 0; i < vm_ndomain; i++) {
>  		/*
>  		 * If the domain is already the right value, no need
>  		 * to renumber.
> 

Why not just set vm_ndomain = ndomain at the end?  The current code aims
to only set the global variables if it successfully parses the entire
table.  Setting vm_ndomain at the end would be consistent with this
model (and a much smaller diff).

-- 
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?51912863.6010601>