Hello,
currently I am writing a patch to be able to make TLBs on any IO-devices
coherent to the CPUs TLBs. So I was looking in the kernel-sources for places
where not only the local but all TLBs are flushed. So I came up with
flush_map() in the arch/i386/mm/ and the arch/x86_64/mm/ directories.
Now my questions:
1. In the x86_64 part of code the flush_kernel_map() does a
local_flush_tlb_one() but in the i386 parts a local_flush_tlb_all(). Is the
mentioned athlon bug the cause or can it be changed to work as in the x86_64
code?
2. Can the flush_map() function be replaced by a flush_tlb_all() respective
flush_tlb_page(). If I can do so, what would be the correct value for the
first argument 'vma'?
If it is not posible could you please tell me why not...?
Thank you very much!
Thomas Schlichter