All of lore.kernel.org
 help / color / mirror / Atom feed
From: Russell King - ARM Linux <linux@armlinux.org.uk>
To: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: linux-arch@vger.kernel.org,
	linux-s390 <linux-s390@vger.kernel.org>,
	kvm@vger.kernel.org, Peter Zijlstra <peterz@infradead.org>,
	Will Deacon <will.deacon@arm.com>,
	x86@kernel.org, Heiko Carstens <heiko.carstens@de.ibm.com>,
	linux-kernel@vger.kernel.org, Nicholas Piggin <npiggin@gmail.com>,
	virtualization@lists.linux-foundation.org,
	sparclinux@vger.kernel.org, Noam Camus <noamc@ezchip.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Martin Schwidefsky <schwidefsky@de.ibm.com>,
	xen-devel@lists.xenproject.org, linuxppc-dev@lists.ozlabs.org,
	Ingo Molnar <mingo@kernel.org>
Subject: Re: [GIT PULL v2 1/5] processor.h: introduce cpu_relax_yield
Date: Tue, 15 Nov 2016 12:30:30 +0000	[thread overview]
Message-ID: <20161115123029.GT1041__46207.5265277692$1479213145$gmane$org@n2100.armlinux.org.uk> (raw)
In-Reply-To: <1477386195-32736-2-git-send-email-borntraeger@de.ibm.com>

On Tue, Oct 25, 2016 at 11:03:11AM +0200, Christian Borntraeger wrote:
> For spinning loops people do often use barrier() or cpu_relax().
> For most architectures cpu_relax and barrier are the same, but on
> some architectures cpu_relax can add some latency.
> For example on power,sparc64 and arc, cpu_relax can shift the CPU
> towards other hardware threads in an SMT environment.
> On s390 cpu_relax does even more, it uses an hypercall to the
> hypervisor to give up the timeslice.
> In contrast to the SMT yielding this can result in larger latencies.
> In some places this latency is unwanted, so another variant
> "cpu_relax_lowlatency" was introduced. Before this is used in more
> and more places, lets revert the logic and provide a cpu_relax_yield
> that can be called in places where yielding is more important than
> latency. By default this is the same as cpu_relax on all architectures.

Rather than having to update all these architectures in this way, can't
we put in some linux/*.h header something like:

#ifndef cpu_relax_yield
#define cpu_relax_yield() cpu_relax()
#endif

so only those architectures that need to do something need to be
modified?

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

  reply	other threads:[~2016-11-15 12:31 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-25  9:03 [GIT PULL v2 0/5] cpu_relax: drop lowlatency, introduce yield Christian Borntraeger
2016-10-25  9:03 ` Christian Borntraeger
2016-10-25  9:03 ` [GIT PULL v2 1/5] processor.h: introduce cpu_relax_yield Christian Borntraeger
2016-10-25  9:03   ` Christian Borntraeger
2016-11-15 12:30   ` Russell King - ARM Linux [this message]
2016-11-15 12:30   ` Russell King - ARM Linux
2016-11-15 13:19     ` Christian Borntraeger
2016-11-15 13:19       ` Christian Borntraeger
2016-11-15 13:19       ` Christian Borntraeger
2016-11-15 13:37       ` Russell King - ARM Linux
2016-11-15 13:52         ` Christian Borntraeger
2016-11-15 13:52         ` Christian Borntraeger
2016-11-15 13:52           ` Christian Borntraeger
2016-11-15 13:52           ` Christian Borntraeger
2016-11-15 13:37       ` Russell King - ARM Linux
2016-11-15 13:37       ` Russell King - ARM Linux
2016-11-15 13:19     ` Christian Borntraeger
2016-11-15 12:30   ` Russell King - ARM Linux
2016-11-16 12:08   ` [tip:locking/core] locking/core: Introduce cpu_relax_yield() tip-bot for Christian Borntraeger
2016-10-25  9:03 ` [GIT PULL v2 1/5] processor.h: introduce cpu_relax_yield Christian Borntraeger
2016-10-25  9:03 ` Christian Borntraeger
2016-10-25  9:03 ` [GIT PULL v2 2/5] stop_machine: yield CPU during stop machine Christian Borntraeger
2016-10-25  9:03 ` Christian Borntraeger
2016-10-25  9:03   ` Christian Borntraeger
2016-10-25  9:03   ` Christian Borntraeger
2016-11-16 12:09   ` [tip:locking/core] locking/core, stop_machine: Yield the CPU during stop machine() tip-bot for Christian Borntraeger
2016-10-25  9:03 ` [GIT PULL v2 3/5] s390: make cpu_relax a barrier again Christian Borntraeger
2016-10-25  9:03 ` Christian Borntraeger
2016-10-25  9:03   ` Christian Borntraeger
2016-10-25  9:03   ` Christian Borntraeger
2016-11-16 12:09   ` [tip:locking/core] locking/core, s390: Make cpu_relax() " tip-bot for Christian Borntraeger
2016-10-25  9:03 ` [GIT PULL v2 4/5] processor.h: Remove cpu_relax_lowlatency users Christian Borntraeger
2016-10-25  9:03   ` Christian Borntraeger
2016-10-25  9:03   ` Christian Borntraeger
2016-11-16 12:10   ` [tip:locking/core] locking/core: Remove cpu_relax_lowlatency() users tip-bot for Christian Borntraeger
2016-10-25  9:03 ` [GIT PULL v2 4/5] processor.h: Remove cpu_relax_lowlatency users Christian Borntraeger
2016-10-25  9:03 ` [GIT PULL v2 5/5] processor.h: remove cpu_relax_lowlatency Christian Borntraeger
2016-10-25  9:03   ` Christian Borntraeger
2016-11-16 12:11   ` [tip:locking/core] locking/core, arch: Remove cpu_relax_lowlatency() tip-bot for Christian Borntraeger
2016-10-25  9:03 ` [GIT PULL v2 5/5] processor.h: remove cpu_relax_lowlatency Christian Borntraeger
2016-10-25  9:03 ` Christian Borntraeger
2016-11-15 10:15 ` [GIT PULL v2 0/5] cpu_relax: drop lowlatency, introduce yield Christian Borntraeger
2016-11-15 10:15   ` Christian Borntraeger
2016-11-15 10:15 ` Christian Borntraeger
2016-11-15 10:15 ` Christian Borntraeger

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='20161115123029.GT1041__46207.5265277692$1479213145$gmane$org@n2100.armlinux.org.uk' \
    --to=linux@armlinux.org.uk \
    --cc=borntraeger@de.ibm.com \
    --cc=catalin.marinas@arm.com \
    --cc=heiko.carstens@de.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mingo@kernel.org \
    --cc=noamc@ezchip.com \
    --cc=npiggin@gmail.com \
    --cc=peterz@infradead.org \
    --cc=schwidefsky@de.ibm.com \
    --cc=sparclinux@vger.kernel.org \
    --cc=virtualization@lists.linux-foundation.org \
    --cc=will.deacon@arm.com \
    --cc=x86@kernel.org \
    --cc=xen-devel@lists.xenproject.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.