mbox series

[SRU,artful] LP#1758856 -- retpoline hinting support

Message ID 20180326150807.GF4775@brain
State New
Headers show
Series [SRU,artful] LP#1758856 -- retpoline hinting support | expand

Pull-request

git://git.launchpad.net/~apw/ubuntu/+source/linux/+git/review retpoline-hints/artful

Message

Andy Whitcroft March 26, 2018, 3:08 p.m. UTC
We have been having horrible problems with the retpoline information as
recorded in the ABI changing on every update.  The below pull-request
brings in some new support utilising the upstream retpoline annotations.
As well as bringing in some new annotations where needed.

This should in time bring us to the situation where the retpoline
information for every branch is empty.  Where unannotated entries remain
they are in review and will be coverered off in later updates.  These
are not regressions.

Proposing for SRU to artful.

-apw


The following changes since commit 23155b1c4c2fb5eececde1750aa9ba44a5da614b:

  UBUNTU: Ubuntu-4.13.0-38.43 (2018-03-14 12:45:35 +0100)

are available in the Git repository at:

  git://git.launchpad.net/~apw/ubuntu/+source/linux/+git/review retpoline-hints/artful

for you to fetch changes up to 66fe0d8b3604a397c2eef54f9d6058c8b326ccf8:

  UBUNTU: [Config] retpoine -- switch to new format (2018-03-26 11:48:31 +0100)

