Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: maximum number of CPUs



On 25 February 2012 15:22, Christoph Egger <Christoph_Egger%gmx.de@localhost> 
wrote:
> On 25.02.12 10:29, Sad Clouds wrote:
>> On Thu, 23 Feb 2012 20:58:45 +0000
>> Mindaugas Rasiukevicius <rmind%netbsd.org@localhost> wrote:
>>
>>> Brook Milligan <brook%nmsu.edu@localhost> wrote:
>>>> I understand that at least on the i386/amd64 ports CPUs are tracked
>>>> with a 32-bit mask and thus at most 32 CPUs may be active.  How
>>>> complex is the task of removing this limitation so that a larger
>>>> number of CPUs may be used?
>>>
>>> I have a preliminary patch to support up to 255 CPUs on amd64 (not
>>> worth on i386), however there is still some bug in the early
>>> initialisation code, when TLBs are not being flushed.  I have not had
>>> time yet to debug it out.
>>>
>>> http://www.netbsd.org/~rmind/x86_256_cpus_v4.diff
>>>
>>> Apart from that bug, it should be mostly complete.
>>>
>>> --
>>> Mindaugas
>>
>> Why limit this to 255?
>
> This is the limit on x86. The LAPIC field is just 8bit wide.
> On other platforms this patch can add support for a lot more cpus.
>
> Christoph
>
>> There are systems out there that surpass this
>> number. I developed some code that uses a 64 element array of 64-bit
>> integers to give 64 * 64 = 4096 bits, which can be used to tracking
>> boolean on/off states.
>>
>> If people are interested in using this for tracking CPU states, I can
>> provide the source code under BSD license.
>

mrg@ pointed out offline that the x2apic has a 32bit xapic id field...

-- 
~Cherry


Home | Main Index | Thread Index | Old Index