From: Paul Jackson <pj@sgi.com>
To: Andi Kleen <ak@suse.de>
Cc: nickpiggin@yahoo.com.au, akpm@osdl.org, linux-mm@kvack.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH]: Clean up of __alloc_pages
Date: Sun, 6 Nov 2005 20:37:17 -0800 [thread overview]
Message-ID: <20051106203717.58c3eed0.pj@sgi.com> (raw)
In-Reply-To: <200511070442.58876.ak@suse.de>
Nick wrote:
> Anyway, I think the first problem is a showstopper. I'd look into
> Hugh's SLAB_DESTROY_BY_RCU for this ...
Andi wrote:
> RCU could be used to avoid that. Just only free it in a RCU callback.
... looking at mm/slab.h and rcupdate.h for the first time ...
Would this mean that I had to put the cpuset structures on their own
slab cache, marked SLAB_DESTROY_BY_RCU?
And is the pair of operators:
task_lock(current), task_unlock(current)
really that much worse than the pair of operatots
rcu_read_lock, rcu_read_unlock
which apparently reduce to:
preempt_disable, preempt_enable
Would this work something like the following? Say task A, on processor
AP, is trying to dereference its cpuset pointer, while task B, on
processor BP, is trying hard to destroy that cpuset. Then if task A
wraps its reference in <rcu_read_lock, rcu_read_unlock>, this will keep
the RCU freeing of that memory from completing, until interrupts on AP
are re-enabled.
For that matter, if I just put cpuset structs in their own slab
cache, would that be sufficient.
Nick - Does use-after-free debugging even catch use of objects
returned to their slab cache?
What about the other suggestions, Andi:
1) subset zonelists (which you asked to reconsider)
2) a kernel flag "cpusets_have_been_used" flag to short circuit
cpuset logic on systems not using cpusets.
--
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <pj@sgi.com> 1.925.600.0401
next prev parent reply other threads:[~2005-11-07 4:37 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-10-29 1:33 [PATCH]: Clean up of __alloc_pages Rohit, Seth
2005-10-29 2:33 ` Nick Piggin
2005-10-31 20:55 ` Rohit Seth
2005-11-01 1:14 ` Nick Piggin
2005-11-04 18:15 ` Rohit Seth
2005-11-05 0:00 ` Nick Piggin
2005-10-30 0:16 ` Paul Jackson
2005-10-31 19:09 ` Rohit Seth
2005-11-05 17:09 ` Andi Kleen
2005-11-06 4:18 ` Paul Jackson
2005-11-06 17:35 ` Andi Kleen
2005-11-06 20:49 ` Paul Jackson
2005-11-07 2:57 ` Nick Piggin
2005-11-07 3:42 ` Andi Kleen
2005-11-07 4:37 ` Paul Jackson [this message]
2005-11-07 6:08 ` Nick Piggin
2005-11-07 9:46 ` Paul Jackson
2005-11-07 10:17 ` Nick Piggin
2005-11-07 14:41 ` Paul Jackson
2005-11-07 3:44 ` Paul Jackson
2005-10-30 1:47 ` Paul Jackson
2005-10-30 2:01 ` Nick Piggin
2005-10-30 2:19 ` Paul Jackson
2005-10-30 2:32 ` Nick Piggin
2005-10-30 3:06 ` Paul Jackson
2005-10-30 3:53 ` Nick Piggin
2005-10-30 2:26 ` Paul Jackson
2005-10-30 2:36 ` Nick Piggin
2005-10-30 3:09 ` Paul Jackson
2005-10-30 3:55 ` Nick Piggin
2005-10-30 4:11 ` Paul Jackson
2005-10-31 21:20 ` Rohit Seth
2005-10-31 21:28 ` Paul Jackson
-- strict thread matches above, loose matches on Subject: below --
2005-11-05 1:57 Seth, Rohit
2005-10-01 19:00 Seth, Rohit
2005-10-02 3:09 ` Nick Piggin
2005-10-03 16:50 ` Rohit Seth
2005-10-03 15:34 ` Christoph Lameter
2005-10-03 16:55 ` Rohit Seth
2005-10-03 16:57 ` Christoph Lameter
2005-10-03 17:48 ` Rohit Seth
2005-10-04 13:27 ` Andi Kleen
2005-10-04 16:26 ` Ray Bryant
2005-10-04 16:10 ` Martin J. Bligh
2005-10-04 17:02 ` Ray Bryant
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=20051106203717.58c3eed0.pj@sgi.com \
--to=pj@sgi.com \
--cc=ak@suse.de \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=nickpiggin@yahoo.com.au \
/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