linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Gabriel Paubert <paubert@iram.es>
To: Christophe Leroy <christophe.leroy@c-s.fr>
Cc: Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Nicholas Piggin <npiggin@gmail.com>,
	linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,
	Mike Rapoport <rppt@linux.ibm.com>
Subject: Re: [PATCH v13 00/10] powerpc: Switch to CONFIG_THREAD_INFO_IN_TASK
Date: Fri, 25 Jan 2019 08:00:16 +0100	[thread overview]
Message-ID: <20190125070016.j2lmcz7aidcbhznp@lt-gp.iram.es> (raw)
In-Reply-To: <89049465-643f-b383-82e2-360dc9660d09@c-s.fr>

On Thu, Jan 24, 2019 at 04:58:41PM +0100, Christophe Leroy wrote:
> 
> 
> Le 24/01/2019 à 16:01, Christophe Leroy a écrit :
> > 
> > 
> > Le 24/01/2019 à 10:43, Christophe Leroy a écrit :
> > > 
> > > 
> > > On 01/24/2019 01:06 AM, Michael Ellerman wrote:
> > > > Christophe Leroy <christophe.leroy@c-s.fr> writes:
> > > > > Le 12/01/2019 à 10:55, Christophe Leroy a écrit :
> > > > > > The purpose of this serie is to activate
> > > > > > CONFIG_THREAD_INFO_IN_TASK which
> > > > > > moves the thread_info into task_struct.
> > > > > > 
> > > > > > Moving thread_info into task_struct has the following advantages:
> > > > > > - It protects thread_info from corruption in the case of stack
> > > > > > overflows.
> > > > > > - Its address is harder to determine if stack addresses are
> > > > > > leaked, making a number of attacks more difficult.
> > > > > 
> > > > > I ran null_syscall and context_switch benchmark selftests
> > > > > and the result
> > > > > is surprising. There is slight degradation in context_switch and a
> > > > > significant one on null_syscall:
> > > > > 
> > > > > Without the serie:
> > > > > 
> > > > > ~# chrt -f 98 ./context_switch --no-altivec --no-vector --no-fp
> > > > > 55542
> > > > > 55562
> > > > > 55564
> > > > > 55562
> > > > > 55568
> > > > > ...
> > > > > 
> > > > > ~# ./null_syscall
> > > > >      2546.71 ns     336.17 cycles
> > > > > 
> > > > > 
> > > > > With the serie:
> > > > > 
> > > > > ~# chrt -f 98 ./context_switch --no-altivec --no-vector --no-fp
> > > > > 55138
> > > > > 55142
> > > > > 55152
> > > > > 55144
> > > > > 55142
> > > > > 
> > > > > ~# ./null_syscall
> > > > >      3479.54 ns     459.30 cycles
> > > > > 
> > > > > So 0,8% less context switches per second and 37% more time
> > > > > for one syscall ?
> > > > > 
> > > > > Any idea ?
> > > > 
> > > > What platform is that on?
> > > 
> > > It is on the 8xx
> 
> On the 83xx, I have a slight improvment:
> 
> Without the serie:
> 
> root@vgoippro:~# ./null_syscall
>     921.44 ns     307.15 cycles
> 
> With the serie:
> 
> root@vgoippro:~# ./null_syscall
>     918.78 ns     306.26 cycles
> 

The 8xx has very low cache associativity, something like 2, right?

In this case it may be access patterns which change the number of
cache line transfers when you move things around. 

Try to move things around in main(), for example allocate a variable of
~1kB on the stack in the function that performs the null_syscalls (use 
the variable before and after the loop, to avoid clever compiler
optimizations).

	Gabriel


> Christophe
> 
> > > 
> > > > 
> > > > On 64-bit we have to turn one mtmsrd into two and that's obviously a
> > > > slow down. But I don't see that you've done anything similar in 32-bit
> > > > code.
> > > > 
> > > > I assume it's patch 8 that causes the slow down?
> > > 
> > > I have not digged into it yet, but why patch 8 ?
> > > 
> > 
> > The increase of null_syscall duration happens with patch 5 when we
> > activate CONFIG_THREAD_INFO_IN_TASK.
> > 

      reply	other threads:[~2019-01-25  7:05 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-12  9:55 [PATCH v13 00/10] powerpc: Switch to CONFIG_THREAD_INFO_IN_TASK Christophe Leroy
2019-01-12  9:55 ` [PATCH v13 01/10] powerpc/irq: use memblock functions returning virtual address Christophe Leroy
2019-01-12  9:55 ` [PATCH v13 02/10] book3s/64: avoid circular header inclusion in mmu-hash.h Christophe Leroy
2019-01-12  9:55 ` [PATCH v13 03/10] powerpc: Only use task_struct 'cpu' field on SMP Christophe Leroy
2019-01-12  9:55 ` [PATCH v13 04/10] powerpc: Prepare for moving thread_info into task_struct Christophe Leroy
2019-01-12  9:55 ` [PATCH v13 05/10] powerpc: Activate CONFIG_THREAD_INFO_IN_TASK Christophe Leroy
2019-01-12  9:55 ` [PATCH v13 06/10] powerpc: regain entire stack space Christophe Leroy
2019-01-12  9:55 ` [PATCH v13 07/10] powerpc: 'current_set' is now a table of task_struct pointers Christophe Leroy
2019-01-12  9:55 ` [PATCH v13 08/10] powerpc/32: Remove CURRENT_THREAD_INFO and rename TI_CPU Christophe Leroy
2019-01-12  9:55 ` [PATCH v13 09/10] powerpc/64: Remove CURRENT_THREAD_INFO Christophe Leroy
2019-01-12  9:55 ` [PATCH v13 10/10] powerpc: clean stack pointers naming Christophe Leroy
2019-01-19 10:23 ` [PATCH v13 00/10] powerpc: Switch to CONFIG_THREAD_INFO_IN_TASK Michael Ellerman
2019-01-19 17:21   ` LEROY Christophe
2019-01-23 23:10     ` Michael Ellerman
2019-01-22 19:42   ` Christophe Leroy
2019-01-24  0:59     ` Michael Ellerman
2019-01-24 15:08       ` Christophe Leroy
2019-01-23 10:04 ` Christophe Leroy
2019-01-24  1:06   ` Michael Ellerman
2019-01-24  9:43     ` Christophe Leroy
2019-01-24 15:01       ` Christophe Leroy
2019-01-24 15:58         ` Christophe Leroy
2019-01-25  7:00           ` Gabriel Paubert [this message]

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=20190125070016.j2lmcz7aidcbhznp@lt-gp.iram.es \
    --to=paubert@iram.es \
    --cc=benh@kernel.crashing.org \
    --cc=christophe.leroy@c-s.fr \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mpe@ellerman.id.au \
    --cc=npiggin@gmail.com \
    --cc=paulus@samba.org \
    --cc=rppt@linux.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).