Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 Jul 2010 15:02:56 -0500 (CDT)
From:      Sergey Babkin <babkin@verizon.net>
To:        avg@icyb.net.ua
Cc:        freebsd-hackers@freebsd.org, pebu3op@googlemail.com
Subject:   Re: Re: coherence-problem on the mapped memory buffer
Message-ID:  <382607918.1356296.1280433776963.JavaMail.root@vms170009.mailsrvcs.net>

next in thread | raw e-mail | index | archive | help
Jul 29, 2010 12:58:07 PM, avg@icyb.net.ua wrote:

>on 29/07/2010 19:13 Andriy Gapon said the following:
>> on 29/07/2010 17:13 Alexander Fiveg said the following:
>In fact I have a suspicion that the problem might have to do with multiple
>mappings of the shared pages, but far from sure...
>Take a look at Intel=C2=AE 64 and IA-32 Architectures Software Developer=
=E2=80=99s Manual
>Volume 3A - System Programming Guide, Part 1; Chapter 11.12.4 Programming =
the PAT;
>starting at the following words:
>=C2=ABThe PAT allows any memory type to be specified in the page tables, a=
nd therefore
>it is possible to have a single physical page mapped to two or more differ=
ent
>linear addresses, each with different memory types. Intel does not support=
 this
>practice...=C2=BB

My guess would be that the memory type is not marked as DMA-capable. AFAIK =
the Intel CPUs
do the hardware snooping on the physical addresses, so they have no coheren=
cy issues benween=20
themselves. However if a DMA writer changes the memory, this I think does n=
ot get normally=20
propagated to the front-side bus, and the CPUs would not see it. You may ne=
ed to either
explicitly flush the CPU cache before accessing these pages or mark them as=
 non-cacheable.

-SB



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?382607918.1356296.1280433776963.JavaMail.root>