ceph 15.2.2, CET enable src/common/crc32c_intel_*_asm.s; shstk, ibt
and other fixes see https://github.com/intel/isa-l/blob/master/crc/crc32_iscsi_00.asm Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
This commit is contained in:
parent
21ae44b9d8
commit
5c46ad7f7e
@ -1,63 +1,5 @@
|
||||
--- ceph-15.1.0/src/common/crc32c_intel_fast_asm.s.orig 2020-03-04 14:37:33.431024436 -0500
|
||||
+++ ceph-15.1.0/src/common/crc32c_intel_fast_asm.s 2020-03-04 15:11:22.859388783 -0500
|
||||
@@ -40,6 +40,7 @@
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
+
|
||||
; crcB3 MACRO to implement crc32 on 3 %%bSize-byte blocks
|
||||
%macro crcB3 3
|
||||
%define %%bSize %1 ; 1/3 of buffer size
|
||||
@@ -672,3 +673,22 @@
|
||||
; inform linker that this doesn't require executable stack
|
||||
section .note.GNU-stack noalloc noexec nowrite progbits
|
||||
%endif
|
||||
+
|
||||
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
+
|
||||
+SECTION .note.gnu.property align=8 noexec ; section number 22, const
|
||||
+
|
||||
+ db 04H, 00H, 00H, 00H, 20H, 00H, 00H, 00H ; 0000 _ .... ...
|
||||
+ db 05H, 00H, 00H, 00H, 47H, 4EH, 55H, 00H ; 0008 _ ....GNU.
|
||||
+ db 00H, 00H, 00H, 0C0H, 04H, 00H, 00H, 00H ; 0010 _ ........
|
||||
+ db 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ; 0018 _ ........
|
||||
+ db 01H, 00H, 00H, 0C0H, 04H, 00H, 00H, 00H ; 0020 _ ........
|
||||
+ db 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ; 0028 _ ........
|
||||
+ db 04H, 00H, 00H, 00H, 10H, 00H, 00H, 00H ; 0030 _ ........
|
||||
+ db 05H, 00H, 00H, 00H, 47H, 4EH, 55H, 00H ; 0038 _ ....GNU.
|
||||
+ db 02H, 00H, 00H, 0C0H, 04H, 00H, 00H, 00H ; 0040 _ ........
|
||||
+ db 03H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ; 0048 _ ........
|
||||
+
|
||||
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
--- ceph-15.1.0/src/common/crc32c_intel_fast_zero_asm.s.orig 2020-03-04 15:13:06.577071783 -0500
|
||||
+++ ceph-15.1.0/src/common/crc32c_intel_fast_zero_asm.s 2020-03-04 15:13:49.873356953 -0500
|
||||
@@ -654,3 +654,22 @@
|
||||
; inform linker that this doesn't require executable stack
|
||||
section .note.GNU-stack noalloc noexec nowrite progbits
|
||||
%endif
|
||||
+
|
||||
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
+
|
||||
+SECTION .note.gnu.property align=8 noexec ; section number 22, const
|
||||
+
|
||||
+ db 04H, 00H, 00H, 00H, 20H, 00H, 00H, 00H ; 0000 _ .... ...
|
||||
+ db 05H, 00H, 00H, 00H, 47H, 4EH, 55H, 00H ; 0008 _ ....GNU.
|
||||
+ db 00H, 00H, 00H, 0C0H, 04H, 00H, 00H, 00H ; 0010 _ ........
|
||||
+ db 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ; 0018 _ ........
|
||||
+ db 01H, 00H, 00H, 0C0H, 04H, 00H, 00H, 00H ; 0020 _ ........
|
||||
+ db 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ; 0028 _ ........
|
||||
+ db 04H, 00H, 00H, 00H, 10H, 00H, 00H, 00H ; 0030 _ ........
|
||||
+ db 05H, 00H, 00H, 00H, 47H, 4EH, 55H, 00H ; 0038 _ ....GNU.
|
||||
+ db 02H, 00H, 00H, 0C0H, 04H, 00H, 00H, 00H ; 0040 _ ........
|
||||
+ db 03H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ; 0048 _ ........
|
||||
+
|
||||
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
--- ceph-15.1.0/src/yasm-wrapper.orig 2020-03-09 12:57:37.603837466 -0400
|
||||
+++ ceph-15.1.0/src/yasm-wrapper 2020-03-09 13:02:31.496796609 -0400
|
||||
--- ceph-15.2.2/src/yasm-wrapper.orig 2020-03-09 12:57:37.603837466 -0400
|
||||
+++ ceph-15.2.2/src/yasm-wrapper 2020-03-09 13:02:31.496796609 -0400
|
||||
@@ -1,10 +1,11 @@
|
||||
-#!/bin/sh -e
|
||||
+#!/bin/sh
|
||||
@ -110,3 +52,249 @@
|
||||
[ -n "$touch" ] && touch $touch
|
||||
|
||||
true
|
||||
--- ceph-15.2.2/src/common/crc32c_intel_fast_asm.s.orig 2020-05-26 08:34:32.226201974 -0400
|
||||
+++ ceph-15.2.2/src/common/crc32c_intel_fast_asm.s 2020-05-26 09:25:55.528201974 -0400
|
||||
@@ -1,5 +1,5 @@
|
||||
;
|
||||
-; Copyright 2012-2013 Intel Corporation All Rights Reserved.
|
||||
+; Copyright 2012-2015 Intel Corporation All Rights Reserved.
|
||||
; All rights reserved.
|
||||
;
|
||||
; http://opensource.org/licenses/BSD-3-Clause
|
||||
@@ -59,16 +59,34 @@
|
||||
xor rbx, rbx ;; rbx = crc1 = 0;
|
||||
xor r10, r10 ;; r10 = crc2 = 0;
|
||||
|
||||
+ cmp len, %%bSize*3*2
|
||||
+ jbe %%non_prefetch
|
||||
+
|
||||
%assign i 0
|
||||
%rep %%bSize/8 - 1
|
||||
- crc32 rax, [bufptmp+i + 0*%%bSize] ;; update crc0
|
||||
- crc32 rbx, [bufptmp+i + 1*%%bSize] ;; update crc1
|
||||
- crc32 r10, [bufptmp+i + 2*%%bSize] ;; update crc2
|
||||
+ %if i < %%bSize*3/4
|
||||
+ prefetchnta [bufptmp+ %%bSize*3 + i*4]
|
||||
+ %endif
|
||||
+ crc32 rax, qword [bufptmp+i + 0*%%bSize] ;; update crc0
|
||||
+ crc32 rbx, qword [bufptmp+i + 1*%%bSize] ;; update crc1
|
||||
+ crc32 r10, qword [bufptmp+i + 2*%%bSize] ;; update crc2
|
||||
%assign i (i+8)
|
||||
%endrep
|
||||
- crc32 rax, [bufptmp+i + 0*%%bSize] ;; update crc0
|
||||
- crc32 rbx, [bufptmp+i + 1*%%bSize] ;; update crc1
|
||||
-; SKIP ;crc32 r10, [bufptmp+i + 2*%%bSize] ;; update crc2
|
||||
+ jmp %%next %+ %1
|
||||
+
|
||||
+%%non_prefetch:
|
||||
+ %assign i 0
|
||||
+ %rep %%bSize/8 - 1
|
||||
+ crc32 rax, qword [bufptmp+i + 0*%%bSize] ;; update crc0
|
||||
+ crc32 rbx, qword [bufptmp+i + 1*%%bSize] ;; update crc1
|
||||
+ crc32 r10, qword [bufptmp+i + 2*%%bSize] ;; update crc2
|
||||
+ %assign i (i+8)
|
||||
+ %endrep
|
||||
+
|
||||
+%%next %+ %1:
|
||||
+ crc32 rax, qword [bufptmp+i + 0*%%bSize] ;; update crc0
|
||||
+ crc32 rbx, qword [bufptmp+i + 1*%%bSize] ;; update crc1
|
||||
+; SKIP ;crc32 r10, qword [bufptmp+i + 2*%%bSize] ;; update crc2
|
||||
|
||||
; merge in crc0
|
||||
movzx bufp_dw, al
|
||||
@@ -180,12 +198,15 @@
|
||||
%define crc_init_dw r8d
|
||||
%endif
|
||||
|
||||
-
|
||||
+ endbranch
|
||||
push rdi
|
||||
push rbx
|
||||
|
||||
mov rax, crc_init ;; rax = crc_init;
|
||||
|
||||
+ cmp len, 8
|
||||
+ jb less_than_8
|
||||
+
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; 1) ALIGN: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
@@ -195,9 +216,6 @@
|
||||
;; amount of the address
|
||||
je proc_block ;; Skip if aligned
|
||||
|
||||
- cmp len, 8
|
||||
- jb less_than_8
|
||||
-
|
||||
;;;; Calculate CRC of unaligned bytes of the buffer (if any) ;;;;
|
||||
mov rbx, [bufptmp] ;; load a quadword from the buffer
|
||||
add bufptmp, bufp ;; align buffer pointer for
|
||||
@@ -217,7 +235,7 @@
|
||||
cmp len, 240
|
||||
jb bit8
|
||||
|
||||
- lea crc_init, [mul_table_72 wrt rip] ;; load table base address
|
||||
+ lea crc_init, [mul_table_72] ;; load table base address
|
||||
|
||||
crcB3 640, 0x1000, 0x0c00 ; 640*3 = 1920 (Tables 1280, 640)
|
||||
crcB3 320, 0x0c00, 0x0800 ; 320*3 = 960 (Tables 640, 320)
|
||||
@@ -233,7 +251,7 @@
|
||||
jnc bit7 ;; jump to bit-6 if bit-7 == 0
|
||||
%assign i 0
|
||||
%rep 16
|
||||
- crc32 rax, [bufptmp+i] ;; compute crc32 of 8-byte data
|
||||
+ crc32 rax, qword [bufptmp+i] ;; compute crc32 of 8-byte data
|
||||
%assign i (i+8)
|
||||
%endrep
|
||||
je do_return ;; return if remaining data is zero
|
||||
@@ -244,7 +262,7 @@
|
||||
jnc bit6 ;; jump to bit-6 if bit-7 == 0
|
||||
%assign i 0
|
||||
%rep 8
|
||||
- crc32 rax, [bufptmp+i] ;; compute crc32 of 8-byte data
|
||||
+ crc32 rax, qword [bufptmp+i] ;; compute crc32 of 8-byte data
|
||||
%assign i (i+8)
|
||||
%endrep
|
||||
je do_return ;; return if remaining data is zero
|
||||
@@ -254,7 +272,7 @@
|
||||
jnc bit5 ;; jump to bit-5 if bit-6 == 0
|
||||
%assign i 0
|
||||
%rep 4
|
||||
- crc32 rax, [bufptmp+i] ;; compute crc32 of 8-byte data
|
||||
+ crc32 rax, qword [bufptmp+i] ;; compute crc32 of 8-byte data
|
||||
%assign i (i+8)
|
||||
%endrep
|
||||
je do_return ;; return if remaining data is zero
|
||||
@@ -264,7 +282,7 @@
|
||||
jnc bit4 ;; jump to bit-4 if bit-5 == 0
|
||||
%assign i 0
|
||||
%rep 2
|
||||
- crc32 rax, [bufptmp+i] ;; compute crc32 of 8-byte data
|
||||
+ crc32 rax, qword [bufptmp+i] ;; compute crc32 of 8-byte data
|
||||
%assign i (i+8)
|
||||
%endrep
|
||||
je do_return ;; return if remaining data is zero
|
||||
@@ -272,11 +290,11 @@
|
||||
bit4:
|
||||
shl len_b, 1 ;; shift-out MSB (bit-4)
|
||||
jnc bit3 ;; jump to bit-3 if bit-4 == 0
|
||||
- crc32 rax, [bufptmp] ;; compute crc32 of 8-byte data
|
||||
+ crc32 rax, qword [bufptmp] ;; compute crc32 of 8-byte data
|
||||
je do_return ;; return if remaining data is zero
|
||||
add bufptmp, 8 ;; buf +=8; (next 8 bytes)
|
||||
bit3:
|
||||
- mov rbx, [bufptmp] ;; load a 8-bytes from the buffer:
|
||||
+ mov rbx, qword [bufptmp] ;; load a 8-bytes from the buffer:
|
||||
shl len_b, 1 ;; shift-out MSB (bit-3)
|
||||
jnc bit2 ;; jump to bit-2 if bit-3 == 0
|
||||
crc32 eax, ebx ;; compute crc32 of 4-byte data
|
||||
@@ -672,3 +690,22 @@
|
||||
; inform linker that this doesn't require executable stack
|
||||
section .note.GNU-stack noalloc noexec nowrite progbits
|
||||
%endif
|
||||
+
|
||||
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
+
|
||||
+SECTION .note.gnu.property align=8 noexec ; section number 22, const
|
||||
+
|
||||
+ db 04H, 00H, 00H, 00H, 20H, 00H, 00H, 00H ; 0000 _ .... ...
|
||||
+ db 05H, 00H, 00H, 00H, 47H, 4EH, 55H, 00H ; 0008 _ ....GNU.
|
||||
+ db 00H, 00H, 00H, 0C0H, 04H, 00H, 00H, 00H ; 0010 _ ........
|
||||
+ db 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ; 0018 _ ........
|
||||
+ db 01H, 00H, 00H, 0C0H, 04H, 00H, 00H, 00H ; 0020 _ ........
|
||||
+ db 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ; 0028 _ ........
|
||||
+ db 04H, 00H, 00H, 00H, 10H, 00H, 00H, 00H ; 0030 _ ........
|
||||
+ db 05H, 00H, 00H, 00H, 47H, 4EH, 55H, 00H ; 0038 _ ....GNU.
|
||||
+ db 02H, 00H, 00H, 0C0H, 04H, 00H, 00H, 00H ; 0040 _ ........
|
||||
+ db 03H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ; 0048 _ ........
|
||||
+
|
||||
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
--- ceph-15.2.2/src/common/crc32c_intel_fast_zero_asm.s.orig 2020-05-26 08:34:32.226201974 -0400
|
||||
+++ ceph-15.2.2/src/common/crc32c_intel_fast_zero_asm.s 2020-05-26 09:19:55.571201974 -0400
|
||||
@@ -1,5 +1,5 @@
|
||||
;
|
||||
-; Copyright 2012-2013 Intel Corporation All Rights Reserved.
|
||||
+; Copyright 2012-2015 Intel Corporation All Rights Reserved.
|
||||
; All rights reserved.
|
||||
;
|
||||
; http://opensource.org/licenses/BSD-3-Clause
|
||||
@@ -59,6 +59,19 @@
|
||||
xor rbx, rbx ;; rbx = crc1 = 0;
|
||||
xor r10, r10 ;; r10 = crc2 = 0;
|
||||
|
||||
+ cmp len, %%bSize*3*2
|
||||
+ jbe %%non_prefetch
|
||||
+
|
||||
+ %assign i 0
|
||||
+ %rep %%bSize/8 - 1
|
||||
+ crc32 rax, bufptmp ;; update crc0
|
||||
+ crc32 rbx, bufptmp ;; update crc1
|
||||
+ crc32 r10, bufptmp ;; update crc2
|
||||
+ %assign i (i+8)
|
||||
+ %endrep
|
||||
+ jmp %%next %+ %1
|
||||
+
|
||||
+%%non_prefetch:
|
||||
%assign i 0
|
||||
%rep %%bSize/8 - 1
|
||||
crc32 rax, bufptmp ;; update crc0
|
||||
@@ -66,6 +79,8 @@
|
||||
crc32 r10, bufptmp ;; update crc2
|
||||
%assign i (i+8)
|
||||
%endrep
|
||||
+
|
||||
+%%next %+ %1:
|
||||
crc32 rax, bufptmp ;; update crc0
|
||||
crc32 rbx, bufptmp ;; update crc1
|
||||
; SKIP ;crc32 r10, bufptmp ;; update crc2
|
||||
@@ -180,12 +195,15 @@
|
||||
%define crc_init_dw r8d
|
||||
%endif
|
||||
|
||||
-
|
||||
+ endbranch
|
||||
push rdi
|
||||
push rbx
|
||||
|
||||
mov rax, crc_init ;; rax = crc_init;
|
||||
|
||||
+ cmp len, 8
|
||||
+ jb less_than_8
|
||||
+
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; 1) ALIGN: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
@@ -199,7 +217,7 @@
|
||||
cmp len, 240
|
||||
jb bit8
|
||||
|
||||
- lea crc_init, [mul_table_72 wrt rip] ;; load table base address
|
||||
+ lea crc_init, [mul_table_72] ;; load table base address
|
||||
|
||||
crcB3 640, 0x1000, 0x0c00 ; 640*3 = 1920 (Tables 1280, 640)
|
||||
crcB3 320, 0x0c00, 0x0800 ; 320*3 = 960 (Tables 640, 320)
|
||||
@@ -654,3 +672,22 @@
|
||||
; inform linker that this doesn't require executable stack
|
||||
section .note.GNU-stack noalloc noexec nowrite progbits
|
||||
%endif
|
||||
+
|
||||
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
+
|
||||
+SECTION .note.gnu.property align=8 noexec ; section number 22, const
|
||||
+
|
||||
+ db 04H, 00H, 00H, 00H, 20H, 00H, 00H, 00H ; 0000 _ .... ...
|
||||
+ db 05H, 00H, 00H, 00H, 47H, 4EH, 55H, 00H ; 0008 _ ....GNU.
|
||||
+ db 00H, 00H, 00H, 0C0H, 04H, 00H, 00H, 00H ; 0010 _ ........
|
||||
+ db 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ; 0018 _ ........
|
||||
+ db 01H, 00H, 00H, 0C0H, 04H, 00H, 00H, 00H ; 0020 _ ........
|
||||
+ db 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ; 0028 _ ........
|
||||
+ db 04H, 00H, 00H, 00H, 10H, 00H, 00H, 00H ; 0030 _ ........
|
||||
+ db 05H, 00H, 00H, 00H, 47H, 4EH, 55H, 00H ; 0038 _ ....GNU.
|
||||
+ db 02H, 00H, 00H, 0C0H, 04H, 00H, 00H, 00H ; 0040 _ ........
|
||||
+ db 03H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ; 0048 _ ........
|
||||
+
|
||||
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
@ -104,7 +104,7 @@
|
||||
#################################################################################
|
||||
Name: ceph
|
||||
Version: 15.2.2
|
||||
Release: 1%{?dist}
|
||||
Release: 2%{?dist}
|
||||
%if 0%{?fedora} || 0%{?rhel}
|
||||
Epoch: 2
|
||||
%endif
|
||||
@ -2362,6 +2362,11 @@ exit 0
|
||||
%config %{_sysconfdir}/prometheus/ceph/ceph_default_alerts.yml
|
||||
|
||||
%changelog
|
||||
* Tue May 26 2020 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:15.2.2-2
|
||||
- ceph 15.2.2, CET enable src/common/crc32c_intel_*_asm.s; shstk, ibt
|
||||
- and other fixes
|
||||
- see https://github.com/intel/isa-l/blob/master/crc/crc32_iscsi_00.asm
|
||||
|
||||
* Mon May 18 2020 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:15.2.2-1
|
||||
- ceph 15.2.2 GA
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user