Cake - FQ_codel the next generation
 help / color / mirror / Atom feed
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


  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