From: Roland McGrath <roland@redhat.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Oleg Nesterov <oleg@redhat.com>,
Alexey Dobriyan <adobriyan@gmail.com>,
Ananth Mavinakayanahalli <ananth@in.ibm.com>,
Christoph Hellwig <hch@infradead.org>,
"Frank Ch. Eigler" <fche@redhat.com>, Ingo Molnar <mingo@elte.hu>,
linux-kernel@vger.kernel.org, utrace-devel@redhat.com
Subject: Re: [RFC,PATCH 14/14] utrace core
Date: Sun, 13 Dec 2009 12:48:47 -0800 (PST) [thread overview]
Message-ID: <20091213204848.02B2B1DE@magilla.sf.frob.com> (raw)
In-Reply-To: Peter Zijlstra's message of Tuesday, 8 December 2009 19:19:38 +0100 <1260296378.17334.21.camel@laptop>
> All that seems to do is call ->release() and kmem_cache_free()s the
> utrace_engine thing, why can't that be done with utrace->lock held?
Calling ->release with a lock held is clearly insane, sorry. It is true
that any engine-writer who does anything like utrace_* calls inside their
release callback is doing things the wrong way. But guaranteeing that
simple mistakes result in spin-lock deadlocks just seems clearly wrong to
me. A main point of the utrace API is to make it easier to work in this
space and help you avoid writing the pathological bugs. Adding picayune
gotchas like this just does not help anyone. No other API callback is made
holding some internal implementation lock, and making this one the sole
exception seems just obviously ill-advised on its face. I can't really
imagine what a justification for such an obfuscation would be.
> But yeah, passing that list along does seem like a better solution.
So you find it cleaner to have each caller of utrace_reset take another
output parameter and be followed with the same exact source code duplicated
in each call site, than to have utrace_reset() do the unlock and then the
common code itself. I guess there is no accounting for taste.
We try not to get excited about trivia, so on matters like this one we will
do whatever the consensus of gate-keeping reviewers wants. My patch to
implement your suggestion adds 13 lines of source and 134 bytes of compiled
text (x86-64). Is that what you prefer?
I'll note that the code as it stands uses the __releases annotation for
sparse, as well as thoroughly documenting the locking details in comments.
I gather that clear explanation of the code is in your eyes no excuse for
ever writing code that requires one to actually read the comments. I'm not
sure that attitude can ever be satisfied by any code that is nontrivial or
makes any attempts at optimization.
Thanks,
Roland
next prev parent reply other threads:[~2009-12-13 20:49 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-24 20:02 Oleg Nesterov
2009-11-24 20:32 ` Andi Kleen
2009-11-24 20:41 ` Oleg Nesterov
2009-11-24 21:26 ` Andi Kleen
2009-11-24 21:31 ` Frank Ch. Eigler
2009-11-24 21:34 ` Andi Kleen
2009-11-24 21:44 ` Oleg Nesterov
2009-11-25 8:46 ` Andi Kleen
2009-11-25 14:55 ` Oleg Nesterov
2009-11-25 16:00 ` Ingo Molnar
2009-11-25 21:50 ` Christoph Hellwig
2009-12-01 23:47 ` Roland McGrath
2009-12-01 19:54 ` Peter Zijlstra
2009-12-01 22:08 ` Oleg Nesterov
2009-12-07 18:34 ` Peter Zijlstra
2009-12-08 15:04 ` Oleg Nesterov
2009-12-08 15:29 ` Peter Zijlstra
2009-12-08 16:31 ` Oleg Nesterov
2009-12-08 18:19 ` Peter Zijlstra
2009-12-08 18:37 ` Oleg Nesterov
2009-12-13 20:48 ` Roland McGrath [this message]
2009-12-08 15:35 ` Peter Zijlstra
2009-12-08 17:51 ` Oleg Nesterov
2009-12-02 5:44 ` Roland McGrath
2009-12-02 18:34 ` Oleg Nesterov
2009-12-02 18:49 ` Oleg Nesterov
2009-12-05 19:14 ` Roland McGrath
2009-12-14 0:25 ` Roland McGrath
2009-12-14 13:51 ` Peter Zijlstra
2009-12-14 17:41 ` Oleg Nesterov
2009-12-14 19:31 ` Oleg Nesterov
2009-12-14 19:42 ` Roland McGrath
2009-12-16 11:18 ` Roland McGrath
2009-12-14 17:03 ` Oleg Nesterov
2009-12-14 19:44 ` Roland McGrath
2009-12-14 20:24 ` Oleg Nesterov
2009-12-15 2:59 ` Roland McGrath
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=20091213204848.02B2B1DE@magilla.sf.frob.com \
--to=roland@redhat.com \
--cc=adobriyan@gmail.com \
--cc=ananth@in.ibm.com \
--cc=fche@redhat.com \
--cc=hch@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=oleg@redhat.com \
--cc=peterz@infradead.org \
--cc=utrace-devel@redhat.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
all inboxes | Powered by JetHome®