From: Jonathan Morton <chromatix99@gmail.com>
To: Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk>
Cc: cake@lists.bufferbloat.net
Subject: Re: [Cake] de-natting & host fairness
Date: Wed, 28 Sep 2016 06:49:50 +0300 [thread overview]
Message-ID: <55B501FC-5370-44DA-93EC-37EBF20AB747@gmail.com> (raw)
In-Reply-To: <d244f790-8ce4-1c02-f43f-03bc20943d07@darbyshire-bryant.me.uk>
> On 28 Sep, 2016, at 06:33, Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk> wrote:
>
> those ternaries are if/else in disguise...
Many CPUs can handle those as conditional moves without branching - including ARM in particular; near-universal conditional execution was one of its original headline features. Most x86 CPUs (except very old ones) and some of the embedded-class PowerPCs (which are often found in “big” network appliances) also qualify. Unswitching those would potentially be a retrograde step on those CPUs.
However the presence of a conditional function call suggests that unswitching would not in fact be harmful, except for some duplication of source code - since the branch has to be made anyway. I think many compilers would be able to perform the loads before the branch and the stores after it, which would execute very slickly, while some CPUs do not execute large numbers of conditional moves very efficiently.
- Jonathan Morton
next prev parent reply other threads:[~2016-09-28 3:49 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-26 3:20 Kevin Darbyshire-Bryant
2016-09-26 3:54 ` Dave Taht
2016-09-26 5:11 ` Dave Taht
2016-09-26 8:54 ` moeller0
2016-09-26 13:02 ` Kevin Darbyshire-Bryant
2016-09-26 13:28 ` moeller0
2016-09-26 14:06 ` Kevin Darbyshire-Bryant
2016-09-26 14:30 ` Jonathan Morton
2016-09-26 15:23 ` moeller0
2016-09-27 1:52 ` Noah Causin
2016-09-27 2:32 ` Kevin Darbyshire-Bryant
2016-09-27 4:20 ` Noah Causin
2016-09-27 14:52 ` Noah Causin
2016-09-27 15:28 ` Kevin Darbyshire-Bryant
2016-09-27 20:40 ` Noah Causin
2016-09-27 20:44 ` Jonathan Morton
[not found] ` <CAA93jw6rPE8aAGEiqf7jp3hc1J0ThrVer8PFmFLPBqANdtEixg@mail.gmail.com>
2016-09-27 20:58 ` Noah Causin
2016-09-28 4:38 ` Kevin Darbyshire-Bryant
2016-09-28 5:08 ` Noah Causin
2016-09-27 23:08 ` Jonathan Morton
2016-09-28 2:56 ` Kevin Darbyshire-Bryant
2016-09-28 3:06 ` Jonathan Morton
2016-09-28 3:33 ` Kevin Darbyshire-Bryant
2016-09-28 3:49 ` Jonathan Morton [this message]
2016-09-28 6:07 ` Kevin Darbyshire-Bryant
2016-09-28 11:08 ` Kevin Darbyshire-Bryant
2016-09-28 11:49 ` Dave Taht
2016-09-28 14:11 ` Kevin Darbyshire-Bryant
2016-09-28 5:56 ` Sebastian Moeller
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
List information: https://lists.bufferbloat.net/postorius/lists/cake.lists.bufferbloat.net/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=55B501FC-5370-44DA-93EC-37EBF20AB747@gmail.com \
--to=chromatix99@gmail.com \
--cc=cake@lists.bufferbloat.net \
--cc=kevin@darbyshire-bryant.me.uk \
/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