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/