Tuesday, January 30, 2018

Ian Day 100




It was 19th Jan 2018. My son's 100th day after the birth.

Tuesday, January 16, 2018

Spectre mitigations for msvc

https://blogs.msdn.microsoft.com/vcblog/2018/01/15/spectre-mitigations-in-msvc/

Using LFENCE (recommended by CPU manufacturers).
Anyway, it might have a little (very little) performance drop not likely Google's retpoline.
Check the performance of your application. Depends on the implementations, it could bring a performance drop more than expected.

Thursday, January 4, 2018

Intel CPU bug

외계인들의 집합체였던 인텔에서 전무후무한 버그가 나와서, 기념하기(?) 위해 남겨놓는다.

일단 버그 내용 정리:

https://meltdownattack.com/
https://www.reddit.com/r/sysadmin/comments/7nl8r0/intel_bug_incoming/
https://googleprojectzero.blogspot.ca/2018/01/reading-privileged-memory-with-side.html

https://namu.wiki/w/2018%EB%85%84%20%EC%9D%B8%ED%85%94%20CPU%20%EB%B3%B4%EC%95%88%20%EB%B2%84%EA%B7%B8%20%EC%9C%A0%EC%B6%9C

출처에서 글을 발췌하면;


  • 해당 버그는 인텔의 몇 세대에 걸친 버그입니다. 인텔 한정으로, AMD는 영향없는 것으로 보입니다.(다만 현재 커널 패치에서는 AMD를 수정사항에서 제외하는 항목이 머지되지 않은 상태입니다. 즉 현 커널 패치에서는 같이 성능이 떨어질 것으로 예상)
  • 해당 버그는 리눅스뿐만 아니라 Windows, macOS 모두에 영향을 줍니다.
  • 해당 버그는 엠바고로 인해 아직 전모가 밝혀지지는 않았습니다.
  • 해당 버그는 인텔 CPU의 버그로 인해 커널 메모리 정보가 유저 공간으로 유출될 수 있는 결함입니다.
  • 해당 버그로 인해 크게 공개되지는 않았지만 데이터 센터/클라우드 업체 등에서는 상당한 물밑작업이 진행되었을 것으로 예상됩니다.
  • 해당 버그의 수정으로 인해 발생하는 성능 손실은 각 OS와 기타등등에 따라 다르지만 대략 5~30% 정도로 알려져 있습니다.
  • 해당 버그에 대응하는 리눅스 커널 패치는 이미 릴리즈 되었습니다. 
  • PCID 기능이 적용된 신형 인텔 CPU에서는 해당 버그의 커널 패치로 인한 성능 저하가 완화되는 것으로 알려져 있습니다.
  • 해당 버그에 대응하는 리눅스 커널 패치를 적용하고 테스트 해 보니....



  1. 파일시스템 I/O쪽은 성능이 반토막이 납니다.
  2. 컴파일러 벤치마크 중 initial setup 항목에서 15% 정도 성능이 저하됩니다.
  3. 커널 컴파일, 인코딩 등은 큰 영향이 없는 것으로 나타납니다.
  4. SQL 같은 DB 관련 벤치에서도 15% 정도 성능이 저하됩니다.
  5. 데이터 스트럭처 서버라는 것에서 6% 정도 깨집니다.
  6. 게임은 영향이 거의 없습니다.

이런 식임.

메모리 구역 분리와 권한 재설정을 하는 패치로 급한 불은 껐지만 과연...

게임에 영향이 없다는 말은 보통 I/O 요청 수가 상대적으로 낮은 게임들이 예일 뿐이고,
온라인 게임이나 서버에서는 성능 저하가 일어날 수 있다.
끊임없이 스트리밍을 하는 GTA 등의 오픈월드 게임도 영향이 있을듯 하다. 하지만 그렇게 치명적이지는 않을 듯.
참고로 PS4는 AMD. 그나마 다행이지만 AMD 라고 완전 안심할 단계는 아님.

Monday, January 1, 2018

Multithreading the Entire Destiny Engine



사실 다 알만한 내용들이긴 하지만, 이렇게 발표를 했다는 게 중요.

나도 GDC 에서 Speech 한 번 하자.