From: Andrea Arcangeli <andrea@suse.de>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: J Sloan <jjs@toyota.com>, Linux kernel <linux-kernel@vger.kernel.org>
Subject: Re: [lkml]Re: VM problems still in 2.2.18
Date: Fri, 15 Dec 2000 19:22:07 +0100 [thread overview]
Message-ID: <20001215192207.E17781@inspiron.random> (raw)
In-Reply-To: <20001215152908.M11505@inspiron.random> <E146z6f-0001ZD-00@the-village.bc.nu>
In-Reply-To: <E146z6f-0001ZD-00@the-village.bc.nu>; from alan@lxorguk.ukuu.org.uk on Fri, Dec 15, 2000 at 05:57:18PM +0000
On Fri, Dec 15, 2000 at 05:57:18PM +0000, Alan Cox wrote:
> How hard is it to seperate losing kpiod (optimisation) from the MAP_SHARED
> changes ? I am assuming they are two seperate issues, possibly wrongly
Losing kpiod isn't an optimization ;(. Losing kpiod is the MAP_SHARED bugfix.
The problem was:
o swap_out
o wants to flush a MAP_SHARED dirty page to disk
o so allocate kpiod-struct
o sumbit the page-flush request to kpiod
o don't wait I/O completion to avoid deadlocking on the i_sem
o swap_out returns 1 and memory balancing code so thinks we did progress
in freeing memory and goes to allocate memory from the freelist
without waiting I/O completion
o repeat N times the above
o in the meantime kpiod has a big queue but it's blocked slowly writing
those pages to disk
o while it writes a few pages swap_out floods again the queue
without waiting and it empties the freelist (task killed)
The problem was the lack of write throttling due the kpiod async-only nature.
> Providing no inode semaphore is upped from a different task , which seems
> currently quite a valid legal thing to do (ditto doing the up on completion of
> something in bh or irq context)
Yes, the same `current' context must run the down/up pair of calls and as you
said it is legal to rely on it on all the places it's used.
Andrea
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
next prev parent reply other threads:[~2000-12-15 18:53 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-12-14 2:36 VM problems still in 2.2.18 Mark Symonds
2000-12-14 9:57 ` Alan Cox
2000-12-14 20:09 ` [lkml]Re: " thunder7
2000-12-14 22:38 ` Alan Cox
2000-12-14 22:39 ` J Sloan
2000-12-14 23:17 ` Alan Cox
2000-12-15 14:29 ` Andrea Arcangeli
2000-12-15 17:57 ` Alan Cox
2000-12-15 18:22 ` Andrea Arcangeli [this message]
2000-12-15 18:46 ` Alan Cox
2000-12-15 19:09 ` Andrea Arcangeli
2000-12-15 19:17 ` Alan Cox
2000-12-16 10:49 ` Chris Mason
2000-12-16 13:39 ` Andrea Arcangeli
2000-12-14 23:12 ` J . A . Magallon
2000-12-18 1:03 ` Mark Symonds
2000-12-15 18:30 ` Mark Symonds
-- strict thread matches above, loose matches on Subject: below --
2000-12-15 13:00 [lkml]Re: " Ed Tomlinson
2000-12-15 17:52 ` Alan Cox
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=20001215192207.E17781@inspiron.random \
--to=andrea@suse.de \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=jjs@toyota.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.