Thread (25 messages) read the whole thread 25 messages, 8 authors, 2011-03-24

Re: [PATCH 02/36] scsi, rcu: convert call_rcu(fc_rport_free_rcu) to kfree_rcu()

From: Paul E. McKenney <hidden>
Date: 2011-03-23 13:31:23
Also in: lkml, netdev

On Wed, Mar 23, 2011 at 05:22:57AM -0600, Matthew Wilcox wrote:
On Tue, Mar 22, 2011 at 11:50:14PM -0700, Paul E. McKenney wrote:
quoted
On Tue, Mar 22, 2011 at 10:28:33AM -0700, Robert Love wrote:
quoted
On Thu, 2011-03-17 at 20:41 -0700, Lai Jiangshan wrote:
quoted
-	call_rcu(&rdata->rcu, fc_rport_free_rcu);
+	kfree_rcu(rdata, rcu);
I think this last line should be:

kfree_rcu(rdata, &rdata->rcu);
Hello, Robert,

I believe that it is correct as is.  The kfree_rcu() definition is as
follows:

#define kfree_rcu(ptr, rcu_head)					\
	__kfree_rcu(&((ptr)->rcu_head), offsetof(typeof(*(ptr)), rcu_head))

Then __kfree_rcu() encodes the offset into the rcu_head so that it can
be handled properly at the end of the grace period.
To be fair to Robert, I had the same thought, but decided to check the
definition of kfree_rcu before I made the same comment.  Unfortunately,
the definition of kfree_rcu is still not in Linus' tree (and there's no
indication in the patch series about where to find the definition).  It
would have been better if kfree_rcu were patch 1/n in the series, then
we'd've been able to review it more effectively.
Good point!  That said, it is a bit ugly no matter how we handle it
because any of the patches that have not received acked-bys will need
to go up through their respective maintainer trees.  Last time I had a
situation like this, it ended up stalling my commit stream for several
months, so was trying to separate them in order to avoid the stall.

But perhaps this is one of those situations where there is simply no
good way to handle the full series.  :-(
Any idea when kfree_rcu will be submitted to Linus?
I have it queued, and it passes mild testing.  I therefore expect to
push it for the next merge window.

So, do you guys want to carry the patches for your subsystems, or are
you willing to ack this one so that I can push it via -tip?

							Thanx, Paul
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help