Jul 29, 2010 12:58:07 PM, a...@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® 64 and IA-32 Architectures Software Developer’s Manual
>Volume 3A - System Programming Guide, Part 1; Chapter 11.12.4 Programming the 
>PAT;
>starting at the following words:
>«The PAT allows any memory type to be specified in the page tables, and 
>therefore
>it is possible to have a single physical page mapped to two or more different
>linear addresses, each with different memory types. Intel does not support this
>practice...»

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 coherency 
issues benween 
themselves. However if a DMA writer changes the memory, this I think does not 
get normally 
propagated to the front-side bus, and the CPUs would not see it. You may need 
to either
explicitly flush the CPU cache before accessing these pages or mark them as 
non-cacheable.

-SB
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"

Reply via email to