----------------------------------------------------------------
  * retpoline hints: primary infrastructure and initial hints (LP: #1758856)
    - [Packaging] retpoline-extract: flag *0xNNN(%reg) branches
    - x86/speculation, objtool: Annotate indirect calls/jumps for objtool
    - x86/speculation, objtool: Annotate indirect calls/jumps for objtool on 32bit
    - x86/paravirt, objtool: Annotate indirect calls
    - [Packaging] retpoline -- add safe usage hint support
    - [Packaging] retpoline-check -- only report additions
    - [Packaging] retpoline -- widen indirect call/jmp detection
    - [Packaging] retpoline -- elide %rip relative indirections
    - [Packaging] retpoline -- clear hint information from packages
    - KVM: x86: Make indirect calls in emulator speculation safe
    - KVM: VMX: Make indirect call speculation safe
    - x86/boot, objtool: Annotate indirect jump in secondary_startup_64()
    - SAUCE: early/late -- annotate indirect calls in early/late initialisation
      code
    - SAUCE: vga_set_mode -- avoid jump tables
    - [Config] retpoine -- switch to new format

  * retpoline: ignore %cs:0xNNN constant indirections (LP: #1752655)
    - [Packaging] retpoline -- elide %cs:0xNNNN constants on i386

Comments

Stefan Bader April 5, 2018, 8:22 a.m. UTC | #1
On 26.03.2018 17:08, Andy Whitcroft wrote:
> We have been having horrible problems with the retpoline information as
> recorded in the ABI changing on every update.  The below pull-request
> brings in some new support utilising the upstream retpoline annotations.
> As well as bringing in some new annotations where needed.
> 
> This should in time bring us to the situation where the retpoline
> information for every branch is empty.  Where unannotated entries remain
> they are in review and will be coverered off in later updates.  These
> are not regressions.
> 
> Proposing for SRU to artful.
> 
> -apw
> 
> 
> The following changes since commit 23155b1c4c2fb5eececde1750aa9ba44a5da614b:
> 
>   UBUNTU: Ubuntu-4.13.0-38.43 (2018-03-14 12:45:35 +0100)
> 
> are available in the Git repository at:
> 
>   git://git.launchpad.net/~apw/ubuntu/+source/linux/+git/review retpoline-hints/artful
> 
> for you to fetch changes up to 66fe0d8b3604a397c2eef54f9d6058c8b326ccf8:
> 
>   UBUNTU: [Config] retpoine -- switch to new format (2018-03-26 11:48:31 +0100)
> 
> ----------------------------------------------------------------
>   * retpoline hints: primary infrastructure and initial hints (LP: #1758856)
>     - [Packaging] retpoline-extract: flag *0xNNN(%reg) branches
>     - x86/speculation, objtool: Annotate indirect calls/jumps for objtool
>     - x86/speculation, objtool: Annotate indirect calls/jumps for objtool on 32bit
>     - x86/paravirt, objtool: Annotate indirect calls
>     - [Packaging] retpoline -- add safe usage hint support
>     - [Packaging] retpoline-check -- only report additions
>     - [Packaging] retpoline -- widen indirect call/jmp detection
>     - [Packaging] retpoline -- elide %rip relative indirections
>     - [Packaging] retpoline -- clear hint information from packages
>     - KVM: x86: Make indirect calls in emulator speculation safe
>     - KVM: VMX: Make indirect call speculation safe
>     - x86/boot, objtool: Annotate indirect jump in secondary_startup_64()
>     - SAUCE: early/late -- annotate indirect calls in early/late initialisation
>       code
>     - SAUCE: vga_set_mode -- avoid jump tables
>     - [Config] retpoine -- switch to new format
> 
>   * retpoline: ignore %cs:0xNNN constant indirections (LP: #1752655)
>     - [Packaging] retpoline -- elide %cs:0xNNNN constants on i386
> 

Seems to be plausible. Needs refresh to match re-named files, though.

Acked-by: Stefan Bader <stefan.bader@canonical.com>
Kleber Sacilotto de Souza April 5, 2018, 8:28 a.m. UTC | #2
On 03/26/18 17:08, Andy Whitcroft wrote:
> We have been having horrible problems with the retpoline information as
> recorded in the ABI changing on every update.  The below pull-request
> brings in some new support utilising the upstream retpoline annotations.
> As well as bringing in some new annotations where needed.
> 
> This should in time bring us to the situation where the retpoline
> information for every branch is empty.  Where unannotated entries remain
> they are in review and will be coverered off in later updates.  These
> are not regressions.
> 
> Proposing for SRU to artful.
> 
> -apw
> 
> 
> The following changes since commit 23155b1c4c2fb5eececde1750aa9ba44a5da614b:
> 
>   UBUNTU: Ubuntu-4.13.0-38.43 (2018-03-14 12:45:35 +0100)
> 
> are available in the Git repository at:
> 
>   git://git.launchpad.net/~apw/ubuntu/+source/linux/+git/review retpoline-hints/artful
> 
> for you to fetch changes up to 66fe0d8b3604a397c2eef54f9d6058c8b326ccf8:
> 
>   UBUNTU: [Config] retpoine -- switch to new format (2018-03-26 11:48:31 +0100)
> 
> ----------------------------------------------------------------
>   * retpoline hints: primary infrastructure and initial hints (LP: #1758856)
>     - [Packaging] retpoline-extract: flag *0xNNN(%reg) branches
>     - x86/speculation, objtool: Annotate indirect calls/jumps for objtool
>     - x86/speculation, objtool: Annotate indirect calls/jumps for objtool on 32bit

This commit has hit upstream with sha1
a14bff131108faf50cc0cf864589fd71ee216c96. We can fix the commit while
applying the patch.

>     - x86/paravirt, objtool: Annotate indirect calls
>     - [Packaging] retpoline -- add safe usage hint support
>     - [Packaging] retpoline-check -- only report additions
>     - [Packaging] retpoline -- widen indirect call/jmp detection
>     - [Packaging] retpoline -- elide %rip relative indirections
>     - [Packaging] retpoline -- clear hint information from packages
>     - KVM: x86: Make indirect calls in emulator speculation safe
>     - KVM: VMX: Make indirect call speculation safe
>     - x86/boot, objtool: Annotate indirect jump in secondary_startup_64()
>     - SAUCE: early/late -- annotate indirect calls in early/late initialisation
>       code
>     - SAUCE: vga_set_mode -- avoid jump tables
>     - [Config] retpoine -- switch to new format

There's a typo on the commit title, which can also be fixed.

> 
>   * retpoline: ignore %cs:0xNNN constant indirections (LP: #1752655)
>     - [Packaging] retpoline -- elide %cs:0xNNNN constants on i386
> 

Acked-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
Kleber Sacilotto de Souza April 5, 2018, 8:48 a.m. UTC | #3
On 03/26/18 17:08, Andy Whitcroft wrote:
> We have been having horrible problems with the retpoline information as
> recorded in the ABI changing on every update.  The below pull-request
> brings in some new support utilising the upstream retpoline annotations.
> As well as bringing in some new annotations where needed.
> 
> This should in time bring us to the situation where the retpoline
> information for every branch is empty.  Where unannotated entries remain
> they are in review and will be coverered off in later updates.  These
> are not regressions.
> 
> Proposing for SRU to artful.
> 
> -apw
> 
> 
> The following changes since commit 23155b1c4c2fb5eececde1750aa9ba44a5da614b:
> 
>   UBUNTU: Ubuntu-4.13.0-38.43 (2018-03-14 12:45:35 +0100)
> 
> are available in the Git repository at:
> 
>   git://git.launchpad.net/~apw/ubuntu/+source/linux/+git/review retpoline-hints/artful
> 
> for you to fetch changes up to 66fe0d8b3604a397c2eef54f9d6058c8b326ccf8:
> 
>   UBUNTU: [Config] retpoine -- switch to new format (2018-03-26 11:48:31 +0100)
> 

Applied to artful/master-next branch, with the following fixups:

> ----------------------------------------------------------------
>   * retpoline hints: primary infrastructure and initial hints (LP: #1758856)
>     - [Packaging] retpoline-extract: flag *0xNNN(%reg) branches
>     - x86/speculation, objtool: Annotate indirect calls/jumps for objtool
>     - x86/speculation, objtool: Annotate indirect calls/jumps for objtool on 32bit

Changed the commit message for the upstream one, and added a reference
to the upstream sha1.

>     - x86/paravirt, objtool: Annotate indirect calls
>     - [Packaging] retpoline -- add safe usage hint support
>     - [Packaging] retpoline-check -- only report additions
>     - [Packaging] retpoline -- widen indirect call/jmp detection
>     - [Packaging] retpoline -- elide %rip relative indirections
>     - [Packaging] retpoline -- clear hint information from packages
>     - KVM: x86: Make indirect calls in emulator speculation safe
>     - KVM: VMX: Make indirect call speculation safe
>     - x86/boot, objtool: Annotate indirect jump in secondary_startup_64()
>     - SAUCE: early/late -- annotate indirect calls in early/late initialisation
>       code
>     - SAUCE: vga_set_mode -- avoid jump tables
>     - [Config] retpoine -- switch to new format

Applied with the refreshed files from the new ABI and fixed the typo on
the commit subject.

> 
>   * retpoline: ignore %cs:0xNNN constant indirections (LP: #1752655)
>     - [Packaging] retpoline -- elide %cs:0xNNNN constants on i386
> 



Thanks,
Kleber