All of lore.kernel.org
 help / color / mirror / Atom feed
From: Linus Torvalds <torvalds@linux-foundation.org>
To: Matthew Wilcox <willy@infradead.org>
Cc: Luis Chamberlain <mcgrof@kernel.org>,
	david@redhat.com, patches@lists.linux.dev,
	 linux-modules@vger.kernel.org, linux-mm@kvack.org,
	 linux-kernel@vger.kernel.org, pmladek@suse.com,
	petr.pavlu@suse.com,  prarit@redhat.com,
	gregkh@linuxfoundation.org, rafael@kernel.org,
	 christophe.leroy@csgroup.eu, tglx@linutronix.de,
	peterz@infradead.org,  song@kernel.org, rppt@kernel.org,
	dave@stgolabs.net, vbabka@suse.cz,  mhocko@suse.com,
	dave.hansen@linux.intel.com, colin.i.king@gmail.com,
	 jim.cromie@gmail.com, catalin.marinas@arm.com,
	jbaron@akamai.com,  rick.p.edgecombe@intel.com
Subject: Re: [PATCH v2 1/2] Change DEFINE_SEMAPHORE() to take a number argument
Date: Fri, 7 Apr 2023 13:52:39 -0700	[thread overview]
Message-ID: <CAHk-=wgYFGyy9jBmwEJHtdtdaEbqiyFn7GtMN6jP2ZFw92zYDA@mail.gmail.com> (raw)
In-Reply-To: <ZDB+zn3X4sac9DFU@casper.infradead.org>

On Fri, Apr 7, 2023 at 1:37 PM Matthew Wilcox <willy@infradead.org> wrote:
>
> I'd like to mention completions as an alternative to semaphores, but
> can't figure out a nice way to fit that in.

I'm personally a bit sorry completions ever became a thing.

There's a real reason for having them, but they have been used and
mis-used in so many confusing ways that I am worried every time I see
a completion. We've had some nasty use of 'init_completion()' in
particular.

There are many obvious uses of completions, and they have nice strict
semantics wrt last-use etc (so that you can put them on the stack and
know that you're the last user when you return, which is not
necessarily true of locking in general).

But there are several less-than-obvious uses too, and any use of
reinit_completion() ends up just making me go "Uhh".  The
serialization needed for that to actually work right often means that
you might as well have used a "wait_event()" with a
"smp_store_release()" variable instead and made the code more obvious.

I dunno. I might have had a few bad experiences and it's just rare
enough to be one of those things that I feel wasn't worth the
abstraction cost.

And I can't even blame anybody else. I think I'm to blame for that horror.

              Linus

  reply	other threads:[~2023-04-07 20:53 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-05 20:35 [PATCH v2 0/2] kmod: simplify with a semaphore Luis Chamberlain
2023-04-05 20:35 ` [PATCH v2 1/2] Change DEFINE_SEMAPHORE() to take a number argument Luis Chamberlain
2023-04-07 16:38   ` Davidlohr Bueso
2023-04-07 20:36   ` Matthew Wilcox
2023-04-07 20:52     ` Linus Torvalds [this message]
2023-04-12  4:05     ` Luis Chamberlain
2023-04-08  8:22   ` Sergey Senozhatsky
2023-04-05 20:35 ` [PATCH v2 2/2] modules/kmod: replace implementation with a sempahore Luis Chamberlain
2023-04-07 17:19   ` Davidlohr Bueso
2023-04-11  8:42   ` David Hildenbrand
2023-04-13  9:44   ` Miroslav Benes
2023-04-13 16:38     ` Luis Chamberlain

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='CAHk-=wgYFGyy9jBmwEJHtdtdaEbqiyFn7GtMN6jP2ZFw92zYDA@mail.gmail.com' \
    --to=torvalds@linux-foundation.org \
    --cc=catalin.marinas@arm.com \
    --cc=christophe.leroy@csgroup.eu \
    --cc=colin.i.king@gmail.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=dave@stgolabs.net \
    --cc=david@redhat.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jbaron@akamai.com \
    --cc=jim.cromie@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-modules@vger.kernel.org \
    --cc=mcgrof@kernel.org \
    --cc=mhocko@suse.com \
    --cc=patches@lists.linux.dev \
    --cc=peterz@infradead.org \
    --cc=petr.pavlu@suse.com \
    --cc=pmladek@suse.com \
    --cc=prarit@redhat.com \
    --cc=rafael@kernel.org \
    --cc=rick.p.edgecombe@intel.com \
    --cc=rppt@kernel.org \
    --cc=song@kernel.org \
    --cc=tglx@linutronix.de \
    --cc=vbabka@suse.cz \
    --cc=willy@infradead.org \
    /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.