RE: ip_contrack module refuses to load...

Luck, Tony
2005-08-30T19:22:46Z

>> so all the
>> space allocation, mapping, and relocation code should be the same
>> for UP and SMP ... shouldn't they?
>
>No, in the UP case, we can simply map the per-CPU section in the
>kernel image whereas in the SMP case, each CPU needs its own copy of
>the per-CPU section. To see this, look for per_cpu_init(): in the SMP
>case, it copies the section, in the UP-case, it simply returns
>__phys_per_cpu_start (a pointer into the per-CPU section).

You are (as usual) correct.

But this shouldn't make any difference for the module loading
case ... whether the memory backing the per-cpu area is physically
within a special section in the kernel data, or allocated from
__alloc_bootmem() in a big array for all cpus (mm/contig.c case),
or done in scattered allocations across nodes (mm/discontig.c case).
So, if the module loader has special UP code, then it shouldn't.

-Tony