public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* 2.6.9-rc1: page_referenced_one() CPU consumption
@ 2004-09-10 10:51 Nikita Danilov
  2004-09-10 12:14 ` Hugh Dickins
  0 siblings, 1 reply; 6+ messages in thread
From: Nikita Danilov @ 2004-09-10 10:51 UTC (permalink / raw)
  To: Linux Kernel Mailing List; +Cc: Hugh Dickins

Hello,

in 2.6.9-rc1 page_referenced_one() is among top CPU consumers (which
wasn't a case for 2.6.8-rc2) in the host kernel when running heavily
loaded UML. readprofile -b shows that time is spent in
spin_lock(&mm->page_table_lock), so, I reckon, recent "rmaplock: kill
page_map_lock" changes are probably not completely unrelated.

Without any deep investigation, one possible scenario is that multiple
threads are doing (as part of direct reclaim),

   refill_inactive_zone()
       page_referenced()
           page_referenced_file() /* (1) mapping->i_mmap_lock doesn't
                                     serialize them */
               page_referenced_one()
                   spin_lock(&mm->page_table_lock) /* (2) everybody is
                                                     serialized here */

(1) and (2) will be true if we have one huge address space with a lot of
VMAs, which seems to be exactly what UML does:

$ wc /proc/<UML-host-pid>/maps
4134 28931 561916

This didn't happen before, because page_referenced_one() used to
try-lock.

Nikita.



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2004-09-13  4:54 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-09-10 10:51 2.6.9-rc1: page_referenced_one() CPU consumption Nikita Danilov
2004-09-10 12:14 ` Hugh Dickins
2004-09-10 12:21   ` Hugh Dickins
2004-09-11  1:01     ` Nick Piggin
2004-09-12 15:53       ` Nikita Danilov
2004-09-13  4:53         ` Nick Piggin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox