2001-02-28 23:08:36

by Neelam Saboo

[permalink] [raw]
Subject: Re: [Re: paging behavior in Linux]

Another observation. I have two independent programs. One program incurring
page faults and another program just doing some work.
When work program run undependently it takes ~19 seconds of CPU time, but when
it is run along with page faulting program on the same machine, it takes ~32
seconds of CPU time. Doesnt this indicate that page faults in a program slows
down all the program on the machine and not only threads in the same process
?

neelam


David Mansfield <[email protected]> wrote:
> Manfred Spraul wrote:
> >
> > The paging io for a process is controlled with a per-process semaphore.
> > The semaphore is held while waiting for the actual io. Thus the paging
> > in multi threaded applications is single threaded.
> > Probably your prefetch thread is waiting for disk io, and the worker
> > thread causes a minor pagefault --> worker thread sleeps until the disk
> > io is completed.
>
> This behavior is actually pretty annoying. There can be cases where a
> process wakes up from a page fault, does some work, goes back to sleep
> on a page fault, thereby keeping it's mmap_sem locked at all times (i.e.
> vmstat, top, ps unusable) on a UP system. I posted this complaint a
> while ago, it was discussed by Linus and Andrew Morton about how it also
> boiled down to semaphore wakeup unfairness (and bugs?). The current
> semaphore was determined to be too ugly to even look at. So it was
> dropped.
>
> Is there any way that the mmap_sem could be dropped during the blocking
> on I/O, and reclaimed after the handle_mm_fault? Probably not, or it'd
> be done.
>
> It can be a real DOS though, a 'well-written' clobbering program can
> make ps/vmstat useless. (it's actually /proc/pid/stat that's the
> killer, IIRC).
>
> David
>
> --
> David Mansfield (718) 963-2020
> [email protected]
> Ultramaster Group, LLC http://www.ultramaster.com


____________________________________________________________________
Get free email and a permanent address at http://www.netaddress.com/?N=1


2001-03-01 09:39:51

by Helge Hafting

[permalink] [raw]
Subject: Re: [Re: paging behavior in Linux]

Neelam Saboo wrote:
>
> Another observation. I have two independent programs. One program incurring
> page faults and another program just doing some work.
> When work program run undependently it takes ~19 seconds of CPU time, but when
> it is run along with page faulting program on the same machine, it takes ~32
> seconds of CPU time. Doesnt this indicate that page faults in a program slows
> down all the program on the machine and not only threads in the same process
> ?
Is this really CPU time or merely wall clock time? The latter will
obviously increase as running two programs takes more time than running
one.

Helge Hafting