[2/3] ntdll: Implement NtQuerySystemInformation/SystemLogicalProcessorInformation (try 6)

Rudolf Mayerhofer rm at eightyfive.net
Sat Oct 9 13:37:02 CDT 2010


>> +static SYSTEM_LOGICAL_PROCESSOR_INFORMATION cached_lpi[1024];
>You think there are systems with that many CPUs running Wine?
I honestly don't know the array is currently large enough to support
146 CPU's with 4 unique Caches (L1i,L1d,L2,L3), each in it's own 
processorpackage and numa node. This might be a bit of an overkill,
any suggestions how many cpu's are used with wine in the worst case?
 
> > +            if ((processormask = sysfs_numanode_cpumap(nodecount)) > 0)
> > +            {
> > +                /* Numa Nodes are already unique. just add them */
> > +                do
> > +                {
> > +                }
> > +                while ((processormask =
> > sysfs_numanode_cpumap(nodecount)) > 0); +            }
> > +            else
> > +            {
> > +            }
> 
> People already asked you not to do this. From looking at the code it
> appears that there is always one node. So get rid of everything except
> do{} while() block. It will do exactly what you want with extra if()s.

This assumption is definitely wrong, on non-numa systems there is no node 
definition in SysFS. Windows on the same system shows one node and MSDN also 
hints that there should be a dummy node with number 0 and a processormask 
containing all known processors on the system in that case.

I'll see that i can fix the rest of the things you mentioned and update the 
patch as soon as i can. Thanks for the quick review and sorry for the trouble. 



More information about the wine-devel mailing list