[lkml]   [2004]   [Apr]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH] eliminate nswap and cnswap
On Mon, Apr 12, 2004 at 08:42:23PM -0700, Andrew Morton wrote:
> Albert Cahalan <> 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:

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.

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

Matt Mackall : : Linux development and consulting
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 14:02    [from the cache]
©2003-2014 Jasper Spaans. hosted at Digital Ocean