From: Nick Piggin <nickpiggin@yahoo.com.au>
To: Andi Kleen <ak@muc.de>
Cc: linux-kernel@vger.kernel.org, Arjan van de Ven <arjan@infradead.org>
Subject: Re: 2.5isms
Date: Sun, 02 Jan 2005 11:43:42 +1100 [thread overview]
Message-ID: <41D743BE.3060207@yahoo.com.au> (raw)
In-Reply-To: <m1acrt7bqy.fsf@muc.de>
Andi Kleen wrote:
> Nick Piggin <nickpiggin@yahoo.com.au> writes:
>
>
>>Justin Pryzby wrote:
>>
>>>Hi all, I have more 2.5isms for the list. ./fs/binfmt_elf.c:
>>> #ifdef CONFIG_X86_HT
>>> /*
>>> * In some cases (e.g. Hyper-Threading), we want to avoid L1
>>> * evictions by the processes running on the same package. One
>>> * thing we can do is to shuffle the initial stack for them.
>>> *
>>> * The conditionals here are unneeded, but kept in to make the
>>> * code behaviour the same as pre change unless we have
>>> * hyperthreaded processors. This should be cleaned up
>>> * before 2.6
>>> */
>>> if (smp_num_siblings > 1)
>>> STACK_ALLOC(p, ((current->pid % 64) << 7));
>>> #endif
>>>
>>
>>Can we just kill it? Or do it unconditionally? Or maybe better yet, wrap
>>it properly in arch code?
>
>
> You can't kill it without ruining performance on older HT CPUs.
> I would just keep it, it fixes the problem perhaps with a small amount of
> code. A more generalized #ifdef may be a good idea (NEED_STACK_RANDOM)
> may be a good idea, but it is not really a pressing need. Enabling
> it unconditionally may be an option, although it will make it harder
> to repeat test runs on non hyperthreaded CPUs.
Interesting. Yeah something like Arjan posted looks better then... having
CONFIG_X86_HT in generic code is obviously pretty ugly.
I'm curious about a couple of points though. First, is that it is basically
just adding a cache colouring to the stack, right? In that case why do only
older HT CPUs have bad performance without it? And wouldn't it possibly make
even non HT CPUs possibly slightly more efficient WRT caching the stacks of
multiple processes?
Second, on what workloads does performance suffer, can you remember? I wonder
if natural variations in the stack pointer as the program runs would mitigate
the effect of this on all but micro benchmarks?
But even if that were so so, it seems simple enough that I don't have any
real problem with keeping it of course.
Thanks,
Nick
next prev parent reply other threads:[~2005-01-02 0:43 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-12-31 23:06 2.5isms Justin Pryzby
2005-01-01 2:34 ` 2.5isms Nick Piggin
2005-01-01 8:40 ` 2.5isms Arjan van de Ven
2005-01-01 9:13 ` 2.5isms Andi Kleen
2005-01-02 0:43 ` Nick Piggin [this message]
2005-01-02 8:58 ` 2.5isms Arjan van de Ven
2005-01-03 0:49 ` 2.5isms Nick Piggin
2005-01-02 12:04 ` 2.5isms Andi Kleen
2005-01-03 0:44 ` 2.5isms Nick Piggin
-- strict thread matches above, loose matches on Subject: below --
2003-07-03 20:01 "Will be removed in 2.4" Justin Pryzby
2003-12-30 21:30 ` 2.5isms Justin Pryzby
2004-01-03 15:18 ` 2.5isms Pavel Machek
2004-01-07 7:28 ` 2.5isms Justin Pryzby
2004-03-29 15:40 ` 2.5isms Pavel Machek
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=41D743BE.3060207@yahoo.com.au \
--to=nickpiggin@yahoo.com.au \
--cc=ak@muc.de \
--cc=arjan@infradead.org \
--cc=linux-kernel@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox