linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Martin Egholm Nielsen <martin@egholm-nielsen.dk>
To: linux-mm@kvack.org
Subject: Re: Overcommit problem on embedded device with no swap
Date: Sun, 27 Mar 2005 12:11:14 +0200	[thread overview]
Message-ID: <d260r3$9n2$1@sea.gmane.org> (raw)
In-Reply-To: <d1eafk$fdh$1@sea.gmane.org>

I kinda guess by now this was not the prober place for this question - 
any idea where I could take it?

BR,
  Martin Egholm

> I don't know if this is the right place to go with this problem, but 
> having searched the web, I ended up here... Sorry if this is totally OT.
> 
> Specs:
> I'm having an embedded Linux system running on a PPC405EP with 64 megs 
> of RAM, some flash, but _no_ swap space. It runs a 2.4.20 kernel patched 
> with drivers for my device.
> 
> Problem:
> I have an application that is killed by the OOM (I guess) when it tries 
> to "use" more memory than present on the system.
> Bolied down, memory is allocated with "sbrk" and then touch'ed.
> 
> With "/proc/sys/vm/overcommit_memory" set to 2, I expected that "sbrk" 
> would return "-1" (0xFFFFFFFF), but it doesn't, hence is 
> terminated/killed by the kernel.
> 
> The same happens on another embedded Linux/2.4.17/i386, also without swap.
> 
> However, both my desktop Linux/2.4.18/i386 and Linux/2.6.5/i386 with 
> swap does what I hoped:
> 
> # ./exhaust_mem
> ...
> ffffffff
> 
> Out of memory
> # #Yeaaaah!
> 
> Having searched the web, I see that this may be related with the fact 
> that there is no swap enabled on either of my embedded devices.
> Is this correct?
> Can I do anything in order to get it the way I expected?
> 
> Best regards,
>  Martin Egholm
> 
> === exhaust_mem.c ===
> 
> #include <unistd.h>
> #include <stdio.h>
> #define SIZE 1000000
> 
> int main( int i )
> {
>   while ( 1 ) {
>     char *v = sbrk( SIZE );
>     char *p;
> 
>     printf( "%x\n\n", v );
> 
>     if ((long)v < 0) {
>       fprintf(stderr, "Out of memory\n");
>       exit(1);
>     } // if
> 
>     for (p = v; p < v + SIZE; ++p) {
>       *p = 42;
>     } // for
> 
>   } // while
> } // main
> 
> 
> -- 
> 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:"aart@kvack.org"> aart@kvack.org </a>
> 

--
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:"aart@kvack.org"> aart@kvack.org </a>

      reply	other threads:[~2005-03-27 10:20 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-03-18 10:29 Martin Egholm Nielsen
2005-03-27 10:11 ` Martin Egholm Nielsen [this message]

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='d260r3$9n2$1@sea.gmane.org' \
    --to=martin@egholm-nielsen.dk \
    --cc=linux-mm@kvack.org \
    /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