double kernel page table entry for the same physical page?!
ming lei
mlei30 at yahoo.com
Thu Jul 14 07:48:02 EST 2005
I am worried about memory corruption if there are two
PTE entries point to the same physical page.
Considering this case: vmalloc a page to a virt
address V1 and somehow other code uses V0(which is in
identy mapping) to modify the same physical page.
I checked i386 and looks like they have the same
problem.
Why linux kernel does such thing and no one consider
it's a problem?
Thanks
Ming
--- Dan Malek <dan at embeddededge.com> wrote:
>
> On Jul 13, 2005, at 1:10 PM, ming lei wrote:
>
> > Question: does the linux ever touch this section
> of
> > page table(virt address from PAGE_OFFSET to
> > PAGE_OFFSET+A) again? like remove or modify one of
> the
> > entry?
>
> Not usually. We used to do it on 8xx for mapping
> uncached pages for coherent DMA.
>
> > Question: For every physical page, it should
> already
> > be mapped in #1, but vmalloc maps it again to a
> virt
> > address higher. Does it mean in kernel page table,
> we
> > may have two PTE entries pointing to the same
> physical
> > page, even their virt addresses are different?
>
> Yep.
>
> > Last question:
> > If this is true, is this platform implemention
> > specific? Does i386 implemention have same
> situation?
>
> Other architectures will do the same, yes. The
> level to which they do this will vary depending upon
> architectural features we have to hide/expose to
> other functions.
>
> One potential problem that arises is you have to be
> careful about the virtual address access path to
> these
> pages. All processors will behave errantly if you
> access the same physical page, but with different
> attributes, through the different VAs. How they
> behave
> will depend upon the attributes. If the PTEs have
> different cache modes or page sizes, it's usually
> a big problem. If they just share different write
> permissions, it's usually OK. These problems
> usually
> arise when device driver writers either don't
> understand
> the mapping issues or try something that may work
> on one architecture but not on another.
>
>
> -- Dan
>
>
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
More information about the Linuxppc-embedded
mailing list