|
View:
New views
3 Messages
—
Rating Filter:
Alert me
|
|
|
>32 core supportFor anyone interested in working on >32 core support here is a interesting
link. It suggests that `bochs' can be patched to emulate a 48 core system. http://forum.osdev.org/viewtopic.php?f=1&t=19192 x86 currently supports 32 cores/threads out of the box, but it may not be enough for commodity servers within a couple of years. The low-level issues I am aware of are: - There are static arrays that will not scale (MAXCPUS). Some of these could be folded into cpu_data, leaving us with a single array to worry about sizing dynamically. - There are 32-bit masks, the majority of which are in platform-specific code. The kcpuset code needs work to do stuff that the kernel uses, like atomic operations, scans and so on. A few masks are in MI code and some will #error if MAXCPUS > 32. - 32-bit systems don't have enough kernel address space to support large numbers of cores effectively, although i386 could be interesting as a bring-up target with an emulator like bochs. - The x86 apic code currently supports 255 cores max (assuming 255 cores plus 1 IOAPIC). x2apic support may be required in the future. As far as I understand it, future systems may have cores that can only be addressed with the x2apic's 32-bit IDs. - The mutex/rwlock code will not scale to large numbers of cores because it does a linear scan of the CPU list. There are memory order and data structure visibility issues to be overcome. - There are areas where the scheduler could use incremental improvement: it does not know about NUMA, does periodic scans of the CPU list, etc. Clearly this does not cover stuff like scalability of device drivers, networking, vm system and whatnot, does not discuss virtualization / partitioning, it's just the low-level issues that I am aware of given the current set of stuff that we have in the kernel. |
|
|
Re: >32 core supportOn Mon, Mar 23, 2009 at 10:46:00PM +0000, Andrew Doran wrote:
> For anyone interested in working on >32 core support here is a interesting > link. It suggests that `bochs' can be patched to emulate a 48 core system. > > http://forum.osdev.org/viewtopic.php?f=1&t=19192 QEMU (or, at least, 'Q' on OS X, which uses QEMU as its guts) supports up to 128 CPUs, in 32 or 64 bit x86 emulation. We have some trouble with its ACPI implementation, or did last I checked (a long time ago) which made it difficult but not impossible to get a 32 CPU system going, which was the most I tried. Thor |
|
|
Re: >32 core supportOn Mon, 23 Mar 2009, Thor Lancelot Simon wrote:
> QEMU (or, at least, 'Q' on OS X, which uses QEMU as its guts) supports > up to 128 CPUs, in 32 or 64 bit x86 emulation. I've played with that some time ago, see http://kerneltrap.org/index.php?q=mailarchive/netbsd-tech-kern/2005/12/22/292131 - Hubert |
| Free embeddable forum powered by Nabble | Forum Help |