Re: [PATCH] eliminate nswap and cnswap

From: Albert Cahalan
Date: Mon Apr 12 2004 - 23:51:12 EST


On Tue, 2004-04-13 at 00:27, Matt Mackall wrote:
> On Mon, Apr 12, 2004 at 08:42:23PM -0700, Andrew Morton wrote:
> > Albert Cahalan <albert@xxxxxxxxxxxxxxxxxxxxx> wrote:
> > >
> > > > The nswap and cnswap variables counters have never
> > > > been incremented as Linux doesn't do task swapping.
> > >
> > > I'm pretty sure they were used for paging activity.
> > > We don't eliminate support for "swap space", do we?
> > >
> > > Somebody must have broken nswap and cnswap while
> > > hacking on some vm code. I hate to see the variables
> > > get completely ripped out of the kernel instead of
> > > getting fixed.
> >
> > There's nothing in 2.4 which increments these, nor was there in 2.6. Which
> > tends to imply that they weren't very important.
> >
> > We could sort-of do this - move them into mm_struct (doing it in
> > task_struct was always wrong) and increment them in the VM. But we'd need
> > some reason why these statistics are interesting, and we'd need an
> > explanation of what nswap and cnswap are actually supposed to represent.
>
> It's used in 2.0 and 2.2 to satisfy the getrusage(2) syscall. The
> getrusage page only documents it as 'swaps', but says:
>
> The above struct was taken from BSD 4.3 Reno. Not all fields
> are meaningful under Linux. Right now (Linux 2.4) only the
> fields ru_utime, ru_stime, ru_minflt, ru_majflt, and ru_nswap
> are maintained.
>
> the BSD manpage says:
>
> ru_nswap
> the number of times a process was swapped out of main memory.
>
> Which means it's a count of full process swaps like ancestral UNIX,
> which Linux has never had.

Well, that's the BSD man page.

I've always considered "swapped" to mean "paged"
when dealing with Linux. We still have our swap
partitions and swapon command, not paging partitions
and pageon command.

I suppose "paged out the area with the stack pointer"
would be a good approximation to the BSD behavior.

> So the 2.0/2.2 attempt to increment said variables was actually bogus.

If the variables counted paging, I consider them
correct for Linux.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/