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?
>
next parent 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