Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Nov 2000 17:59:41 -0500
From:      flaw <flaw@vt.edu>
To:        John Baldwin <jhb@FreeBSD.org>
Cc:        freebsd-questions <freebsd-questions@FreeBSD.org>, freebsd-questions <freebsd-questions@FreeBSD.org>, George Reid <greid@dogma.freebsd-uk.eu.org>
Subject:   RE: FreeBSD VM
Message-ID:  <3A1C57B4@zathras.cc.vt.edu>

next in thread | raw e-mail | index | archive | help
Maybe due to the amount of memory, the program is still in memory so no page 
faults are induced.  But why cnt.v_vm_faults (cnt is the vmmeter) are 
incremented much more frequently than p->p_stats->p_ru.ru_majflt?  Also, the 
swapper process with pid 0 (why pid 0?) has ru_majflt the same as 
cnt.v_vm_faults.

Any help and explanation is appreciated.

Thanks.
Ray,

>===== Original Message From John Baldwin <jhb@FreeBSD.org> =====
>On 16-Nov-00 flaw wrote:
>> Thanks for the reply.  When exactly is majflt incremented?
>>
>> I ran ps -o majflt -p <pid> on the Netscape process and it gave me a count 
of
>> 291 the first time I ran Netscape after reboot.  I killed the process and 
ran
>> Netscape again.  This time it gave me a count of 0.
>
>This is because the pages that Netscape faults in from disk (the text pages)
>were still in memory.  When a process exits, its pages don't get dumped from
>memory right away.  Instead, after the pages have sat for a while without 
being
>used they are marked as inactive.  When new pages are needed, pages are 
grabbed
>from the inactive pool.  If you are really interested in this stuff, I highly
>recommend that you get 'The Design and Implementation of 4.4 BSD' (a book).
>
>> Thanks.
>> Ray,
>>
>>>===== Original Message From George Reid <greid@ukug.uk.freebsd.org> =====
>>>On Thu, 16 Nov 2000, Raymond Law wrote:
>>>
>>> majflt doesn't increase when a process is generating page faults.  
Instead,
>>> the swapper process (pid 0) gets all the page faults and it is the same as
>>> the page faults given by cnt in vmmeter.c.  Why is this happening?  Is
>>> there a way to get the number of page faults generated by a SINGLE 
process?
>>>
>>>Yes.
>>>ps -o majflt -p <pid>
>>>
>>>The code which increments the number of page faults for a given process is
>>>found in /sys/vm/vm_fault.c (circa line
>>>856): curproc->p_stats->p_ru.ru_majflt++;
>>>
>>> The above doesn't get increased.
>>>
>>>Yes, it does - certainly in 5.0-CURRENT and a quick look at the CVS
>>>repository reveals this code has been present for over 6 years.
>>>
>>>"And then it comes to be that the soothing light
>>>   at the end of your tunnel was just a freight
>>>            train, comin' your way."
>>>
>>>      George Reid * greid@ukug.uk.freebsd.org
>>>
>>>
>>>
>>>To Unsubscribe: send mail to majordomo@FreeBSD.org
>>>with "unsubscribe freebsd-questions" in the body of the message
>>
>>
>>
>> To Unsubscribe: send mail to majordomo@FreeBSD.org
>> with "unsubscribe freebsd-questions" in the body of the message
>
>--
>
>John Baldwin <jhb@FreeBSD.org> -- http://www.FreeBSD.org/~jhb/
>PGP Key: http://www.baldwin.cx/~john/pgpkey.asc
>"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/
>
>
>To Unsubscribe: send mail to majordomo@FreeBSD.org
>with "unsubscribe freebsd-questions" in the body of the message



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3A1C57B4>