Hi All,
I'm currently starting with a 64-bit(x86-64) only OS. Priority lies on getting multiple dual core processors running. Sadly i don't have the hardwrae yet but running it on bochs and qemu allows me to continue anyway.
Anyone has a dual proc/dual core athlon system? I'd like to know what the configuration is and if your willing to test my progress once in a while.
Greets,
RetainSoft.
64-bit OS
- Pype.Clicker
- Member
- Posts: 5964
- Joined: Wed Oct 18, 2006 2:31 am
- Location: In a galaxy, far, far away
- Contact:
Re:64-bit OS
yes, some of us have. I suggest you get a look at our "OS testing" board to know who has what ...
Re:64-bit OS
Hi,
Despite this I have done (and/or am still doing) a 32 bit OS that supports any combination of multi-chip, multi-core, hyper-threading and NUMA, and could possibly offer some pointers...
QEMU will be almost useless for multi-CPU testing, as it's currently single-CPU only. Bochs doesn't accurately emulate the APICs and existing OSs (WInNT, Linux) won't boot successfully with plain 32 bit SMP (32 bit emulation has been tested much more than the new 64 bit emulation, so your chances would probably be worse). Bochs should be adequate for initializing/starting the CPUs, getting them into long mode and IPIs but IRQ handling using the IO APIC (specifically "send to lowest priority", but possibly more) won't work properly with the current version of Bochs (see the Bochs project bug tracker - http://sourceforge.net/tracker/index.ph ... tid=112580)..
For AMD each "CPU socket" (or physical CPU) has it's own memory bank (or it's own NUMA memory domain), so in order to support multiple dual core AMD chips well you'd also need to support NUMA. To support NUMA you need to at least parse through ACPI tables to find the "SRAT" table that describes the NUMA memory ranges.
Aside from this, starting the CPUs during boot is relatively easy, local APICs and IO APICs take a little research and testing, and keeping track of proper re-entrancy lock usage is the hard part.
Cheers,
Brendan
I currently don't have access to dual core (or dual chip) 64 bit computers, and I'd be surprised if many people here do (especially dual core 64 bit CPUs, which are so recent that it's still hard to find suppliers).retainsoft wrote:I'm currently starting with a 64-bit(x86-64) only OS. Priority lies on getting multiple dual core processors running. Sadly i don't have the hardwrae yet but running it on bochs and qemu allows me to continue anyway.
Anyone has a dual proc/dual core athlon system? I'd like to know what the configuration is and if your willing to test my progress once in a while.
Despite this I have done (and/or am still doing) a 32 bit OS that supports any combination of multi-chip, multi-core, hyper-threading and NUMA, and could possibly offer some pointers...
QEMU will be almost useless for multi-CPU testing, as it's currently single-CPU only. Bochs doesn't accurately emulate the APICs and existing OSs (WInNT, Linux) won't boot successfully with plain 32 bit SMP (32 bit emulation has been tested much more than the new 64 bit emulation, so your chances would probably be worse). Bochs should be adequate for initializing/starting the CPUs, getting them into long mode and IPIs but IRQ handling using the IO APIC (specifically "send to lowest priority", but possibly more) won't work properly with the current version of Bochs (see the Bochs project bug tracker - http://sourceforge.net/tracker/index.ph ... tid=112580)..
For AMD each "CPU socket" (or physical CPU) has it's own memory bank (or it's own NUMA memory domain), so in order to support multiple dual core AMD chips well you'd also need to support NUMA. To support NUMA you need to at least parse through ACPI tables to find the "SRAT" table that describes the NUMA memory ranges.
Aside from this, starting the CPUs during boot is relatively easy, local APICs and IO APICs take a little research and testing, and keeping track of proper re-entrancy lock usage is the hard part.
Cheers,
Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
Re:64-bit OS
I've coded a small 32-bit OS to learn about the ia-32 architecture and now i'm doing the same with a 64-bit OS. NUMA was in my case a nice to have but now it shifted on the priority list. Hyperthreading is an intel thingy as far is i know and i'm not going to own a 64-bit intel based system.
As for the dual-chip dual-core system that's something i'm hoping to buy in the coming 6 months.
I'm currently using bochs for the reasons you described and for loggin functionality via null-modem cable(lame but works). The time i have a stable bootable system i'll problably own the dual-chip dual-core system. So than i can start dotting the i's.
I'm currently in the starting phase. i've just finished my boot-sector which switches to 64-bit long mode and loads stage 2 all within 300 bytes of code.
Nevertheless thanx for the input and puting my nose in the right direction.
cu,
Rene
As for the dual-chip dual-core system that's something i'm hoping to buy in the coming 6 months.
I'm currently using bochs for the reasons you described and for loggin functionality via null-modem cable(lame but works). The time i have a stable bootable system i'll problably own the dual-chip dual-core system. So than i can start dotting the i's.
I'm currently in the starting phase. i've just finished my boot-sector which switches to 64-bit long mode and loads stage 2 all within 300 bytes of code.
Nevertheless thanx for the input and puting my nose in the right direction.
cu,
Rene