From: Peter Zijlstra <peterz@infradead.org>
To: "Nicholas A. Bellinger" <nab@linux-iscsi.org>
Cc: kmo@daterainc.com, target-devel <target-devel@vger.kernel.org>,
linux-kernel <linux-kernel@vger.kernel.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Ingo Molnar <mingo@redhat.com>, Jens Axboe <axboe@kernel.dk>
Subject: Re: [PATCH-v2 1/3] percpu_ida: Make percpu_ida_alloc + callers accept task state bitmask
Date: Fri, 24 Jan 2014 16:14:37 +0100 [thread overview]
Message-ID: <20140124151437.GZ13532@twins.programming.kicks-ass.net> (raw)
In-Reply-To: <1390505904.5567.1019.camel@haakon3.risingtidesystems.com>
On Thu, Jan 23, 2014 at 11:38:24AM -0800, Nicholas A. Bellinger wrote:
> > AFAICT, those changes don't address the original bug that the series was
> > trying to address, allowing the percpu_ida_alloc() tag stealing slow
> > path to be interrupted by a signal..
> >
> > Also, keep in mind this change needs to be backported to >= v3.12, which
> > is why the percpu_ida changes have been kept to a minimum.
Well, the other option is to revert whatever caused the issue in the
first place :-)
I'm not much for making ugly fixes just because its easier to backport.
> <A little too eager to SEND>
>
> So would you prefer the following addition to the original bugfix
> instead..?
I'll make a right old mess out of percpu_ida.c, but yeah.
> diff --git a/lib/percpu_ida.c b/lib/percpu_ida.c
> index a48ce2e..58b6714 100644
> --- a/lib/percpu_ida.c
> +++ b/lib/percpu_ida.c
> @@ -174,7 +174,8 @@ int percpu_ida_alloc(struct percpu_ida *pool, int state)
> *
> * global lock held and irqs disabled, don't need percpu lock
> */
> - prepare_to_wait(&pool->wait, &wait, state);
> + if (state != TASK_RUNNING)
> + prepare_to_wait(&pool->wait, &wait, state);
>
> if (!tags->nr_free)
> alloc_global_tags(pool, tags);
> @@ -199,8 +200,9 @@ int percpu_ida_alloc(struct percpu_ida *pool, int state)
> local_irq_save(flags);
> tags = this_cpu_ptr(pool->tag_cpu);
> }
> + if (state != TASK_RUNNING)
> + finish_wait(&pool->wait, &wait);
>
> - finish_wait(&pool->wait, &wait);
> return tag;
> }
> EXPORT_SYMBOL_GPL(percpu_ida_alloc);
>
>
next prev parent reply other threads:[~2014-01-24 15:15 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-20 3:44 [PATCH-v2 0/3] percpu_ida+Co: Make percpu_ida_alloc accept task state bitmask Nicholas A. Bellinger
2014-01-20 3:44 ` [PATCH-v2 1/3] percpu_ida: Make percpu_ida_alloc + callers " Nicholas A. Bellinger
2014-01-20 11:34 ` Peter Zijlstra
2014-01-21 22:09 ` Nicholas A. Bellinger
2014-01-21 22:18 ` Kent Overstreet
2014-01-22 19:53 ` Nicholas A. Bellinger
2014-01-23 18:40 ` Nicholas A. Bellinger
2014-01-23 19:12 ` Peter Zijlstra
2014-01-23 19:31 ` Nicholas A. Bellinger
2014-01-23 19:38 ` Nicholas A. Bellinger
2014-01-24 15:14 ` Peter Zijlstra [this message]
2014-01-25 6:33 ` Nicholas A. Bellinger
2014-01-23 19:34 ` Kent Overstreet
2014-01-23 12:47 ` Peter Zijlstra
2014-01-23 13:28 ` Kent Overstreet
2014-01-23 13:50 ` Peter Zijlstra
2014-01-23 13:55 ` Kent Overstreet
2014-01-23 15:43 ` Peter Zijlstra
2014-01-23 16:22 ` Peter Zijlstra
2014-01-23 16:46 ` Peter Zijlstra
2014-01-23 19:31 ` Kent Overstreet
2014-02-10 9:30 ` Alexander Gordeev
2014-01-20 3:44 ` [PATCH-v2 2/3] blk-mq: Convert gfp_t parameters to " Nicholas A. Bellinger
2014-01-20 3:44 ` [PATCH-v2 3/3] iscsi-target: Fix connection reset hang with percpu_ida_alloc Nicholas A. Bellinger
2014-01-22 19:58 ` [PATCH-v2 0/3] percpu_ida+Co: Make percpu_ida_alloc accept task state bitmask Nicholas A. Bellinger
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=20140124151437.GZ13532@twins.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=axboe@kernel.dk \
--cc=kmo@daterainc.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=nab@linux-iscsi.org \
--cc=target-devel@vger.kernel.org \
--cc=torvalds@linux-foundation.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.