On Thu, Mar 20, 2003 at 07:08:17PM +0800, Fuxin Zhang wrote:
> I am very glad to see this happens:)
> Currently linux/mips is really far from efficient,I've some data for
> this declaration:
> For most SPEC CPU 2000 programs we run on a 4-way superscalar CPU
> simulator
> ,we get <0.20 IPC in kernel mode,while the IPCs for the whole execution
> are often much
> higher(0.5-1.5). We believe this has something to do with the overly
> used cache flushes.
What type of cache are you using in this simulation? Virtual/physical
indexing/tagging, what associativity?
Linux/MIPS's handling of virtually indexed data caches isn't as good as
it should be but that's what I'm working on.
> BTW, for 2.4.17,it seems this path is still not safe for cache aliases:
> copy_cow_page for newly forked process, we use kernel virtual address
> to do the copy,but without flush first.
> add a flush_page_to_ram before the copy fix the errors.
>
> but i am not sure whether i am missing something
The functions clear_user_page and copy_user_page are supposed to take care
of aliases in this case. That's what the little patch did in my previous
mail did, just in a rather inefficient way.
Ralf
|