mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Anton Altaparmakov <aia21@cam.ac.uk>
To: Andrew Morton <akpm@osdl.org>
Cc: axboe@suse.de, AChittenden@bluearc.com, davej@redhat.com,
	linux-kernel@vger.kernel.org, lwoodman@redhat.com
Subject: Re: adding swap workarounds oom - was: Re: Out of Memory: Killed process 16498 (java).
Date: Fri, 03 Feb 2006 11:01:44 +0000	[thread overview]
Message-ID: <1138964504.3828.18.camel@imp.csi.cam.ac.uk> (raw)
In-Reply-To: <20060203012607.0a9d6730.akpm@osdl.org>

On Fri, 2006-02-03 at 01:26 -0800, Andrew Morton wrote:
> Anton Altaparmakov <aia21@cam.ac.uk> wrote:
> > On Fri, 2006-01-27 at 14:39 +0000, Anton Altaparmakov wrote:
> > > A colleague has a server (which does backups) that is incapable of doing
> > > a backup due to the backup process being killed due to OOM after
> > > anywhere between 30s and a few minutes of running...  And the backup
> > > process is just a simple program that does the equivalent of "dd with
> > > one source but two destinations" where the source is an lvm/dm snapshot
> > > and the two destinations are two different tape drives attached via
> > > scsi.  That is pretty critical, admittedly only to us and that system...
> > 
> > We found a workaround for the OOM problems on above server yesterday.  
> > 
> > Add a 1MiB swap file:
> > 
> > dd if=/dev/zero of=/var/swapfile bs=1024 count=1024
> > mkswap /var/swapfile
> > swapon /var/swapfile
> > 
> > Run backup script and no problems!
> > 
> > Note: This is a suse SLES9 system and the problem is not present on
> > kernel kernel-smp-2.6.5-7.193.i586.rpm and all earlier kernels and it is
> > present on kernel-smp-2.6.5-7.201.i586.rpm and all later kernels
> > including the latest kernel (2.6.5-7.244).
> > 
> > Seems like a definite VM bug...  Interestingly on the .244 kernel the
> > OOM conditions print out a lot of debug information to dmesg about the
> > memory use in the system and AFAICS none of the memory is exhausted!  So
> > it seems the system goes OOM without it actually being OOM because it
> > detects that "free swap == 0" or something along those lines...
> 
> It does sound like that.  Does it still happen if there's 1MB of swap
> online and it's all full?
> 
> > Or do we nowadays require swap to be present?
> 
> Shouldn't be the case.
> 
> > The machine has 6GiB RAM so swap was turned off on it.  (In our
> > experience if a machine with a lot of concurrent connections starts
> > swapping the system goes down the drain (it becomes too slow) so swap is
> > not something we want on servers with 40000+ users...)
> 
> 1MB of swap isn't likely to cause a lot of swapping.   
> 
> > If the above is not enough information to find/fix the problem please
> > let me know what more you would like to know...
> 
> It'd be nice to see the oom-killer output.
> 
> I don't recall a problem like this.  I wonder if there are any suse changes
> which might have triggered it.

Yes, I think it is suse.  I just diffed /mm of both the above kernels
(.193 and .201) and I think there is a little typo which probably causes
the problem.  It is mm/vmscan.c::shrink_zone():

@@ -845,19 +845,38 @@ shrink_zone(struct zone *zone, int max_s
        }

        atomic_add(scan_active + 1, &zone->nr_scan_active);
-       count = atomic_read(&zone->nr_scan_active);
-       if (count >= SWAP_CLUSTER_MAX) {
+       nr_active = atomic_read(&zone->nr_scan_active);
+       if (nr_active >= SWAP_CLUSTER_MAX)
                atomic_set(&zone->nr_scan_active, 0);
-               refill_inactive_zone(zone, count, ps, can_free_mapped);
-       }
+       else
+               nr_active = 0;

        atomic_add(max_scan, &zone->nr_scan_inactive);
