Processes are incorrectly marked as swapped out
Dmitry Sivachenko
trtrmitya at gmail.com
Fri Feb 21 13:02:24 UTC 2014
On 28 янв. 2014 г., at 20:42, John Baldwin <jhb at freebsd.org> wrote:
> On Thursday, January 23, 2014 8:02:29 am Ronald Klop wrote:
>> On Thu, 23 Jan 2014 13:19:36 +0100, Dmitry Sivachenko
>> <trtrmitya at gmail.com> wrote:
>>
>>> Hello!
>>>
>>> After upgrade from stable/9 to stable/10 I see the following regression.
>>> Some processes are marked as swapped out in top(1) output:
>>>
>>> 1436 root 1 43 0 16524K 0K nanslp 14 1:14 0.00%
>>> <cron>
>>> 1381 smmsp 1 20 0 23988K 0K pause 18 0:04 0.00%
>>> <sendma
>>> 99348 mitya 1 21 0 23492K 0K pause 16 0:00 0.00%
>>> <csh>
>>>
>>> ps(1) also shows them as swapped out (W as second character in state
>>> field):
>>> 1381 - IWs 0:00.00 sendmail: Queue runner at 00:30:00 for
>>> /var/spool/clie
>>> 1436 - IWs 0:00.00 /usr/sbin/cron -s
>>> 80231 - IWs 0:00.00 /usr/local/sbin/collectdmon -c
>>> /usr/local/sbin/coll
>>> 99348 1 IWs 0:00.00 -csh (csh)
>>>
>>> Though swapinfo reports that zero swap is used and even if I turn swap
>>> completely off (swapoff -a)
>>> the output of both top(1) and ps(1) does not change: these processes are
>>> still marked as swapped out.
>>
>> The code of an application can get removed from memory, because there
>> still is an image of it in the executable on disk. It can be 'swapped' in
>> by reading the executable again. The program is memory mapped (mmap).
>> See VN PAGER vs SWAP PAGER in 'systat -vm'.
>
> However, a swapped out process always uses swap (for kernel stacks), so this
> seems like a real bug.
>
Okay, I found a buggy commit:
Author: jeff
Date: Tue Aug 13 21:56:16 2013
New Revision: 254304
URL: http://svnweb.freebsd.org/changeset/base/254304
Log:
Improve pageout flow control to wakeup more frequently and do less work while
maintaining better LRU of active pages.
<...>
Reviewed by: alc (slight variant of this)
Discussed with: alc, kib, jhb
How do I reproduce the problem: I have a desktop with 2GB of RAM and 4GB of swap space configured.
After "make -j 4 buildworld" I see some processes are swapped out (sometimes swapinfo reports swap is not used, sometimes it is used but after swapoff -a those processes are still in swapped out state).
I hope this will help to narrow down the problem.
Thanks.
More information about the freebsd-stable
mailing list