From: Oleg Nesterov <oleg@redhat.com>
To: Darren Hart <darren@dvhart.com>,
Peter Zijlstra <peterz@infradead.org>,
Thomas Gleixner <tglx@linutronix.de>
Cc: Jerome Marchand <jmarchan@redhat.com>,
Larry Woodman <lwoodman@redhat.com>,
Mateusz Guzik <mguzik@redhat.com>,
linux-kernel@vger.kernel.org,
Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>,
Pavel Emelyanov <xemul@parallels.com>
Subject: [PATCH 0/1] futex: don't spin waiting for PF_EXITING -> PF_EXITPIDONE transition
Date: Mon, 16 Feb 2015 21:13:13 +0100 [thread overview]
Message-ID: <20150216201313.GA18246@redhat.com> (raw)
In-Reply-To: <20150202140515.GA26398@redhat.com>
On 02/02, Oleg Nesterov wrote:
>
> And another question. Lets forget about this ->mm check. I simply can not
> understand this
>
> ret = (p->flags & PF_EXITPIDONE) ? -ESRCH : -EAGAIN
>
> logic in attach_to_pi_owner(). First of all, why do we need to retry if
> PF_EXITING is set but PF_EXITPIDONE is not? Why we can not simply ignore
> PF_EXITING and rely on exit_pi_state_list() if PF_EXITPIDONE is not set?
>
> I must have missed something but this looks buggy, I do not see any
> preemption point
^^^^^^^^^^
I meant synchronization point, sorry for confusion.
> in this "retry" loop. Suppose that max_cpus=1 and rt_task()
> preempts the non-rt PF_EXITING owner. Looks like futex_lock_pi() can spin
> forever in this case? (OK, ignoring RT throttling).
Finally I forced myself to try to make the 1st patch ;) To remind, we have
more problems with robust+pi futexes, this needs another patch(es). Otherwise
we could (probably) even kill PF_EXITPIDONE.
Peter. I have no idea how to test it (except it obviously fixes the test-
case I sent before). IOW: please review.
And I still fail to understand why this PF_EXITING logic was added in the
first place. So I also have the problem with the changelog, it merely says
"don't do this because this is not needed".
On top of "check PF_KTHREAD rather than !p->mm to filter out kthreads" but
doesn't depend on it.
Oleg.
next prev parent reply other threads:[~2015-02-16 20:15 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-02 14:05 [PATCH 0/1] futex: check PF_KTHREAD rather than !p->mm to filter out kthreads Oleg Nesterov
2015-02-02 14:05 ` [PATCH 1/1] " Oleg Nesterov
2015-02-04 10:48 ` Peter Zijlstra
2015-02-14 18:01 ` Davidlohr Bueso
2015-02-14 20:57 ` Oleg Nesterov
2015-02-14 21:15 ` Davidlohr Bueso
2015-02-14 21:54 ` Oleg Nesterov
2015-02-18 17:11 ` [tip:locking/core] locking/futex: Check " tip-bot for Oleg Nesterov
2015-02-02 15:11 ` [PATCH 0/1] futex: check " Peter Zijlstra
2015-02-02 15:13 ` Peter Zijlstra
2015-02-02 15:14 ` Peter Zijlstra
2015-02-02 16:20 ` Oleg Nesterov
2015-02-03 20:09 ` Oleg Nesterov
2015-02-04 11:12 ` Peter Zijlstra
2015-02-04 20:25 ` Oleg Nesterov
2015-02-05 16:27 ` Peter Zijlstra
2015-02-05 18:10 ` Oleg Nesterov
2015-02-06 10:46 ` Peter Zijlstra
2015-02-06 17:04 ` Oleg Nesterov
2015-02-09 20:38 ` Darren Hart
2015-02-10 11:14 ` Oleg Nesterov
2015-02-16 20:13 ` Oleg Nesterov [this message]
2015-02-16 20:13 ` [PATCH 1/1] futex: don't spin waiting for PF_EXITING -> PF_EXITPIDONE transition Oleg Nesterov
2015-02-27 9:52 ` Peter Zijlstra
2015-02-27 11:54 ` Peter Zijlstra
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=20150216201313.GA18246@redhat.com \
--to=oleg@redhat.com \
--cc=darren@dvhart.com \
--cc=jmarchan@redhat.com \
--cc=kuznet@ms2.inr.ac.ru \
--cc=linux-kernel@vger.kernel.org \
--cc=lwoodman@redhat.com \
--cc=mguzik@redhat.com \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=xemul@parallels.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 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.