The Linux Kernel Mailing List
 help / color / mirror / Atom feed
From: "Ihar 'Philips' Filipau" <filia@softhome.net>
To: David Wuertele <dave-gnus@bfnet.com>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: Do I need kswapd if I don't have swap?
Date: Mon, 24 Nov 2003 08:37:29 +0100	[thread overview]
Message-ID: <3FC1B539.50204@softhome.net> (raw)
In-Reply-To: <URy0.Sx.3@gated-at.bofh.it>


   Can you try 2.6?

   AFAIK 2.4 has no callpath to return ENOMEM to user space. (probably 
in couple of months I will reach this issue on my systems and test it 
completely).

   kswapd is universal process to write-out information to disk - and in 
Linux pages has no any difference as kswapd concerned. It just dumbly 
write them out. If you will disable kswapd - files modified by mean of 
mmap() most likely will never be written back to disk. (Here I am (most 
likely) wrong - probably some of the vm gurus can correct me). That's 
actually why Linux has problems with disk cache and disk cache can 
easily swap the task doing i/o.

   If you want to work-around this situation - enable OOM. it will just 
kill your process instead.


David Wuertele wrote:
> Using 2.4.18 on my 32MB RAM embedded MIPS system, malloc() goes
> bye-bye:
> 
>   /* Malloc as much as possible, then return */
>   #include <stdio.h>
>   #define UNIT 1024		/* one kilobyte */
>   int main ()
>   {
>     unsigned int j, totalmalloc=0, totalwrote=0, totalread=0;
>     while (1) {
>       unsigned char *buf = (unsigned char *) malloc (UNIT);
>       if (!buf) return 0;
>       totalmalloc += UNIT; fprintf (stderr, "%u ", totalmalloc);
>       for (j=0; j<UNIT; j++) buf[j] = j % 256;
>       totalwrote += UNIT; fprintf (stderr, "%u ", totalwrote);
>       for (j=0; j<UNIT; j++) if (buf[j] != (j % 256)) return -1;
>       totalread += UNIT; fprintf (stderr, "%u\n", totalread);
>     }
>   }
> 
> I expected this program to malloc most of my embedded MIPS's 32MB of
> system RAM, then eventually return with a -1 or a -2.  Unfortunately,
> it hangs having finally printed:
> 
>   M26916864
>   W26916864
>   R26916864
> 
> The malloc call isn't even returning.  What could explain that?
> 
> I don't have swap space configured, and I notice several kernel
> threads that I figure might be assuming I have swap.  For example:
> 
>       3 root     S    [ksoftirqd_CPU0]
>       4 root     S    [kswapd]
>       5 root     S    [bdflush]
>       6 root     S    [kupdated]
>       7 root     S    [mtdblockd]
> 
> Do I need any of these if I don't have swap?  Are there any special
> kernel configs I should be doing if I don't have swap?
> 



       reply	other threads:[~2003-11-24  7:37 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <URy0.Sx.3@gated-at.bofh.it>
2003-11-24  7:37 ` Ihar 'Philips' Filipau [this message]
2003-11-23  1:35 Do I need kswapd if I don't have swap? David Wuertele
2003-11-23  2:10 ` Måns Rullgård
2003-11-23  3:22 ` Valdis.Kletnieks

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=3FC1B539.50204@softhome.net \
    --to=filia@softhome.net \
    --cc=dave-gnus@bfnet.com \
    --cc=linux-kernel@vger.kernel.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