-

   rss_rss_hh_new

 - e-mail

 

 -

 LiveInternet.ru:
: 17.03.2011
:
:
: 51

:


[] Intel Skylake

, 06 2017 . 15:24 +
, . ? Windows! ? Java ! , , , , . . Intel Skylake, OCaml.


2016 OCaml 4.03.0 OCaml () : , OCaml OCaml 4.03.0, . , segfault, . , , Intel Skylake (Skylake Intel. Kaby Lake).

25 OCaml, . Skylake? , Inria, Intel. ? I/O, , , segfault, .

, : ? ? , - GUI, . , , Hyper-Threading. HT Skylake AVX, HT (. ).

. (), CPU /, , OCaml. , , , . . - , , HT . ( , ).

OCaml, C, OCaml, . . OCaml 4.03, , 4.02.3. GCC, Clang. Linux Windows, MacOS. MacOS Clang Windows- GCC, OCaml 4.03 GCC.

, : , OCaml4.03 , - GCC , C . , GCC . , . .

, . GCC - , - . , , Address Space Layout Randomization (ASLR) , . OCaml - , -. ASLR, , GDB.

2016 , , Skylake. OCaml 4.03 ( ) OCaml. , . , GDB ( , ), OCaml, 1000 .

OCaml , . 30 segfault , OCaml GC, . 50% mark_slice OCaml. OCaml : , , Caml, Caml, ( ). 15 mark_slice 4.

, , mark_slice . , . , OCaml !

, , : !. , , , . OCaml N . OCaml, . , , :

/>
N
1 3+epsilon 0 0
2 4+epsilon 1 3
4 6+epsilon 12 failures 19 failures
8 10+epsilon 17 23
16 18+epsilon 16




1000 . $N = 2$ $N = 4$? $N$? , Skylake. 4 8 , HT. ( ), . , $2 + N + epsilon$, $N$ , .

, , . $N=1$, $N=2$. 4, HT, . $N=4$. 8 , . $N=8$ $N=16$.

, Hyper-Threading, , , OCaml ( ) .

, , . HT . : .

? ! ? . , Intel - , , OCaml c Clang, !. , , ( Intel -, ), , (, , ).


2016- , , (sky, , Skylake ) - OCaml 4.03, ( ).

, 6 2017 Ahrefs ( OCaml, Caml ) OCaml 4.03.0: PR#7452 - Caml.

ocamlopt.opt , . , ocamlopt.opt OCaml, ocamlopt.byte, .

PR#7452 , , Ahrefs . .

  • 12 , 19 , , , , Intel Skylake.
  • (Hyper-Threading).
  • , Hyper-Threading.
  • , OCaml gcc -O2, gcc -O1. , OCaml OCaml 4.02, gcc -O1.
  • :
    , gcc -O2 OCaml 4.03 , (- ) Skylake Hyper-Threading? , . , Hyper-Threading Skylake ()
  • Intel .

5 ,


26 2017 "ygrek" Debian:

* New upstream microcode datafile 20170511 [...]
* Likely fix nightmare-level Skylake erratum SKL150. Fortunately,
either this erratum is very-low-hitting, or gcc/clang/icc/msvc
won't usually issue the affected opcode pattern and it ends up
being rare.
SKL150 - Short loops using both the AH/BH/CH/DH registers and
the corresponding wide register *may* result in unpredictable
system behavior. Requires both logical processors of the same
core (i.e. sibling hyperthreads) to be active to trigger, as
well as a "complex set of micro-architectural conditions"


SKL150 Intel 2017 65 Intel 6- . SKW144, SKX150, SKZ7 Skylake KBL095, KBW095 Kaby Lake. Intel, .

( , !) : Hyper-Threading? ! ? ! , ? ! , , , Debian . , . Skylake ( Inria) , , 10 , 2,5 .

, SKL150 . , , , GCC OCaml. , byterun/major_gc.c sweep_slice C:

hd = Hd_hp (hp);
/*...*/
Hd_hp (hp) = Whitehd_hd (hd);

:

hd = *hp;
/*...*/
*hp = hd & ~0x300;

Clang , :

movq    (%rbx), %rax
[...]
andq    $-769, %rax             # imm = 0xFFFFFFFFFFFFFCFF
movq    %rax, (%rbx)

GCC 8- %ah 8 15 %rax, :

movq    (%rdi), %rax
[...]
andb    $252, %ah
movq    %rax, (%rdi)

. GCC , : 8- $252 , 32-, 64 , $-769 4 . , GCC %rax, %ah , , , , SKL150.

, , - . !


Intel Skylake Kaby Lake, . Debian , .

, OCaml . , Lwt, Coq Coccinelle.

, , Ars Technica, HotHardware, Tom's Hardware Hacker's News [ GeekTimes ..].
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/332552/

:  

: [1] []
 

:
: 

: ( )

:

  URL