From: Andrew Morton <akpm@zip.com.au>
To: "David S. Miller" <davem@redhat.com>
Cc: torvalds@transmeta.com, linux-kernel@vger.kernel.org
Subject: Re: [patch 2/13] remove pages from the LRU in __free_pages_ok()
Date: Sun, 28 Jul 2002 21:25:13 -0700 [thread overview]
Message-ID: <3D44C3A9.982C0205@zip.com.au> (raw)
In-Reply-To: 20020728.204302.44950225.davem@redhat.com
"David S. Miller" wrote:
>
> From: Linus Torvalds <torvalds@transmeta.com>
> Date: Sun, 28 Jul 2002 20:51:13 -0700 (PDT)
>
> On Sun, 28 Jul 2002, David S. Miller wrote:
> > They must never run from HW irqs, in fact there is a BUG()
> > check there against this.
>
> From a page cache standpoint softirq's are 100% equivalent to
> hardware irq's, so that doesn't much help here.
>
> Wait are we trying to make the final freeing of (potentially)
> LRU/page-cache pages from any non-base context illegal?
It already is. The combination of circumstances is pretty
remote, and indeed may never happen. But the final put_page()
against an LRU page will go BUG() because the page is on the LRU.
And a page_cache_reelase() in IRQ context could deadlock over
pagemap_lru_lock() (it'll go BUG in -aa kernels).
> If that really becomes an issue we can do something which moves
> this back to user context when the result of doing it in irq
> context would be problematic.
I don't think it can happen in 2.4. In the truncate case,
the page is taken off the LRU by hand. If do_flushpage()
failed then the buffers still have a ref on the page, which
is undone in shrink_cache(), inside pagemap_lru_lock.
So, probably safe, but way too subtle.
-
next prev parent reply other threads:[~2002-07-29 4:13 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-07-28 7:32 [patch 2/13] remove pages from the LRU in __free_pages_ok() Andrew Morton
2002-07-28 23:54 ` Linus Torvalds
2002-07-29 0:32 ` Andrew Morton
2002-07-29 0:37 ` Linus Torvalds
2002-07-29 0:59 ` Andrew Morton
2002-07-29 0:59 ` Rik van Riel
2002-07-29 2:50 ` David S. Miller
2002-07-29 3:51 ` Linus Torvalds
2002-07-29 3:43 ` David S. Miller
2002-07-29 4:21 ` Linus Torvalds
2002-07-29 5:43 ` David S. Miller
2002-07-29 6:16 ` Linus Torvalds
2002-07-29 6:10 ` David S. Miller
2002-07-29 6:27 ` Linus Torvalds
2002-07-29 6:59 ` Andrew Morton
2002-07-30 11:30 ` Ed Tomlinson
[not found] ` <200208011942.49342.tomlins@cam.org>
[not found] ` <3D49C951.AB7C527E@zip.com.au>
2002-08-03 19:27 ` [PATCH] slablru for linux-2.5 bk tree Ed Tomlinson
2002-08-03 19:27 ` Ed Tomlinson
2002-08-03 20:43 ` Rik van Riel
2002-08-03 20:43 ` Rik van Riel
2002-08-04 3:17 ` Andrew Morton
2002-08-04 3:17 ` Andrew Morton
2002-07-29 8:35 ` [patch 2/13] remove pages from the LRU in __free_pages_ok() Rik van Riel
2002-07-29 4:25 ` Andrew Morton [this message]
2002-07-29 4:28 ` Linus Torvalds
2002-07-29 4:52 ` Andrew Morton
2002-07-29 4:50 ` Linus Torvalds
2002-07-29 5:15 ` Andrew Morton
2002-07-29 4:17 ` Andrew Morton
2002-07-29 4:23 ` Linus Torvalds
2002-07-29 5:43 ` David S. Miller
2002-07-29 6:24 ` Paul Mackerras
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=3D44C3A9.982C0205@zip.com.au \
--to=akpm@zip.com.au \
--cc=davem@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@transmeta.com \
/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.