[PATCH 14/16] powerpc/mm: Runtime allocation of mmu context maps for nohash CPUs v2
Kumar Gala
kumar.gala at freescale.com
Thu Dec 18 08:21:39 EST 2008
> /*
> * Initialize the context management stuff.
> @@ -326,13 +344,56 @@ void __init mmu_context_init(void)
> init_mm.context.active = NR_CPUS;
>
> /*
> + * The MPC8xx has only 16 contexts. We rotate through them on
> each
> + * task switch. A better way would be to keep track of tasks that
> + * own contexts, and implement an LRU usage. That way very active
> + * tasks don't always have to pay the TLB reload overhead. The
> + * kernel pages are mapped shared, so the kernel can run on behalf
> + * of any task that makes a kernel entry. Shared does not mean they
> + * are not protected, just that the ASID comparison is not
> performed.
> + * -- Dan
> + *
> + * The IBM4xx has 256 contexts, so we can just rotate through these
> + * as a way of "switching" contexts. If the TID of the TLB is zero,
> + * the PID/TID comparison is disabled, so we can use a TID of zero
> + * to represent all kernel pages as shared among all contexts.
can expand the comment of change it to say all other nonhash parts
40x, 4xx, fsl-booke right now have 256 contexts.
>
> + * -- Dan
> + */
> + if (mmu_has_feature(MMU_FTR_TYPE_8xx)) {
> + first_context = 0;
> + last_context = 15;
> + } else {
> + first_context = 1;
> + last_context = 255;
> + }
More information about the Linuxppc-dev
mailing list