From: Marcelo Tosatti <marcelo.tosatti@cyclades.com>
To: James Washer <washer@trlp.com>
Cc: "Martin J. Bligh" <mbligh@mbligh.org>,
linux-mm@kvack.org, ak@muc.de,
Andrea Arcangeli <andrea@novell.com>,
James Bottomley <James.Bottomley@HansenPartnership.com>
Subject: Re: Question about OOM-Killer
Date: Mon, 25 Jul 2005 14:10:14 -0300 [thread overview]
Message-ID: <20050725171014.GB29082@dmt.cnet> (raw)
In-Reply-To: <20050725173514.107aaa1b.washer@trlp.com>
On Mon, Jul 25, 2005 at 05:35:13PM -0700, James Washer wrote:
> Already been done... but I'd not had much time to chase it.. This is my desktop/workstation, so difficult for me to refine the debugging, in any event, here's the backtrace. This is consistent across about 20 events.
>
>
> kernel: Call Trace:<ffffffff80156ba8>{out_of_memory+275} <ffffffff80147fe5>{autoremove_wake_function+0}
> kernel: <ffffffff80157e8b>{__alloc_pages+793} <ffffffff8015a99b>{cache_grow+269}
> kernel: <ffffffff8015adf4>{cache_alloc_refill+442} <ffffffff8015a883>{kmem_cache_alloc+92}
> kernel: <ffffffff88000f0b>{:sd_mod:sd_revalidate_disk+155}
> kernel: <ffffffff8015d549>{pagevec_lookup+23} <ffffffff8015d9a0>{invalidate_mapping_pages+208}
> kernel: <ffffffff80176292>{invalidate_bh_lru+0} <ffffffff8011b9ef>{flat_send_IPI_allbutself+20}
> kernel: <ffffffff801198df>{smp_call_function+62} <ffffffff8017b466>{check_disk_change+89}
> kernel: <ffffffff88000625>{:sd_mod:sd_open+257} <ffffffff8017b73e>{do_open+190}
> kernel: <ffffffff8017bb02>{blkdev_open+33} <ffffffff80173768>{dentry_open+224}
> kernel: <ffffffff801738a2>{filp_open+63} <ffffffff8017398a>{get_unused_fd+220}
> kernel: <ffffffff80173a8b>{sys_open+62} <ffffffff8010e29e>{system_call+126}
/**
* sd_revalidate_disk - called the first time a new disk is seen,
* performs disk spin up, read_capacity, etc.
* @disk: struct gendisk we care about
**/
static int sd_revalidate_disk(struct gendisk *disk)
{
...
buffer = kmalloc(512, GFP_KERNEL | __GFP_DMA);
if (!buffer) {
printk(KERN_WARNING "(sd_revalidate_disk:) Memory allocation "
"failure.\n");
goto out_release_request;
}
sd_spinup_disk(sdkp, disk->disk_name, sreq, buffer);
I suppose its playing safe to support 16Mb limited devices. Can't the
gfp_mask be derived from lower level device characteristics?
On the VM side alloc_pages() should do better if conditioned to kill on
lowmem exhaustion and expect allocators to handle failure properly.
Or maybe to always return failure for in-kernel allocations, but one
might argue that kernel allocations _might_ be crucial for system
functionality (its a case by case basis) IIRC Andrea used to favour
failed DMA allocations to trigger the kill, for reasons I don't
recall.
The OOM killer, what a delight.
> On Mon, 25 Jul 2005 15:41:27 -0700
> "Martin J. Bligh" <mbligh@mbligh.org> wrote:
>
> > Jim, does seem bloody silly to be shooting stuff here, and is
> > probably simple to fix ... however, would be useful to see where
> > the DMA allocs are coming from as well, any chance you could dump
> > a stack backtrace in __alloc_pages when we spec a mask for DMA alloc?
> >
> > M.
> >
> > --On Monday, July 25, 2005 12:11:30 -0700 James Washer <washer@trlp.com> wrote:
> >
> > > Pretty typical message here...
> > > Jul 6 17:31:27 p6 kernel: oom-killer: gfp_mask=0xd1
> > > Jul 6 17:31:27 p6 kernel: Node 0 DMA per-cpu:
> > > Jul 6 17:31:27 p6 kernel: cpu 0 hot: low 2, high 6, batch 1
> > > Jul 6 17:31:27 p6 kernel: cpu 0 cold: low 0, high 2, batch 1
> > > Jul 6 17:31:27 p6 kernel: cpu 1 hot: low 2, high 6, batch 1
> > > Jul 6 17:31:27 p6 kernel: cpu 1 cold: low 0, high 2, batch 1
> > > Jul 6 17:31:27 p6 kernel: Node 0 Normal per-cpu:
> > > Jul 6 17:31:27 p6 kernel: cpu 0 hot: low 32, high 96, batch 16
> > > Jul 6 17:31:27 p6 kernel: cpu 0 cold: low 0, high 32, batch 16
> > > Jul 6 17:31:27 p6 kernel: cpu 1 hot: low 32, high 96, batch 16
> > > Jul 6 17:31:27 p6 kernel: cpu 1 cold: low 0, high 32, batch 16
> > > Jul 6 17:31:27 p6 kernel: Node 0 HighMem per-cpu: empty
> > > Jul 6 17:31:27 p6 kernel:
> > > Jul 6 17:31:31 p6 gconfd (washer-7174): SIGHUP received, reloading all databases
> > > Jul 6 17:31:37 p6 kernel: Free pages: 16236kB (0kB HighMem)
> > > Jul 6 17:31:38 p6 su(pam_unix)[9041]: session closed for user root
> > > Jul 6 17:31:38 p6 su(pam_unix)[10645]: session closed for user root
> > > Jul 6 17:31:38 p6 su(pam_unix)[8044]: session closed for user root
> > > Jul 6 17:31:38 p6 su(pam_unix)[7228]: session closed for user root
> > > Jul 6 17:31:38 p6 su(pam_unix)[16136]: session closed for user root
> > > Jul 6 17:31:48 p6 gconfd (washer-7174): Resolved address "xml:readonly:/etc/gconf/gconf.xml.mandatory" to a read-only configuration source at position 0
> > > Jul 6 17:31:49 p6 kernel: Active:596167 inactive:854867 dirty:624740 writeback:0 unstable:0 free:4059 slab:52688 mapped:595231 pagetables:4862
> > > Jul 6 17:32:00 p6 gconfd (washer-7174): Resolved address "xml:readwrite:/home/washer/.gconf" to a writable configuration source at position 1
> > > Jul 6 17:32:02 p6 kernel: Node 0 DMA free:20kB min:24kB low:28kB high:36kB active:0kB inactive:0kB present:16384kB pages_scanned:1 all_unreclaimable? yes
> > > Jul 6 17:32:04 p6 gconfd (washer-7174): Resolved address "xml:readonly:/etc/gconf/gconf.xml.defaults" to a read-only configuration source at position 2
> > > Jul 6 17:32:06 p6 kernel: lowmem_reserve[]: 0 7152 7152
> > > Jul 6 17:32:11 p6 kernel: Node 0 Normal free:16216kB min:10808kB low:13508kB high:16212kB active:2384668kB inactive:3419468kB present:7323648kB pages_scanned:0 all_unreclaimable? no
> > > Jul 6 17:32:13 p6 kernel: lowmem_reserve[]: 0 0 0
> > > Jul 6 17:32:13 p6 kernel: Node 0 HighMem free:0kB min:128kB low:160kB high:192kB active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no
> > > Jul 6 17:32:13 p6 kernel: lowmem_reserve[]: 0 0 0
> > > Jul 6 17:32:13 p6 kernel: Node 0 DMA: 1*4kB 0*8kB 1*16kB 0*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 20kB
> > > Jul 6 17:32:13 p6 kernel: Node 0 Normal: 34*4kB 192*8kB 53*16kB 92*32kB 2*64kB 1*128kB 1*256kB 0*512kB 0*1024kB 1*2048kB 2*4096kB = 16216kB
> > > Jul 6 17:32:13 p6 kernel: Node 0 HighMem: empty
> > > Jul 6 17:32:13 p6 kernel: Swap cache: add 48, delete 48, find 0/0, race 0+0
> > > Jul 6 17:32:13 p6 kernel: Free swap = 8385728kB
> > > Jul 6 17:32:13 p6 kernel: Total swap = 8385920kB
> > > Jul 6 17:32:13 p6 kernel: Out of Memory: Killed process 10475 (firefox-bin).
> > >
> > >
> > > On Sat, 23 Jul 2005 10:00:48 -0300
> > > Marcelo Tosatti <marcelo.tosatti@cyclades.com> wrote:
> > >
> > >>
> > >> James,
> > >>
> > >> Can you send the OOM killer output?
> > >>
> > >> I dont know which devices part of an x86-64 system should
> > >> be limited to 16Mb of physical addressing. Andi?
> > >>
> > >> I don't think that any devices should have 16MB limitation
> > >>
> > >> On Mon, Jul 18, 2005 at 12:36:50PM -0700, James Washer wrote:
> > >> > Sorry, I should have added...
> > >> > 2.6.11.10,
> > >> > x86-64 dual proc (Intel Xeon 3.4GHz)
> > >> > 6GiB ram
> > >> > Intel Corporation 82801EB (ICH5) SATA Controller (rev 0)
> > >> > Host: scsi0 Channel: 00 Id: 00 Lun: 00
> > >> > Vendor: ATA Model: Maxtor 6Y160M0 Rev: YAR5
> > >> > Type: Direct-Access ANSI SCSI revision: 05
> > >> > Host: scsi0 Channel: 00 Id: 01 Lun: 00
> > >> > Vendor: ATA Model: Maxtor 7Y250M0 Rev: YAR5
> > >> > Type: Direct-Access ANSI SCSI revision: 05
> > >> >
> > >> >
> > >> > On Mon, 18 Jul 2005 12:21:01 -0700
> > >> > James Washer <washer@trlp.com> wrote:
> > >> >
> > >> > > I'm chasing down a system problem where the DMA memory (x86-64, god knows why it is using DMA memory)
> > >> > drops below the minimum, and the OOM-Killer is fired off.
> > >> > >
> > >> > > It just strikes me odd that the OOM-Killer would be called at all for DMA memory.
> > >> > What's the chance of regaining DMA memory by killing user land processes?
> > >> > >
> > >> > > I'll admit, I know very little about linux VM, so perhaps I'm missing how oom killing can be helpful here.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2005-07-25 17:10 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-07-18 19:21 James Washer
2005-07-18 19:36 ` James Washer
2005-07-23 13:00 ` Marcelo Tosatti
2005-07-25 19:11 ` James Washer
2005-07-25 12:27 ` Marcelo Tosatti
2005-07-25 22:41 ` Martin J. Bligh
2005-07-25 15:46 ` Marcelo Tosatti
2005-07-26 0:35 ` James Washer
2005-07-25 17:10 ` Marcelo Tosatti [this message]
2005-07-26 13:29 ` Martin J. Bligh
2005-07-26 15:17 ` Andi Kleen
2005-07-26 16:34 ` Martin J. Bligh
2005-07-26 13:53 ` Andi Kleen
2023-05-31 8:42 Question about oom-killer Gou Hao
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=20050725171014.GB29082@dmt.cnet \
--to=marcelo.tosatti@cyclades.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=ak@muc.de \
--cc=andrea@novell.com \
--cc=linux-mm@kvack.org \
--cc=mbligh@mbligh.org \
--cc=washer@trlp.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