From: Art Haas <ahaas@neosoft.com>
To: William Lee Irwin III <wli@holomorphy.com>
Cc: linux-mm@kvack.org
Subject: Re: [PATCH] radix-tree pagecache for 2.4.19-pre5-ac3
Date: Wed, 10 Apr 2002 17:08:42 -0500 [thread overview]
Message-ID: <20020410220842.GA14573@debian> (raw)
In-Reply-To: <20020410205947.GG21206@holomorphy.com>
On Wed, Apr 10, 2002 at 01:59:47PM -0700, William Lee Irwin III wrote:
> On Sun, Apr 07, 2002 at 11:44:39AM -0500, Art Haas wrote:
> [ ... snip ... ]
>
> Thank you! This has saved me some effort.
>
> Burning question:
> What are the hunks changing arch/i386/kernel/setup.c there for?
The initial patch I downloaded had those changes in there. Looking
at them now there doesn't seem to be any reason to include them. Perhaps
they were inadvertently added originally, and I've been continuing
that tradition ...
> Also, there appears to be a livelock in add_to_swap(), (yes, this
> has killed my boxen dead) something to help with this follows.
> (It at least turned up a different problem I'm still working on.)
Sorry to hear that. I haven't had any trouble on my machine, but
it's an old machine (200MHz Pentium), and I run desktop stuff, so
the load the patch is exposed to on this machine must not be enough
to trip things up.
Thanks for the feedback and your additional patch! I have
one question about it though ...
> diff -urN linux-virgin/mm/swap_state.c linux/mm/swap_state.c
> --- linux-virgin/mm/swap_state.c Tue Apr 9 18:50:48 2002
> +++ linux/mm/swap_state.c Tue Apr 9 21:28:15 2002
> @@ -104,6 +104,7 @@
> */
> int add_to_swap(struct page * page)
> {
> + int error;
> swp_entry_t entry;
>
> if (!PageLocked(page))
> @@ -118,11 +119,15 @@
> * (adding to the page cache will clear the dirty
> * and uptodate bits, so we need to do it again)
> */
> - if (add_to_swap_cache(page, entry) == 0) {
> + error = add_to_swap_cache(page, entry);
> + if (!error) {
> SetPageUptodate(page);
> set_page_dirty(page);
> swap_free(entry);
> return 1;
> + } else if (error = -ENOMEM) {
> + swap_free(entry);
> + return 0;
> }
> /* Raced with "speculative" read_swap_cache_async */
> swap_free(entry);
>
Should the new "else" clause be ...
} else if (error == -ENOMEM) {
I think you've dropped an "=". Maybe this is the cause of the
other trouble you were seeing?
I hadn't posted it yet, but I've made a newer version of the
patch that incorporates the latest changes from Christoph Hellwig
and Andrew Morton - the changes of spin_lock() and spin_unlock()
to (read|write)_lock() and (read|write)_unlock, plus a few cosmetic
changes. I'm running a kernel with those changes right now (and things
work for me, but we've seen how that goes ...) . I'll rebuild my kernel
with your fix to the swap_state.c file and see how that kernel
performs. I can cook up a script to repeatedly build something and
let things run for a while. If it works I'll post my modified patch tomorrow.
Thanks again for the feedback!
--
They that can give up essential liberty to obtain a little temporary
safety deserve neither liberty nor safety.
-- Benjamin Franklin, Historical Review of Pennsylvania, 1759
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/
next prev parent reply other threads:[~2002-04-10 22:08 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-04-07 16:44 Art Haas
2002-04-10 20:59 ` William Lee Irwin III
2002-04-10 22:08 ` Art Haas [this message]
2002-04-10 22:16 ` William Lee Irwin III
2002-04-10 23:48 ` William Lee Irwin III
2002-04-11 18:39 ` William Lee Irwin III
2002-04-11 21:47 ` Art Haas
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=20020410220842.GA14573@debian \
--to=ahaas@neosoft.com \
--cc=linux-mm@kvack.org \
--cc=wli@holomorphy.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox