All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.