Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1277943

Re: [PATCH v2 2/2] ARM: Replace calls to __aeabi_{u}idiv with udiv/sdiv instructions

From Måns Rullgård <mans@mansr.com>
Newsgroups linux.kernel
Subject Re: [PATCH v2 2/2] ARM: Replace calls to __aeabi_{u}idiv with udiv/sdiv instructions
Date 2015-11-26 03:30 +0100
Message-ID <qyUtQ-6iR-9@gated-at.bofh.it> (permalink)
References (2 earlier) <qyRFD-4sZ-7@gated-at.bofh.it> <qySim-4XI-9@gated-at.bofh.it> <qySV3-5bm-1@gated-at.bofh.it> <qyT4J-5eH-3@gated-at.bofh.it> <qyTxM-5Gc-13@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


Russell King - ARM Linux <linux@arm.linux.org.uk> writes:

> On Thu, Nov 26, 2015 at 12:50:08AM +0000, Måns Rullgård wrote:
>> If not calling the function saves an I-cache miss, the benefit can be
>> substantial.  No, I have no proof of this being a problem, but it's
>> something that could happen.
>
> That's a simplistic view of modern CPUs.
>
> As I've already said, modern CPUs which have branch prediction, but
> they also have speculative instruction fetching and speculative data
> prefetching - which the CPUs which have idiv support will have.
>
> With such features, the branch predictor is able to learn that the
> branch will be taken, and because of the speculative instruction
> fetching, it can bring the cache line in so that it has the
> instructions it needs with minimal or, if working correctly,
> without stalling the CPU pipeline.

It doesn't matter how many fancy features the CPU has.  Executing more
branches and using more cache lines puts additional pressure on those
resources, reducing overall performance.  Besides, the performance
counters readily show that the prediction is nothing near as perfect as
you seem to believe.

-- 
Måns Rullgård
mans@mansr.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v2 0/2] ARM: Use udiv/sdiv for __aeabi_{u}idiv library functions Stephen Boyd <sboyd@codeaurora.org> - 2015-11-25 23:00 +0100
  [PATCH v2 1/2] scripts: Add a recorduidiv program Stephen Boyd <sboyd@codeaurora.org> - 2015-11-25 23:00 +0100
    Re: [PATCH v2 1/2] scripts: Add a recorduidiv program Russell King - ARM Linux <linux@arm.linux.org.uk> - 2015-11-26 00:50 +0100
      Re: [PATCH v2 1/2] scripts: Add a recorduidiv program Michal Marek <mmarek@suse.com> - 2015-11-30 16:20 +0100
  [PATCH v2 2/2] ARM: Replace calls to __aeabi_{u}idiv with udiv/sdiv instructions Stephen Boyd <sboyd@codeaurora.org> - 2015-11-25 23:00 +0100
    Re: [PATCH v2 2/2] ARM: Replace calls to __aeabi_{u}idiv with  udiv/sdiv instructions Nicolas Pitre <nico@fluxnic.net> - 2015-11-26 00:30 +0100
      Re: [PATCH v2 2/2] ARM: Replace calls to __aeabi_{u}idiv with  udiv/sdiv instructions Russell King - ARM Linux <linux@arm.linux.org.uk> - 2015-11-26 01:10 +0100
      Re: [PATCH v2 2/2] ARM: Replace calls to __aeabi_{u}idiv with udiv/sdiv instructions Måns Rullgård <mans@mansr.com> - 2015-11-26 01:10 +0100
        Re: [PATCH v2 2/2] ARM: Replace calls to __aeabi_{u}idiv with  udiv/sdiv instructions Nicolas Pitre <nico@fluxnic.net> - 2015-11-26 01:50 +0100
          Re: [PATCH v2 2/2] ARM: Replace calls to __aeabi_{u}idiv with udiv/sdiv instructions Måns Rullgård <mans@mansr.com> - 2015-11-26 02:00 +0100
            Re: [PATCH v2 2/2] ARM: Replace calls to __aeabi_{u}idiv with  udiv/sdiv instructions Russell King - ARM Linux <linux@arm.linux.org.uk> - 2015-11-26 02:30 +0100
              Re: [PATCH v2 2/2] ARM: Replace calls to __aeabi_{u}idiv with udiv/sdiv instructions Måns Rullgård <mans@mansr.com> - 2015-11-26 03:30 +0100
                Re: [PATCH v2 2/2] ARM: Replace calls to __aeabi_{u}idiv with  udiv/sdiv instructions Nicolas Pitre <nico@fluxnic.net> - 2015-11-26 06:40 +0100
                Re: [PATCH v2 2/2] ARM: Replace calls to __aeabi_{u}idiv with udiv/sdiv instructions Måns Rullgård <mans@mansr.com> - 2015-11-26 13:50 +0100
    Re: [PATCH v2 2/2] ARM: Replace calls to __aeabi_{u}idiv with  udiv/sdiv instructions Russell King - ARM Linux <linux@arm.linux.org.uk> - 2015-11-26 01:10 +0100

csiph-web