얼마나 심각할지는 아직 확실하진 않지만
예상된 대로라면 애플 이상의 파장이 아닐까요
이거랑 관련있는진 모르겠는데
들려오는 소문으로는 이전부터 회사 내부 분위기가 바닥을 치고있었다더라구요....
마모에 인텔에 계신분 있지않나요?
짤방요정실프님 인텔에서 일하시지 않나요? @shilph
https://www.slashgear.com/intels-bug-response-its-not-just-us-03513499/
ARM Cortex-A 계열도 버그가 있다고 하는군요.
@shilph 님. 아마도 다음에는 벌레(bug) 잡는 러브 라이브 짤방과 함께 돌아오실듯요.^^ 화이팅입니다.
AMD 흐뭇..
https://www.phoronix.com/scan.php?page=news_item&px=x86-PTI-EPYC-Linux-4.15-Test
AMD 도 뚜껑을 열어봐야 할 문제긴 합니다. 현재 하드웨어상의 이슈라 OS 레벨에서 커널페이지를 분리하는 작업을 수행하고 있고,
리눅스에서는 역시 발빠르게 패치가 되었죠. Windows 가 9일에 패치를 한다고 알려져있구요.
Mac OS 도 10.13.2 (지난달 릴리즈) 에서 수정을 한 상태인지 논의가 있습니다만, 아직까지 공식 성명은 없습니다.
( https://mobile.twitter.com/aionescu/status/948609809540046849 )
현재 리눅스 커널상에서는 AMD 고 인텔이고 구분안하는 버젼만이 업데이트 된 상태이고,
현재 성능저하 (파일시스템 I/O 가 반토막났죠.) 이야기는 리눅스 커널에서 패치가 된 뒤에 테스트한 결과입니다.
Windows 와 MacOS 는 성능 변화에 대해서 크게 알려지지 않고 있습니다.
추후 리눅스 측에서 AMD 에서 이상이 없을 경우 제외시키는 버젼이 업데이트 될 것으로 추정됩니다만, 현재로서는 둘다 영향을 받습니다.
MS 는 어떻게 패치할 지 모르겠네요.
보니까 패치를 하면 고성능 CPU일수록 성능이 반토막 나더라구요....애플보다 더 큰 이슈죠... 잘하면 애플은 인텔에게 고마워 해야 할수도..
어쩐지 극소량 가지고 있던 AMD주식이 갑자기 올랐더군요. 팔고 인텔주식을 살 타이밍이려나요...
https://security.googleblog.com/2018/01/todays-cpu-vulnerability-what-you-need.html
구글에서 공식 발표 났네요. AMD, ARM, INTEL 모두 영향 받고 있구요. 현세대에서 사용중인 모든 CPU 에 적용됩니다.
구글에서 명명한 결함의 이름은 Spectre 와 Meltdown 두가지이고, 관련된 논문은 https://meltdownattack.com/ 에서 찾아볼 수 있습니다.
현재 Spectre 의 경우 모든 회사의 제품에서 발생된 것 같고, Meltdown 은 Intel 에서 1차적으로 발생을 하였고,
AMD/ARM 에서는 발생되지 않는 것으로 보이나 발생시킬 가능성도 있다고 보여집니다.
critical 한 문제로는 meltdown 은 정말 심각한 거라 그래서 Intel 이 지금 두드려 맞고 있는 상황인데요.
AMD 나 다른쪽이라고 안심할 상황은 아닌 거 같습니다.
"We also tried to reproduce the Meltdown bug on several ARM and AMD CPUs. However, we did not manage to successfully leak kernel memory with the attack described in Section 5, neither on ARM nor on AMD. The reasons for this can be manifold. First of all, our implementation might simply be too slow and a more optimized version might succeed. For instance, a more shallow out-of-order execution pipeline could tip the race condition towards against the data leakage."
"However, for both ARM and AMD, the toy example as described in Section 3 works reliably, indicating that out-of-order execution generally occurs and instructions past illegal memory accesses are also performed."
일부만 따오면 이렇고.. 뒤에 뭐 설명이 더 있는데 우선 살짝 접어두고요. 첫번째로 얘네가 생각에는 AMD/ARM 에서 우선 자기네가 만든걸로는
발생이 안되었는데, 될거 같다는 뉘앙스가 강하게 풍기네요. 요즘 CPU 구조를 잘 몰라서 좀 들여다보긴 해야겠지만.. 우선 AMD 는 괜찮다고
섣불리 판단을 하긴 어려울 것 같습니다. 최적화되서 스피드만 나온다면 meltdown 이 amd/arm 에서도 발생할 수 있다는 거죠.
스펙터 버그의 경우는 "More specifically, all modern processors capable of keeping many instructions in flight are potentially vulnerable. In particular, we have verified Spectre on Intel, AMD, and ARM processors," 라고 하네요. 캐시 쓰는 거의 현재 거의 대다수 CPU 가 영향 받는다고 봐야 할 것 같습니다.
cell phone 들 포함입니다.
.
그러셔도 상관은 없지만 꽤 오래 걸릴겁니다. 대충 읽어보니 현재 사용중인 기술에 발생될 수 있는 문제라서요. 하드웨어적인 조치는 꽤나 오래 걸릴겁니다.
이는 구조적인 문제라 현재 하드웨어 상으로는 고칠 방법이 없어서, 새로 설계를 해야하는데.. 이게 뚝딱뚝딱 해서 될 문제가 아니거든요.
어찌되었던 땜빵으로 소프트웨어 레벨에서 지금 작업중인것으로 알고 있습니다. meltdown 에 대해서는 OS 레벨에서의
1차적인 패치 (KAISER,) 가 이루어졌구요. SPECTRE 는 아직 작업중이라 자세한 내용은 공개되지 않았습니다.
완전히 새 하드웨어가 나오고 그거에 적합한 OS 지원이 있기까지는 상당한 시일이 걸릴 것으로 예상됩니다.
일반 유저들의 경우에는 속도가 저하되긴 하나, OS 상에서 커널 메모리/유저메모리 isolation 을 시키는 패치를 적용시키면
1차적으로 해결이 되니까 괜찮을 겁니다., (아마도 우선 이렇게 해놓고, 여러가지 방법을 찾아보겠죠.)
사실 일반 유저보다 CPU 빨이 중요한 작업을 하는 쪽이나 서버 쪽의 성능저하가 직격탄이라서요.
찜찜하시면 우선 4-5개월 두고 보는 것이 좋을 겁니다. 한 버그는 현존하는 거의 모든 컴퓨터에서 문제 발생하신다고 보시면 될겁니다.
.
윗단에서 구조적으로 생기는 문제는 못고치니까, OS 레벨에서 땜빵하고 있는건데요. 현재 퍼포먼스를 유지하면서 physical level 에서 수정하려면
아키텍쳐 설계를 상당부분 다시 해야할 것 같아 오래 걸릴거 같은거죠. 소프트웨어 패치는 급한대로 이미 우선 강제적으로 메모리 영역을
분리 시키는 것으로 해결을 한것 같구요. 나중에 시간나면 찬찬히 들여다봐야겠습니다. 뭐 때문에 I/O 쪽이 반토막 난건지요.
피지컬 디스크에 페이징하는 것이 많아져서 그런게 아닐까.. 어렴풋이 생각은 듭니다만. 모르겠네요. 자세히는 안들여다봐서요.
Matlab 도 CPU 를 거의 풀로드로 돌리는 경우는 그리 많지 않다보니, 아마 일반적인 레벨의 연구에서는 퍼포먼스 차이가 별로 없을 것 같습니다.
그나저나, 전 그냥 이게 오랫동안 암암리에 사용되던 백도어는 아니었을까... 싶은 생각도 드네요.
거의 20년간 사용된 기술에 문제가 있는 건데요. 이걸 정말 아무도 몰랐을까.
그나저나2, 인텔 CEO 의 주식 팔아먹기는 정말 최악입니다. 이게 insider trading 이 아니라면.. 어휴.
애플도 실망이고 인텔은 더더욱 실망이네요. 기술적인 결함이 있을 수 있다는 것은 이해합니다만..
CEO 의 저 행동은 정말, 에휴. 회사이미지를 땅바닥에 내다 꽂으네요. 뭐, 아무도 모르는 사정은 있을수도 있습니다만,
누가봐도 그리보일 행동을 하고 있는 것은 답답하네요. 마땅한 대안이 없는 것이 문제입니다만.
괜히 넋두리하면서 sliph 님께 죄송해지는 기분은..;;
제 의견은 이렇습니다.
루스테어님과는 크게 두 부분에서 의견이 다릅니다: I/O perf. 반토막 이유, matlab 사용
(요 부분은 동의 하실 거라 생각하고요)
메모리 영역 분리라 함은 kernel/user mode switch때 base register (CR3)가 바뀌지 않던 것을, switch 때 CR3에 다른 base address를 주겠다는 의미입니다.
성능 저하는 마이크로아키텍쳐 레벨에서부터 발생합니다. 당장은 cache pollution / TLB flush가 생각 나고요, 다른 부분도 있을 것 입니다.
(요 부분 부터가 제 의견 입니다.)
kernel/user mode switch가 많이 발생하지 않으면 큰 성능저하는 없어보입니다.
예를 들어, matlab에서 CPU를 풀로 돌려도, system call을 사용하지 않고, 순수히 연산만 하는 경우에는 성능저하는 거의 없을 것으로 생각됩니다.
kernel/user mode switch가 많이 발생하는 경우 큰 성능저하가 예상됩니다.
up to 30%라고 들었던거 같은데, 바로 이 경우가 30%에 해당할 것입니다.
일부 벤치마크에서 getpid()를 1M 호출했을 때 이 30%를 달성(?)했던 거 같습니다.
이유는 마이크로아키텍쳐 레벨의 문제 이고요. cache pollution, TLB flush, ...
"피지컬 디스크에 페이징하는 것이..."는 swap을 말씀하시는 것 같은데, 전 그렇게 생각하지 않습니다.
AArch64에서 돌아가는 Linux는 base register 두 개(TTBR0/1)를 사용해서, kernel pagetable isolation이 이미 이루어졌다고 생각할 수 있는데,
제 생각으로는 같은 문제가 발생할 것 같습니다.
왜냐하면, CPU가 speculative exection할 때 어떤 TTBR을 사용하는지 까지는 체크하지 않을 것 같습니다. (이 부분은 100% 제 사견입니다.)
Intel이 욕을 먹는 것에 대한 제 생각은...
기술적 결함에 대해선 전 나름 관대한 편입니다. 전 Intel을 욕하진 않습니다.
다만, 내부 비밀을 이용해 주식 몰래 팔아먹은 행동은 욕먹어 마땅한 행동이지요. 전 Intel CEO를 욕합니다.
Intel White Paper 나왔네요~
댓글 [20]