From: "Alastair D'Silva" <alastair@au1.ibm.com>
To: Frederic Barrat <fbarrat@linux.ibm.com>, linuxppc-dev@lists.ozlabs.org
Cc: linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org,
mikey@neuling.org, vaibhav@linux.vnet.ibm.com,
aneesh.kumar@linux.vnet.ibm.com, malat@debian.org,
felix@linux.vnet.ibm.com, pombredanne@nexb.com,
sukadev@linux.vnet.ibm.com, npiggin@gmail.com,
gregkh@linuxfoundation.org, arnd@arndb.de,
andrew.donnellan@au1.ibm.com, fbarrat@linux.vnet.ibm.com,
corbet@lwn.net
Subject: Re: [PATCH v2 3/7] powerpc: use task_pid_nr() for TID allocation
Date: Tue, 08 May 2018 10:40:21 +1000 [thread overview]
Message-ID: <1525740021.7796.45.camel@au1.ibm.com> (raw)
In-Reply-To: <b8aa28c4-9171-cb7f-9a43-22f2f15657b0@linux.ibm.com>
On Mon, 2018-05-07 at 19:37 +0200, Frederic Barrat wrote:
>
> Le 18/04/2018 à 03:08, Alastair D'Silva a écrit :
> > From: Alastair D'Silva <alastair@d-silva.org>
> >
> > The current implementation of TID allocation, using a global IDR,
> > may
> > result in an errant process starving the system of available TIDs.
> > Instead, use task_pid_nr(), as mentioned by the original author.
> > The
> > scenario described which prevented it's use is not applicable, as
> > set_thread_tidr can only be called after the task struct has been
> > populated.
>
>
> Here is how I understand what's going to happen if 2 threads are
> using
> the same TIDR value, which is possible with this patch (if unlikely):
>
> 1. waking up the wrong thread is not really a problem, as threads
> have
> to handle spurious wake up from the 'wait' instruction anyway, and
> must
> be using some other condition to know when to loop around the 'wait'
> instruction.
>
> 2. missing the right thread: if the wrong thread is on a CPU, and a
> wake_host_thread/as_notify is sent, the core will see a matching
> thread
> and will accept the command. The (open)capi adapter won't send an
> interrupt. The wrong thread is awaken, which is not a problem as
> discussed above. As the right thread to notify is not running, no
> harm
> is done either: as soon as the thread runs, it's supposed to check
> its
> condition (which will be met) or call 'wait', but 'wait' immediately
> returns when called the first time after a thread is scheduled.
>
> So I believe we are ok. But I think it requires a huge comment with
> the
> above (at the minimum) :-)
>
> With a comment:
> Reviewed-by: Frederic Barrat <fbarrat@linux.vnet.ibm.com>
>
> Fred
>
Good point, I'll add this in the next revision.
--
Alastair D'Silva
Open Source Developer
Linux Technology Centre, IBM Australiamob: 0423 762 819
next prev parent reply other threads:[~2018-05-08 0:40 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-17 2:09 [PATCH 0/7] ocxl: Implement Power9 as_notify/wait for OpenCAPI Alastair D'Silva
2018-04-17 2:09 ` [PATCH 1/7] powerpc: Add TIDR CPU feature for Power9 Alastair D'Silva
2018-04-17 4:09 ` Andrew Donnellan
2018-04-17 2:09 ` [PATCH 2/7] powerpc: Use TIDR CPU feature to control TIDR allocation Alastair D'Silva
2018-04-17 4:21 ` Andrew Donnellan
2018-04-17 5:31 ` Alastair D'Silva
2018-04-17 2:09 ` [PATCH 3/7] powerpc: use task_pid_nr() for TID allocation Alastair D'Silva
2018-04-17 2:09 ` [PATCH 4/7] ocxl: Rename pnv_ocxl_spa_remove_pe to clarify it's action Alastair D'Silva
2018-04-17 5:37 ` Andrew Donnellan
2018-04-17 2:09 ` [PATCH 5/7] ocxl: Expose the thread_id needed for wait on p9 Alastair D'Silva
2018-04-17 2:09 ` [PATCH 6/7] ocxl: Add an IOCTL so userspace knows which platform the kernel requires Alastair D'Silva
2018-04-17 2:09 ` [PATCH 7/7] ocxl: Document new OCXL IOCTLs Alastair D'Silva
2018-04-17 3:45 ` Andrew Donnellan
2018-04-18 1:08 ` [PATCH v2 0/7] ocxl: Implement Power9 as_notify/wait for OpenCAPI Alastair D'Silva
2018-04-18 1:08 ` [PATCH v2 1/7] powerpc: Add TIDR CPU feature for Power9 Alastair D'Silva
2018-04-18 7:03 ` Andrew Donnellan
2018-05-07 17:17 ` Frederic Barrat
2018-05-08 3:13 ` Alastair D'Silva
2018-04-18 1:08 ` [PATCH v2 2/7] powerpc: Use TIDR CPU feature to control TIDR allocation Alastair D'Silva
2018-04-18 7:13 ` Andrew Donnellan
2018-05-07 17:19 ` Frederic Barrat
2018-04-18 1:08 ` [PATCH v2 3/7] powerpc: use task_pid_nr() for TID allocation Alastair D'Silva
2018-04-20 8:43 ` Andrew Donnellan
2018-04-24 21:12 ` Sukadev Bhattiprolu
2018-04-26 9:25 ` Andrew Donnellan
2018-05-07 17:37 ` Frederic Barrat
2018-05-08 0:40 ` Alastair D'Silva [this message]
2018-04-18 1:08 ` [PATCH v2 4/7] ocxl: Rename pnv_ocxl_spa_remove_pe to clarify it's action Alastair D'Silva
2018-05-07 17:38 ` Frederic Barrat
2018-04-18 1:08 ` [PATCH v2 5/7] ocxl: Expose the thread_id needed for wait on p9 Alastair D'Silva
2018-04-23 7:16 ` Andrew Donnellan
2018-05-07 18:08 ` Frederic Barrat
2018-04-18 1:08 ` [PATCH v2 6/7] ocxl: Add an IOCTL so userspace knows what CPU features are available Alastair D'Silva
2018-04-20 7:25 ` Andrew Donnellan
2018-05-07 18:14 ` Frederic Barrat
2018-05-08 0:41 ` Alastair D'Silva
2018-05-08 3:50 ` Nicholas Piggin
2018-05-08 3:54 ` Alastair D'Silva
2018-04-18 1:08 ` [PATCH v2 7/7] ocxl: Document new OCXL IOCTLs Alastair D'Silva
2018-04-18 7:29 ` Andrew Donnellan
2018-05-07 18:15 ` Frederic Barrat
2018-05-09 0:42 ` [PATCH v3 0/7] ocxl: Implement Power9 as_notify/wait for OpenCAPI Alastair D'Silva
2018-05-09 0:42 ` [PATCH v3 1/7] powerpc: Add TIDR CPU feature for POWER9 Alastair D'Silva
2018-05-09 0:42 ` [PATCH v3 2/7] powerpc: Use TIDR CPU feature to control TIDR allocation Alastair D'Silva
2018-05-09 0:42 ` [PATCH v3 3/7] powerpc: use task_pid_nr() for TID allocation Alastair D'Silva
2018-05-09 0:42 ` [PATCH v3 4/7] ocxl: Rename pnv_ocxl_spa_remove_pe to clarify it's action Alastair D'Silva
2018-05-09 0:42 ` [PATCH v3 5/7] ocxl: Expose the thread_id needed for wait on POWER9 Alastair D'Silva
2018-05-11 5:01 ` Michael Ellerman
2018-05-09 0:42 ` [PATCH v3 6/7] ocxl: Add an IOCTL so userspace knows what OCXL features are available Alastair D'Silva
2018-05-09 0:42 ` [PATCH v3 7/7] ocxl: Document new OCXL IOCTLs Alastair D'Silva
2018-05-09 5:34 ` [PATCH v4 0/7] ocxl: Implement Power9 as_notify/wait for OpenCAPI Alastair D'Silva
2018-05-09 5:35 ` [PATCH v4 1/7] powerpc: Add TIDR CPU feature for POWER9 Alastair D'Silva
2018-05-09 5:35 ` [PATCH v4 2/7] powerpc: Use TIDR CPU feature to control TIDR allocation Alastair D'Silva
2018-05-09 5:35 ` [PATCH v4 3/7] powerpc: use task_pid_nr() for TID allocation Alastair D'Silva
2018-05-09 5:35 ` [PATCH v4 4/7] ocxl: Rename pnv_ocxl_spa_remove_pe to clarify it's action Alastair D'Silva
2018-05-09 5:35 ` [PATCH v4 5/7] ocxl: Expose the thread_id needed for wait on POWER9 Alastair D'Silva
2018-05-09 5:35 ` [PATCH v4 6/7] ocxl: Add an IOCTL so userspace knows what OCXL features are available Alastair D'Silva
2018-05-11 5:20 ` Michael Ellerman
2018-05-09 5:35 ` [PATCH v4 7/7] ocxl: Document new OCXL IOCTLs Alastair D'Silva
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=1525740021.7796.45.camel@au1.ibm.com \
--to=alastair@au1.ibm.com \
--cc=andrew.donnellan@au1.ibm.com \
--cc=aneesh.kumar@linux.vnet.ibm.com \
--cc=arnd@arndb.de \
--cc=corbet@lwn.net \
--cc=fbarrat@linux.ibm.com \
--cc=fbarrat@linux.vnet.ibm.com \
--cc=felix@linux.vnet.ibm.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=malat@debian.org \
--cc=mikey@neuling.org \
--cc=npiggin@gmail.com \
--cc=pombredanne@nexb.com \
--cc=sukadev@linux.vnet.ibm.com \
--cc=vaibhav@linux.vnet.ibm.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;
as well as URLs for NNTP newsgroup(s).