-       count = atomic_read(&zone->nr_scan_inactive);
-       if (count >= SWAP_CLUSTER_MAX) {
+       nr_inactive = atomic_read(&zone->nr_scan_inactive);
+       if (nr_active >= SWAP_CLUSTER_MAX)
            ^^^^^^^^^ Should be nr_inactive I think.

Comparing to code in current linux-2.6.git/mm/vmscan.c confirms that it
should be nr_inactive.

                atomic_set(&zone->nr_scan_inactive, 0);
-               return shrink_cache(zone, gfp_mask, count, total_scanned, can_free_mapped);
+       else
+               nr_inactive = 0;

Jens, given you have an @suse email address, do you want to kick whoever
deals with this in novel/suse so it gets fixed in the next sles9 kernel
update?

Don't know if this fixes our OOM problem but it is a typo in any case.

Best regards,

        Anton
-- 
Anton Altaparmakov <aia21 at cam.ac.uk> (replace at with @)
Unix Support, Computing Service, University of Cambridge, CB2 3QH, UK
Linux NTFS maintainer / IRC: #ntfs on irc.freenode.net
WWW: http://linux-ntfs.sf.net/ & http://www-stu.christs.cam.ac.uk/~aia21/


  reply	other threads:[~2006-02-03 11:02 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-01-27 11:53 Andy Chittenden
2006-01-27 14:21 ` Jens Axboe
2006-01-27 14:39   ` Anton Altaparmakov
2006-02-03  9:20     ` adding swap workarounds oom - was: " Anton Altaparmakov
2006-02-03  9:26       ` Andrew Morton
2006-02-03 11:01         ` Anton Altaparmakov [this message]
2006-02-03 13:54           ` Jens Axboe
2006-02-03 13:56 Andy Chittenden
2006-02-03 14:00 ` Jens Axboe
2006-02-22 10:43 Andy Chittenden
2006-02-22 13:34 ` Jens Axboe
2006-02-22 13:35   ` Jens Axboe
2006-02-22 13:38     ` Jens Axboe
2006-02-24  9:33 Andy Chittenden
     [not found] <89E85E0168AD994693B574C80EDB9C270393BF0E@uk-email.terastack.bluearc.com>
2006-02-27 14:28 ` Jens Axboe
2006-02-27 14:50 Andy Chittenden
2006-02-27 14:56 ` Jens Axboe
2006-02-27 16:39 Andy Chittenden
2006-02-28 10:10 Andy Chittenden
2006-02-28 10:20 ` Jens Axboe
2006-02-28 10:27 Andy Chittenden
2006-02-28 10:29 ` Jens Axboe
2006-03-01  9:42 Andy Chittenden
2006-03-01  9:55 ` Jens Axboe
2006-03-01 10:47 Andy Chittenden
2006-03-01 12:15 ` Jens Axboe
2006-03-01 12:19   ` Jens Axboe
2006-03-01 12:23     ` Andi Kleen
2006-03-01 12:25       ` Jens Axboe
2006-03-01 13:34 Andy Chittenden
2006-03-01 13:41 ` Jens Axboe
2006-03-01 14:05   ` Andi Kleen
2006-03-01 14:18     ` Jens Axboe
2006-03-01 14:26       ` Andi Kleen
2006-03-01 14:34         ` Jens Axboe
2006-03-01 14:41           ` Andi Kleen
2006-03-01 15:00             ` Jens Axboe
2006-03-01 14:40 Andy Chittenden
     [not found] <89E85E0168AD994693B574C80EDB9C270393C141@uk-email.terastack.bluearc.com>
2006-03-01 15:57 ` Jens Axboe
2006-03-02 10:46 Andy Chittenden
2006-03-02 11:10 ` Jens Axboe
2006-03-02 12:21   ` Andi Kleen
2006-03-02 12:26     ` Jens Axboe
2006-03-03  9:16 Andy Chittenden

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1138964504.3828.18.camel@imp.csi.cam.ac.uk \
    --to=aia21@cam.ac.uk \
    --cc=AChittenden@bluearc.com \
    --cc=akpm@osdl.org \
    --cc=axboe@suse.de \
    --cc=davej@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lwoodman@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®