[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-arm-kernel
Subject:    Re: On TLB flushing
From:       Russell King - ARM Linux <linux () arm ! linux ! org ! uk>
Date:       2004-04-20 16:01:43
Message-ID: 20040420170142.E16499 () flint ! arm ! linux ! org ! uk
[Download RAW message or body]

On Fri, Apr 16, 2004 at 09:18:45PM +0200, Matthias Welwarsky wrote:
> Yes, but if the young bit is not refreshed, mapped pages that are not involved 
> in file IO are inevitably discarded. If they're read-only, they will never 
> again become "young" unless they're paged back in from disk.

Ok.  2.6 is more agressive than 2.4 with respect to the page age
state, which means we should flush the TLB when we clear the young
bit.

However, because it has taken this long to find this out, it's nearly
damned impossible to sort this cleanly in a stable kernel series.

Essentially, the first step to fixing this is to sort out the kernel
include files so we can get at the information we need to in
asm/pgtable.h.  This means various structures and inline functions
declared in linux/mm.h and other header files, need to be declared
prior to asm/pgtable.h being included.  However, some of these other
files include linux/mm.h and linux/mm.h includes asm/pgtable.h,
which means including them in asm/pgtable.h isn't going to work.

Removing asm/pgtable.h from linux/mm.h is going to cause lots of
breakage throughout the kernel source, for virtually all architectures
Linux supports, in architecture specific ways.  I've so far spent
three solid days trying to solve this problem in a way which would
be suitable for upstream, and now I've run out of steam.  IOW,
removing asm/pgtable.h from linux/mm.h is not going to happen,
which in turn means I won't fix the bug.

I'm going to make the unpopular decision and say that since the bad
behaviour does not affect me, it isn't my problem, and therefore I'm
not going to solve it - which nicely fits in with the story people
keep telling me of "hey we're all commercial here, we don't have
time to test development kernels."

By the way, anyone using any 2.5 or 2.6 kernel before 2.6.5 +
asm-generic/pgtable.h patch has a buggy kernel where userspace
could crash at any time in addition to this performance problem.

Thanks.

-------------------------------------------------------------------
Subscription options: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-kernel
FAQ:       http://www.arm.linux.org.uk/armlinux/mlfaq.php
Etiquette: http://www.arm.linux.org.uk/armlinux/mletiquette.php
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic