Date: Mon, 13 May 2013 20:21:38 +0200 From: Attilio Rao <attilio@freebsd.org> To: John Baldwin <jhb@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: <CAJ-FndBJcLtgHkxBWXDViQNhsb_rM3piAPxyPmoME2o8GXN7-w@mail.gmail.com> In-Reply-To: <51912863.6010601@FreeBSD.org> References: <201305120210.r4C2AFpt076600@svn.freebsd.org> <51912863.6010601@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, May 13, 2013 at 7:52 PM, John Baldwin <jhb@freebsd.org> wrote: > 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). The provided diff is consistent. It does reset to 1 (initial value) in case of error, otherwise it is just the correct value (see the KASSERT in the end). Attilio -- Peace can only be achieved by understanding - A. Einstein
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-FndBJcLtgHkxBWXDViQNhsb_rM3piAPxyPmoME2o8GXN7-w>