Re: Cache incoherencies (WAS: New resources - pls, explain :-( )

Philip Blundell (Philip.Blundell@pobox.com)
Wed, 25 Aug 1999 20:14:07 +0100


>I'm not terribly familiar with Linux VM, and so I'm not completely sure
>how to implement vmalloc_uncached on ARM. I'm wondering if I need to
>re-implement all of vmalloc sub-routines (alloc_area_pmd_uncached,
>alloc_area_pte_uncached) changing the set_pte call to have the
>appropriate attributes ? (BTW. what's the meaning of L_PTE_BUFFERABLE ?).

What I'd do is extend alloc_area_pmd, alloc_area_pte and so on to take an
extra argument to be the page protection value. The normal vmalloc can pass
this in as just PAGE_KERNEL, and your new vmalloc_uncached can use some
appropriate variant.

>or can I just alloc the area and then make pages non-cachable using
>pte_modify afterwards ? In this case I'm not sure how to walk the PTEs...

You *could* do it this way, but I don't think it's such a good idea.

>Also alloc_are_pte makes several calls to __get_free_page, so I beleive
>there's no way to make sure they are physically contiguous, is there ?

No. This is always the case with vmalloc.

p.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/