Messages in this thread | | | Date | Sat, 06 Dec 2003 11:45:51 +0200 | From | Mika Penttilä <> | Subject | Numaq in 2.4 and 2.6 |
| |
While comparing numaq support in 2.4.23 and 2.6.0-test11 came accross following...
In 2.4.23 mpparse.c we do : phys_cpu_present_map |= apicid_to_phys_cpu_present(m->mpc_apicid);
and then launch the cpus using NMI and logical addressing in the order phys_cpu_present_map indicates.
In 2.6.0-test11mpparse.c we do : tmp = apicid_to_cpu_present(apicid); physids_or(phys_cpu_present_map, phys_cpu_present_map, tmp);
where apicid is the result of : static inline int generate_logical_apicid(int quad, int phys_apicid) { return (quad << 4) + (phys_apicid ? phys_apicid << 1 : 1); }
and phys_apicid == m->mpc_apicid
Again we lauch the cpus using NMI and logical addressing.
So the the set of apicids fed to do_boot_cpu() in 2.4 and 2.6 must be different using the same mp table. And both use logical addressing. Seems that 2.4 expects mpc_apicid to be something like (quad | cpu) and 2.6 only cpu, the quad comes from the translation table.
The conclusion is that the same mp table can't work in 2.4 and 2.6? No?
--Mika
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |