2004-04-15 12:28:29

by Nagendra Singh Tomar

[permalink] [raw]
Subject: why change_page_attr on x86 uses __flush_tlb_all

Hi,
I would expect __flush_tlb_one (for each page) as a better choice.
It'll be nice if someone can hoghlight on why __flush_tlb_all is used.
The kernel version I am referring from is 2.4.18-14

Thanx,
tomar


PS: Please CC to my email-id as I'm not able to access the list.



-- You have moved the mouse. Windows must be restarted for the
changes to take effect.


2004-04-15 13:51:14

by Andi Kleen

[permalink] [raw]
Subject: Re: why change_page_attr on x86 uses __flush_tlb_all

Nagendra Singh Tomar <[email protected]> writes:

> I would expect __flush_tlb_one (for each page) as a better choice.
> It'll be nice if someone can hoghlight on why __flush_tlb_all is used.
> The kernel version I am referring from is 2.4.18-14

This works around a bug in some early Athlons with flushing global
large pages. Also it makes the code slightly simpler and change_page_attr
is not really performance critical.

-Andi

2004-04-22 19:50:27

by Pavel Machek

[permalink] [raw]
Subject: Re: why change_page_attr on x86 uses __flush_tlb_all

Hi!

> > I would expect __flush_tlb_one (for each page) as a better choice.
> > It'll be nice if someone can hoghlight on why __flush_tlb_all is used.
> > The kernel version I am referring from is 2.4.18-14
>
> This works around a bug in some early Athlons with flushing global
> large pages. Also it makes the code slightly simpler and change_page_attr
> is not really performance critical.

Perhaps comment should be added? Otherwise someone is going
to "fix" it sooner or later.
--
64 bytes from 195.113.31.123: icmp_seq=28 ttl=51 time=448769.1 ms