Numaq in 2.4 and 2.6

From: Mika Penttilä
Date: Sat Dec 06 2003 - 04:42:20 EST


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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/