[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug 8834] New: major fault accounting is wrong.



http://bugzilla.conectiva.com.br/show_bug.cgi?id=8834

           Summary: major fault accounting is wrong.
           Product: Linux kernel MM
           Version: 2.5 (beta)
          Platform: All
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: linux mm
        AssignedTo: linux-mm-bugs@nl.linux.org
        ReportedBy: peterc@gelato.unsw.edu.au


The field maj_flt in struct task_struct is meant to count page faults that incur
I/O.  It currently counts some minro faults as well.

To demonstrate this:

Set up two windows and run 
  vmstat 5
in one of them.

In the other, type
  sync
a few times, until the machine is idle.

Run 
  /usr/bin/time -v sleep 1
when both bi and bo columns have been zero for a number of iterations of vmstat.


I see this:
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa
0  0      0  85864  27768 231344    0    0     0    17 1003   647  1  1 98  0

(note no read traffic from disc --- bi and si are both zero)

But:
time -v says:
        Major (requiring I/O) page faults: 126
        Minor (reclaiming a frame) page faults: 12


I've reproduced this on 2.5.74-BK as of 2003.07.07 on I386 and IA64.
Of the two, vmstat appears to be correct (using my microstate accounting patch
 http://www.ussg.iu.edu/hypermail/linux/kernel/0306.3/0636.html shows no time
spent sleeping during a page fault)



------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
--
Linux-mm-bugs:  bugzilla list for the Linux-MM subsystem
Archive:        http://mail.nl.linux.org/linux-mm-bugs/
Web site:       http://linux-mm.org/
Development:    linux-mm@kvack.org