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>