狠狠撸

狠狠撸Share a Scribd company logo
PTI と IBRS パッチの使い方
PTI と IBRS パッチの使い方について
2018 年 3 月 30 日
(株)創夢 内藤 祐一郎
FreeBSD-SA-18:03
● 2018/03/14 にリリースされたセキュリティパッチ
● FreeBSD-SA-18:03.speculative_execution
● いわゆる Meltdown & Spectre への対策
● 正確には以下の対策を含み
– CVE-2017-5754 (Meltdown)
– CVE-2017-5715 (Spectre V2)
● 以下の対策を含まない
– CVE-2017-5753 (Spectre V1)
CVE-2017-5754 (Meltdown) 対策
● Page Table Isolation を導入した。
● ユーザプロセスのメモリ空間にカーネルのメモリをマップ
するのを(ほとんど)やめた。(参考:Wikipediaの記事)
● 元々は Intel がシステムコールの性能向上のために、ユー
ザプロセスにもカーネルのメモリをマップしておくことが
推奨されていた。
– カーネルページが TLB から追い出されるのを防ぐ
– カーネルページはアクセス保護で守られるので問題な
かった
CVE-2017-5715 (Spectre V2) 対策
● Indirect Branch Restricted Speculation を有効にできるよ
うにした。
● 間接分岐命令実行時に投機的実行を制限するように、
Intel がマイクロコードのアップデートをリリースした。
? この機能を有効にするためのパッチ。
対策パッチを使うには
1.FreeBSD 11.1R-p8 にアップデートする。
2.PTI (Page Table Isolation) はデフォルトで有効。
3.bios アップデートまたは ports/sysutils/devcpu_data をイ
ンストールする。
4.devcpu_data を入れた場合は、
sysrc microcode_update_enable="YES"
を実行しておく。
5./etc/sysctl.conf に hw.ibrs_disable=0 を書き込む。
6. 以上を行ったらリブートする。
対策が有効かどうかの確認
● PTI (Page Table Isolation)
– sysctl vm.pmap.pti で 1 が表示されること
● IBRS (Indirect Branch Restricted Speculation)
– sysctl hw.ibrs_active で 1 が表示されること
やっぱり無効にしたい場合
● PTI (Page Table Isolation)
– /boot/loader.conf に vm.pmap.pti = 0 を書き込む
● IBRS (Indirect Branch Restricted Speculation)
– /etc/sysctl.conf に hw.ibrs_disable=1 を書き込む
– ( /boot/loader.conf に書き込むでも可)
● 以上を設定後にリブートする。
どのくらい性能に影響するのか?
● 試しに UnixBench を実行してみた。
● UnixBench はアプリケーションの性能に影響を及ぼしそう
な項目ごとにベンチマークを出してくれる。
● PTI, IBRS がどういった処理に影響するのかが分かる。
● 逆に一般的なアプリケーションのワークロードではないた
め、ベンチマークの結果から一般的なアプリケーションの
性能を予測するのは難しい。
使用したハードウェア
目項 値
CPU Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz (Skylake)
コア / スレッド数 4/8
メモリ量 16GB (DDR3L)
HDD 128GB SSD (SATA3 接続 )
File System ZFS (version 5)
結果 (index 値 )
PTI on PTI off
ベンチマ クのー 種類 IBRS on IBRS off IBRS on IBRS off
Dhrystone 2 using
register variables
2562.2 4748.0 2841.7 4771.0
Double-Precision
Whetstone
1194.6 1300.6 1195.3 1306.1
Execl Throughput 706.9 885.6 743.4 945.0
結果 (index 値 )
PTI on PTI off
ベンチマ クのー 種類 IBRS on IBRS off IBRS on IBRS off
File Copy 1024
bufsize 2000
maxblocks
367.8 544.3 382.5 567.6
File Copy 256
bufsize 500
maxblocks
220.3 318.6 231.9 344.1
File Copy 4096
bufsize 8000
maxblocks
932.8 1297.8 971.5 1375.8
結果 (index 値 )
PTI on PTI off
ベンチマ クのー 種類 IBRS on IBRS off IBRS on IBRS off
Pipe Throughput 481.8 1176.1 567.3 1862.7
Pipe-based Context
Switching
374.7 454.5 419.2 570.3
Process Creation 788.5 913.3 857.6 1030.8
結果 (index 値 )
PTI on PTI off
ベンチマ クのー 種類 IBRS on IBRS off IBRS on IBRS off
Shell Scripts (1
concurrent)
1612.5 2291.9 1671.4 2372.7
Shell Scripts (8
concurrent)
5139.7 6538.3 5289.5 6787.8
System Call
Overhead
190.2 559.7 229.5 1157.6
結果 (index 値 )
PTI on PTI off
ベンチマ クのー 種類 IBRS on IBRS off IBRS on IBRS off
System Benchmarks
Index Score
759.2 1144.3 818.2 1335.9
buildworld + buildkernel
● 現実的なアプリケーションの例として
FreeBSD 11.1R-p8 を make buildworld buildkernel した
時間を測定した。
● PTI on & IBRS on の場合は 1901 秒。
● PIT off & IBRS off の場合は 1811 秒。
? 5% 遅くなった。
まとめ
● 予想通りシステムコールの性能は劣化する。
● しかし、多くのアプリケーションはシステムコールを頻繁
に呼び出すことを避けるように作られている。
● IBRS は Dhrystone や Whetstone のように CPU の演算性
能に影響を及ぼすため、多くのアプリケーションに影響を
与えると考えられる。
● 対策が必要な環境であれば止むを得ないが、必要のない環
境であればパッチを無効化してしまうのもありだと思う。

More Related Content

What's hot (19)

サーバ脆弱性スキャナ Vuls を OpenStack 環境で使ってみた
サーバ脆弱性スキャナ Vuls を OpenStack 環境で使ってみたサーバ脆弱性スキャナ Vuls を OpenStack 環境で使ってみた
サーバ脆弱性スキャナ Vuls を OpenStack 環境で使ってみた
VirtualTech Japan Inc.
?
テキサスインスツルメンツ Cc2650、cc2650 rcを使ってみた
テキサスインスツルメンツ Cc2650、cc2650 rcを使ってみたテキサスインスツルメンツ Cc2650、cc2650 rcを使ってみた
テキサスインスツルメンツ Cc2650、cc2650 rcを使ってみた
Yoshiaki Ito
?
5分でわかる!辞飞苍颁濒辞耻诲アドオンの作り方
5分でわかる!辞飞苍颁濒辞耻诲アドオンの作り方5分でわかる!辞飞苍颁濒辞耻诲アドオンの作り方
5分でわかる!辞飞苍颁濒辞耻诲アドオンの作り方
Yuki Takahashi
?
データ加工ストリーミングのすすめ2012 11 20
データ加工ストリーミングのすすめ2012 11 20データ加工ストリーミングのすすめ2012 11 20
データ加工ストリーミングのすすめ2012 11 20
Koichiro Mori
?
vmware-meetup7
vmware-meetup7vmware-meetup7
vmware-meetup7
mikiya michishita
?
Dockerのエンタープライズ運用を支える技術 - FlexPod Day 2017 Tokyo
Dockerのエンタープライズ運用を支える技術 - FlexPod Day 2017 TokyoDockerのエンタープライズ運用を支える技術 - FlexPod Day 2017 Tokyo
Dockerのエンタープライズ運用を支える技術 - FlexPod Day 2017 Tokyo
Takao Setaka
?
ACI Kubernetes Integration
ACI Kubernetes IntegrationACI Kubernetes Integration
ACI Kubernetes Integration
Takehiro Yokoishi
?
XenServerとZFSストレージでサーバ仮想化 - OSC2011 Tokyo/Spring 自宅SAN友の会(後半)
XenServerとZFSストレージでサーバ仮想化 - OSC2011 Tokyo/Spring 自宅SAN友の会(後半)XenServerとZFSストレージでサーバ仮想化 - OSC2011 Tokyo/Spring 自宅SAN友の会(後半)
XenServerとZFSストレージでサーバ仮想化 - OSC2011 Tokyo/Spring 自宅SAN友の会(後半)
tokuhy
?
物理マシンをケチる技术
物理マシンをケチる技术物理マシンをケチる技术
物理マシンをケチる技术
Satoshi KOBAYASHI
?
COMSTARでiSCSI - OpenSolaris勉強会 2011.08
COMSTARでiSCSI - OpenSolaris勉強会 2011.08COMSTARでiSCSI - OpenSolaris勉強会 2011.08
COMSTARでiSCSI - OpenSolaris勉強会 2011.08
tokuhy
?
Flameにfirefox os2.1を入れてみた+α
Flameにfirefox os2.1を入れてみた+αFlameにfirefox os2.1を入れてみた+α
Flameにfirefox os2.1を入れてみた+α
Naoki Takahashi
?
ACI3.0(1k) Release
ACI3.0(1k) ReleaseACI3.0(1k) Release
ACI3.0(1k) Release
Takao Setaka
?
【Interop tokyo 2014】 OpenStack 対応仮想スイッチ、Cisco Nexus 1000V for KVM のご紹介
【Interop tokyo 2014】 OpenStack 対応仮想スイッチ、Cisco Nexus 1000V for KVM のご紹介【Interop tokyo 2014】 OpenStack 対応仮想スイッチ、Cisco Nexus 1000V for KVM のご紹介
【Interop tokyo 2014】 OpenStack 対応仮想スイッチ、Cisco Nexus 1000V for KVM のご紹介
シスコシステムズ合同会社
?
颁濒辞耻诲础迟颁辞蝉迟を使ってみた
颁濒辞耻诲础迟颁辞蝉迟を使ってみた颁濒辞耻诲础迟颁辞蝉迟を使ってみた
颁濒辞耻诲础迟颁辞蝉迟を使ってみた
nemumu
?
IPython notebookでOpenFOAMを使う!講習会準備資料
IPython notebookでOpenFOAMを使う!講習会準備資料IPython notebookでOpenFOAMを使う!講習会準備資料
IPython notebookでOpenFOAMを使う!講習会準備資料
mmer547
?
余った笔颁をルータに変える、ソフトウェアルータ「厂贰滨尝/虫86」
余った笔颁をルータに変える、ソフトウェアルータ「厂贰滨尝/虫86」余った笔颁をルータに変える、ソフトウェアルータ「厂贰滨尝/虫86」
余った笔颁をルータに変える、ソフトウェアルータ「厂贰滨尝/虫86」
IIJ
?
サイバーエージェント様 導入事例:OpenStack Fast Track – 若葉マークStackerのStacker教習所 - OpenStack最新...
サイバーエージェント様 導入事例:OpenStack Fast Track – 若葉マークStackerのStacker教習所 - OpenStack最新...サイバーエージェント様 導入事例:OpenStack Fast Track – 若葉マークStackerのStacker教習所 - OpenStack最新...
サイバーエージェント様 導入事例:OpenStack Fast Track – 若葉マークStackerのStacker教習所 - OpenStack最新...
VirtualTech Japan Inc.
?
VMwareで手っ取り早く社内システムをHAサーバ化してみました (bpstudy#38)
VMwareで手っ取り早く社内システムをHAサーバ化してみました (bpstudy#38)VMwareで手っ取り早く社内システムをHAサーバ化してみました (bpstudy#38)
VMwareで手っ取り早く社内システムをHAサーバ化してみました (bpstudy#38)
Yuichiro Saito
?
サーバ脆弱性スキャナ Vuls を OpenStack 環境で使ってみた
サーバ脆弱性スキャナ Vuls を OpenStack 環境で使ってみたサーバ脆弱性スキャナ Vuls を OpenStack 環境で使ってみた
サーバ脆弱性スキャナ Vuls を OpenStack 環境で使ってみた
VirtualTech Japan Inc.
?
テキサスインスツルメンツ Cc2650、cc2650 rcを使ってみた
テキサスインスツルメンツ Cc2650、cc2650 rcを使ってみたテキサスインスツルメンツ Cc2650、cc2650 rcを使ってみた
テキサスインスツルメンツ Cc2650、cc2650 rcを使ってみた
Yoshiaki Ito
?
5分でわかる!辞飞苍颁濒辞耻诲アドオンの作り方
5分でわかる!辞飞苍颁濒辞耻诲アドオンの作り方5分でわかる!辞飞苍颁濒辞耻诲アドオンの作り方
5分でわかる!辞飞苍颁濒辞耻诲アドオンの作り方
Yuki Takahashi
?
データ加工ストリーミングのすすめ2012 11 20
データ加工ストリーミングのすすめ2012 11 20データ加工ストリーミングのすすめ2012 11 20
データ加工ストリーミングのすすめ2012 11 20
Koichiro Mori
?
Dockerのエンタープライズ運用を支える技術 - FlexPod Day 2017 Tokyo
Dockerのエンタープライズ運用を支える技術 - FlexPod Day 2017 TokyoDockerのエンタープライズ運用を支える技術 - FlexPod Day 2017 Tokyo
Dockerのエンタープライズ運用を支える技術 - FlexPod Day 2017 Tokyo
Takao Setaka
?
XenServerとZFSストレージでサーバ仮想化 - OSC2011 Tokyo/Spring 自宅SAN友の会(後半)
XenServerとZFSストレージでサーバ仮想化 - OSC2011 Tokyo/Spring 自宅SAN友の会(後半)XenServerとZFSストレージでサーバ仮想化 - OSC2011 Tokyo/Spring 自宅SAN友の会(後半)
XenServerとZFSストレージでサーバ仮想化 - OSC2011 Tokyo/Spring 自宅SAN友の会(後半)
tokuhy
?
物理マシンをケチる技术
物理マシンをケチる技术物理マシンをケチる技术
物理マシンをケチる技术
Satoshi KOBAYASHI
?
COMSTARでiSCSI - OpenSolaris勉強会 2011.08
COMSTARでiSCSI - OpenSolaris勉強会 2011.08COMSTARでiSCSI - OpenSolaris勉強会 2011.08
COMSTARでiSCSI - OpenSolaris勉強会 2011.08
tokuhy
?
Flameにfirefox os2.1を入れてみた+α
Flameにfirefox os2.1を入れてみた+αFlameにfirefox os2.1を入れてみた+α
Flameにfirefox os2.1を入れてみた+α
Naoki Takahashi
?
【Interop tokyo 2014】 OpenStack 対応仮想スイッチ、Cisco Nexus 1000V for KVM のご紹介
【Interop tokyo 2014】 OpenStack 対応仮想スイッチ、Cisco Nexus 1000V for KVM のご紹介【Interop tokyo 2014】 OpenStack 対応仮想スイッチ、Cisco Nexus 1000V for KVM のご紹介
【Interop tokyo 2014】 OpenStack 対応仮想スイッチ、Cisco Nexus 1000V for KVM のご紹介
シスコシステムズ合同会社
?
颁濒辞耻诲础迟颁辞蝉迟を使ってみた
颁濒辞耻诲础迟颁辞蝉迟を使ってみた颁濒辞耻诲础迟颁辞蝉迟を使ってみた
颁濒辞耻诲础迟颁辞蝉迟を使ってみた
nemumu
?
IPython notebookでOpenFOAMを使う!講習会準備資料
IPython notebookでOpenFOAMを使う!講習会準備資料IPython notebookでOpenFOAMを使う!講習会準備資料
IPython notebookでOpenFOAMを使う!講習会準備資料
mmer547
?
余った笔颁をルータに変える、ソフトウェアルータ「厂贰滨尝/虫86」
余った笔颁をルータに変える、ソフトウェアルータ「厂贰滨尝/虫86」余った笔颁をルータに変える、ソフトウェアルータ「厂贰滨尝/虫86」
余った笔颁をルータに変える、ソフトウェアルータ「厂贰滨尝/虫86」
IIJ
?
サイバーエージェント様 導入事例:OpenStack Fast Track – 若葉マークStackerのStacker教習所 - OpenStack最新...
サイバーエージェント様 導入事例:OpenStack Fast Track – 若葉マークStackerのStacker教習所 - OpenStack最新...サイバーエージェント様 導入事例:OpenStack Fast Track – 若葉マークStackerのStacker教習所 - OpenStack最新...
サイバーエージェント様 導入事例:OpenStack Fast Track – 若葉マークStackerのStacker教習所 - OpenStack最新...
VirtualTech Japan Inc.
?
VMwareで手っ取り早く社内システムをHAサーバ化してみました (bpstudy#38)
VMwareで手っ取り早く社内システムをHAサーバ化してみました (bpstudy#38)VMwareで手っ取り早く社内システムをHAサーバ化してみました (bpstudy#38)
VMwareで手っ取り早く社内システムをHAサーバ化してみました (bpstudy#38)
Yuichiro Saito
?

Similar to How to use PTI & IBRS patch (20)

[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
Naoki (Neo) SATO
?
Soft layer users_community_20140523_bitisle_narisako_subset
Soft layer users_community_20140523_bitisle_narisako_subsetSoft layer users_community_20140523_bitisle_narisako_subset
Soft layer users_community_20140523_bitisle_narisako_subset
Takeshi Narisako
?
[Japan Tech summit 2017] CLD 019
[Japan Tech summit 2017]  CLD 019[Japan Tech summit 2017]  CLD 019
[Japan Tech summit 2017] CLD 019
Microsoft Tech Summit 2017
?
Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)
Yoshinori Matsunobu
?
ITProExpo 2014: 次世代ユニファイド コンピューティングシステム ~ Cisco UCS M シリーズ~
ITProExpo 2014: 次世代ユニファイド コンピューティングシステム ~ Cisco UCS M シリーズ~ITProExpo 2014: 次世代ユニファイド コンピューティングシステム ~ Cisco UCS M シリーズ~
ITProExpo 2014: 次世代ユニファイド コンピューティングシステム ~ Cisco UCS M シリーズ~
シスコシステムズ合同会社
?
Cisco Connect Japan 2014: シスコ ユニファイド コミュニケーションのサーバ構築ファースト ステップ
Cisco Connect Japan 2014: シスコ ユニファイド コミュニケーションのサーバ構築ファースト ステップCisco Connect Japan 2014: シスコ ユニファイド コミュニケーションのサーバ構築ファースト ステップ
Cisco Connect Japan 2014: シスコ ユニファイド コミュニケーションのサーバ構築ファースト ステップ
シスコシステムズ合同会社
?
ITPro Expo 2014: Cisco ストレージ ソリューション ~ Cisco UCS C3160 高密度ストレージ サーバ ~
ITPro Expo 2014: Cisco ストレージ ソリューション ~ Cisco UCS C3160 高密度ストレージ サーバ ~ITPro Expo 2014: Cisco ストレージ ソリューション ~ Cisco UCS C3160 高密度ストレージ サーバ ~
ITPro Expo 2014: Cisco ストレージ ソリューション ~ Cisco UCS C3160 高密度ストレージ サーバ ~
シスコシステムズ合同会社
?
ITPro Expo 2014: Cisco ストレージ ソリューション ~ Cisco UCS Invicta ソリッド ステート システム ~
ITPro Expo 2014: Cisco ストレージ ソリューション ~ Cisco UCS Invicta ソリッド ステート システム ~ITPro Expo 2014: Cisco ストレージ ソリューション ~ Cisco UCS Invicta ソリッド ステート システム ~
ITPro Expo 2014: Cisco ストレージ ソリューション ~ Cisco UCS Invicta ソリッド ステート システム ~
シスコシステムズ合同会社
?
ITpro EXPO 2014: Windows Serverの移行、統合、管理に最適なCisco UCSサーバ
ITpro EXPO 2014: Windows Serverの移行、統合、管理に最適なCisco UCSサーバITpro EXPO 2014: Windows Serverの移行、統合、管理に最適なCisco UCSサーバ
ITpro EXPO 2014: Windows Serverの移行、統合、管理に最適なCisco UCSサーバ
シスコシステムズ合同会社
?
ITpro EXPO 2014: Cisco UCS Invictaによるアプリケーション高速化とストレージサーバソリューションのご紹介
ITpro EXPO 2014: Cisco UCS Invictaによるアプリケーション高速化とストレージサーバソリューションのご紹介ITpro EXPO 2014: Cisco UCS Invictaによるアプリケーション高速化とストレージサーバソリューションのご紹介
ITpro EXPO 2014: Cisco UCS Invictaによるアプリケーション高速化とストレージサーバソリューションのご紹介
シスコシステムズ合同会社
?
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
ShuheiUda
?
【Cisco Data Center Forum 2014】 Cisco UCS の今後の方向性と新製品 Cisco UCS Invicta、および新サー...
【Cisco Data Center Forum 2014】 Cisco UCS の今後の方向性と新製品 Cisco UCS Invicta、および新サー...【Cisco Data Center Forum 2014】 Cisco UCS の今後の方向性と新製品 Cisco UCS Invicta、および新サー...
【Cisco Data Center Forum 2014】 Cisco UCS の今後の方向性と新製品 Cisco UCS Invicta、および新サー...
シスコシステムズ合同会社
?
Running Kubernetes on Azure
Running Kubernetes on AzureRunning Kubernetes on Azure
Running Kubernetes on Azure
Masaki Yamamoto
?
Cisco の Azure Stack を15分でまるっとご紹介
Cisco の Azure Stack を15分でまるっとご紹介Cisco の Azure Stack を15分でまるっとご紹介
Cisco の Azure Stack を15分でまるっとご紹介
Takao Setaka
?
Intel OpenVINO、 NVIDIA Deepstream対応開発キットから、 エッジサーバー、Azure Data Box Edgeまで、 Az...
Intel OpenVINO、 NVIDIA Deepstream対応開発キットから、 エッジサーバー、Azure Data Box Edgeまで、 Az...Intel OpenVINO、 NVIDIA Deepstream対応開発キットから、 エッジサーバー、Azure Data Box Edgeまで、 Az...
Intel OpenVINO、 NVIDIA Deepstream対応開発キットから、 エッジサーバー、Azure Data Box Edgeまで、 Az...
滨辞罢ビジネス共创ラボ
?
20210514 hccjp azure_stackedgesession
20210514 hccjp azure_stackedgesession20210514 hccjp azure_stackedgesession
20210514 hccjp azure_stackedgesession
Osamu Takazoe
?
Cld002 windows server_2016_で作るシンプ
Cld002 windows server_2016_で作るシンプCld002 windows server_2016_で作るシンプ
Cld002 windows server_2016_で作るシンプ
Tech Summit 2016
?
OSC 2011 Tokyo/Fall 自宅SAN友の会 (Infinibandお試し編)
OSC 2011 Tokyo/Fall 自宅SAN友の会 (Infinibandお試し編)OSC 2011 Tokyo/Fall 自宅SAN友の会 (Infinibandお試し編)
OSC 2011 Tokyo/Fall 自宅SAN友の会 (Infinibandお試し編)
Satoshi Shimazaki
?
Azure Stack 受け入れ準備_20180630
Azure Stack 受け入れ準備_20180630Azure Stack 受け入れ準備_20180630
Azure Stack 受け入れ準備_20180630
Hiroshi Matsumoto
?
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
Naoki (Neo) SATO
?
Soft layer users_community_20140523_bitisle_narisako_subset
Soft layer users_community_20140523_bitisle_narisako_subsetSoft layer users_community_20140523_bitisle_narisako_subset
Soft layer users_community_20140523_bitisle_narisako_subset
Takeshi Narisako
?
Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)
Yoshinori Matsunobu
?
ITProExpo 2014: 次世代ユニファイド コンピューティングシステム ~ Cisco UCS M シリーズ~
ITProExpo 2014: 次世代ユニファイド コンピューティングシステム ~ Cisco UCS M シリーズ~ITProExpo 2014: 次世代ユニファイド コンピューティングシステム ~ Cisco UCS M シリーズ~
ITProExpo 2014: 次世代ユニファイド コンピューティングシステム ~ Cisco UCS M シリーズ~
シスコシステムズ合同会社
?
Cisco Connect Japan 2014: シスコ ユニファイド コミュニケーションのサーバ構築ファースト ステップ
Cisco Connect Japan 2014: シスコ ユニファイド コミュニケーションのサーバ構築ファースト ステップCisco Connect Japan 2014: シスコ ユニファイド コミュニケーションのサーバ構築ファースト ステップ
Cisco Connect Japan 2014: シスコ ユニファイド コミュニケーションのサーバ構築ファースト ステップ
シスコシステムズ合同会社
?
ITPro Expo 2014: Cisco ストレージ ソリューション ~ Cisco UCS C3160 高密度ストレージ サーバ ~
ITPro Expo 2014: Cisco ストレージ ソリューション ~ Cisco UCS C3160 高密度ストレージ サーバ ~ITPro Expo 2014: Cisco ストレージ ソリューション ~ Cisco UCS C3160 高密度ストレージ サーバ ~
ITPro Expo 2014: Cisco ストレージ ソリューション ~ Cisco UCS C3160 高密度ストレージ サーバ ~
シスコシステムズ合同会社
?
ITPro Expo 2014: Cisco ストレージ ソリューション ~ Cisco UCS Invicta ソリッド ステート システム ~
ITPro Expo 2014: Cisco ストレージ ソリューション ~ Cisco UCS Invicta ソリッド ステート システム ~ITPro Expo 2014: Cisco ストレージ ソリューション ~ Cisco UCS Invicta ソリッド ステート システム ~
ITPro Expo 2014: Cisco ストレージ ソリューション ~ Cisco UCS Invicta ソリッド ステート システム ~
シスコシステムズ合同会社
?
ITpro EXPO 2014: Windows Serverの移行、統合、管理に最適なCisco UCSサーバ
ITpro EXPO 2014: Windows Serverの移行、統合、管理に最適なCisco UCSサーバITpro EXPO 2014: Windows Serverの移行、統合、管理に最適なCisco UCSサーバ
ITpro EXPO 2014: Windows Serverの移行、統合、管理に最適なCisco UCSサーバ
シスコシステムズ合同会社
?
ITpro EXPO 2014: Cisco UCS Invictaによるアプリケーション高速化とストレージサーバソリューションのご紹介
ITpro EXPO 2014: Cisco UCS Invictaによるアプリケーション高速化とストレージサーバソリューションのご紹介ITpro EXPO 2014: Cisco UCS Invictaによるアプリケーション高速化とストレージサーバソリューションのご紹介
ITpro EXPO 2014: Cisco UCS Invictaによるアプリケーション高速化とストレージサーバソリューションのご紹介
シスコシステムズ合同会社
?
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
ShuheiUda
?
【Cisco Data Center Forum 2014】 Cisco UCS の今後の方向性と新製品 Cisco UCS Invicta、および新サー...
【Cisco Data Center Forum 2014】 Cisco UCS の今後の方向性と新製品 Cisco UCS Invicta、および新サー...【Cisco Data Center Forum 2014】 Cisco UCS の今後の方向性と新製品 Cisco UCS Invicta、および新サー...
【Cisco Data Center Forum 2014】 Cisco UCS の今後の方向性と新製品 Cisco UCS Invicta、および新サー...
シスコシステムズ合同会社
?
Running Kubernetes on Azure
Running Kubernetes on AzureRunning Kubernetes on Azure
Running Kubernetes on Azure
Masaki Yamamoto
?
Cisco の Azure Stack を15分でまるっとご紹介
Cisco の Azure Stack を15分でまるっとご紹介Cisco の Azure Stack を15分でまるっとご紹介
Cisco の Azure Stack を15分でまるっとご紹介
Takao Setaka
?
Intel OpenVINO、 NVIDIA Deepstream対応開発キットから、 エッジサーバー、Azure Data Box Edgeまで、 Az...
Intel OpenVINO、 NVIDIA Deepstream対応開発キットから、 エッジサーバー、Azure Data Box Edgeまで、 Az...Intel OpenVINO、 NVIDIA Deepstream対応開発キットから、 エッジサーバー、Azure Data Box Edgeまで、 Az...
Intel OpenVINO、 NVIDIA Deepstream対応開発キットから、 エッジサーバー、Azure Data Box Edgeまで、 Az...
滨辞罢ビジネス共创ラボ
?
20210514 hccjp azure_stackedgesession
20210514 hccjp azure_stackedgesession20210514 hccjp azure_stackedgesession
20210514 hccjp azure_stackedgesession
Osamu Takazoe
?
Cld002 windows server_2016_で作るシンプ
Cld002 windows server_2016_で作るシンプCld002 windows server_2016_で作るシンプ
Cld002 windows server_2016_で作るシンプ
Tech Summit 2016
?
OSC 2011 Tokyo/Fall 自宅SAN友の会 (Infinibandお試し編)
OSC 2011 Tokyo/Fall 自宅SAN友の会 (Infinibandお試し編)OSC 2011 Tokyo/Fall 自宅SAN友の会 (Infinibandお試し編)
OSC 2011 Tokyo/Fall 自宅SAN友の会 (Infinibandお試し編)
Satoshi Shimazaki
?
Azure Stack 受け入れ準備_20180630
Azure Stack 受け入れ準備_20180630Azure Stack 受け入れ準備_20180630
Azure Stack 受け入れ準備_20180630
Hiroshi Matsumoto
?

More from Yuichiro Naito (20)

Bhyve Management Daemon Version 3.0 on FreBSD
Bhyve Management Daemon Version 3.0 on FreBSDBhyve Management Daemon Version 3.0 on FreBSD
Bhyve Management Daemon Version 3.0 on FreBSD
Yuichiro Naito
?
Reporting AsiaBSDCon 2024 in Taipei for FreeBSD NetBSD
Reporting AsiaBSDCon 2024 in Taipei for FreeBSD NetBSDReporting AsiaBSDCon 2024 in Taipei for FreeBSD NetBSD
Reporting AsiaBSDCon 2024 in Taipei for FreeBSD NetBSD
Yuichiro Naito
?
Bmd
BmdBmd
Bmd
Yuichiro Naito
?
WireGurad in the FreeBSD kernel
WireGurad in the FreeBSD kernelWireGurad in the FreeBSD kernel
WireGurad in the FreeBSD kernel
Yuichiro Naito
?
FreeBSD Capsicum
FreeBSD CapsicumFreeBSD Capsicum
FreeBSD Capsicum
Yuichiro Naito
?
Xrdp
XrdpXrdp
Xrdp
Yuichiro Naito
?
Bhyve debug-server
Bhyve debug-serverBhyve debug-server
Bhyve debug-server
Yuichiro Naito
?
Tramp mode
Tramp modeTramp mode
Tramp mode
Yuichiro Naito
?
HandBrake with QSV
HandBrake with QSVHandBrake with QSV
HandBrake with QSV
Yuichiro Naito
?
FreeBSD 12.1 RELESE
FreeBSD 12.1 RELESEFreeBSD 12.1 RELESE
FreeBSD 12.1 RELESE
Yuichiro Naito
?
Modern fonts
Modern fontsModern fonts
Modern fonts
Yuichiro Naito
?
FreeBSD 12.0 RELEASE!
FreeBSD 12.0 RELEASE!FreeBSD 12.0 RELEASE!
FreeBSD 12.0 RELEASE!
Yuichiro Naito
?
Psql & proctitle
Psql & proctitlePsql & proctitle
Psql & proctitle
Yuichiro Naito
?
Iocage
IocageIocage
Iocage
Yuichiro Naito
?
FreeBSD 11.2 RELEASE!
FreeBSD 11.2 RELEASE!FreeBSD 11.2 RELEASE!
FreeBSD 11.2 RELEASE!
Yuichiro Naito
?
FreeBSD Desktop
FreeBSD DesktopFreeBSD Desktop
FreeBSD Desktop
Yuichiro Naito
?
FreeBSD Ports Flavors
FreeBSD Ports Flavors FreeBSD Ports Flavors
FreeBSD Ports Flavors
Yuichiro Naito
?
Bsdtw repo
Bsdtw repoBsdtw repo
Bsdtw repo
Yuichiro Naito
?
How to use blacklistd
How to use blacklistdHow to use blacklistd
How to use blacklistd
Yuichiro Naito
?
Custom Package Building with Poudriere
Custom Package Building with PoudriereCustom Package Building with Poudriere
Custom Package Building with Poudriere
Yuichiro Naito
?

How to use PTI & IBRS patch

  • 1. PTI と IBRS パッチの使い方 PTI と IBRS パッチの使い方について 2018 年 3 月 30 日 (株)創夢 内藤 祐一郎
  • 2. FreeBSD-SA-18:03 ● 2018/03/14 にリリースされたセキュリティパッチ ● FreeBSD-SA-18:03.speculative_execution ● いわゆる Meltdown & Spectre への対策 ● 正確には以下の対策を含み – CVE-2017-5754 (Meltdown) – CVE-2017-5715 (Spectre V2) ● 以下の対策を含まない – CVE-2017-5753 (Spectre V1)
  • 3. CVE-2017-5754 (Meltdown) 対策 ● Page Table Isolation を導入した。 ● ユーザプロセスのメモリ空間にカーネルのメモリをマップ するのを(ほとんど)やめた。(参考:Wikipediaの記事) ● 元々は Intel がシステムコールの性能向上のために、ユー ザプロセスにもカーネルのメモリをマップしておくことが 推奨されていた。 – カーネルページが TLB から追い出されるのを防ぐ – カーネルページはアクセス保護で守られるので問題な かった
  • 4. CVE-2017-5715 (Spectre V2) 対策 ● Indirect Branch Restricted Speculation を有効にできるよ うにした。 ● 間接分岐命令実行時に投機的実行を制限するように、 Intel がマイクロコードのアップデートをリリースした。 ? この機能を有効にするためのパッチ。
  • 5. 対策パッチを使うには 1.FreeBSD 11.1R-p8 にアップデートする。 2.PTI (Page Table Isolation) はデフォルトで有効。 3.bios アップデートまたは ports/sysutils/devcpu_data をイ ンストールする。 4.devcpu_data を入れた場合は、 sysrc microcode_update_enable="YES" を実行しておく。 5./etc/sysctl.conf に hw.ibrs_disable=0 を書き込む。 6. 以上を行ったらリブートする。
  • 6. 対策が有効かどうかの確認 ● PTI (Page Table Isolation) – sysctl vm.pmap.pti で 1 が表示されること ● IBRS (Indirect Branch Restricted Speculation) – sysctl hw.ibrs_active で 1 が表示されること
  • 7. やっぱり無効にしたい場合 ● PTI (Page Table Isolation) – /boot/loader.conf に vm.pmap.pti = 0 を書き込む ● IBRS (Indirect Branch Restricted Speculation) – /etc/sysctl.conf に hw.ibrs_disable=1 を書き込む – ( /boot/loader.conf に書き込むでも可) ● 以上を設定後にリブートする。
  • 8. どのくらい性能に影響するのか? ● 試しに UnixBench を実行してみた。 ● UnixBench はアプリケーションの性能に影響を及ぼしそう な項目ごとにベンチマークを出してくれる。 ● PTI, IBRS がどういった処理に影響するのかが分かる。 ● 逆に一般的なアプリケーションのワークロードではないた め、ベンチマークの結果から一般的なアプリケーションの 性能を予測するのは難しい。
  • 9. 使用したハードウェア 目項 値 CPU Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz (Skylake) コア / スレッド数 4/8 メモリ量 16GB (DDR3L) HDD 128GB SSD (SATA3 接続 ) File System ZFS (version 5)
  • 10. 結果 (index 値 ) PTI on PTI off ベンチマ クのー 種類 IBRS on IBRS off IBRS on IBRS off Dhrystone 2 using register variables 2562.2 4748.0 2841.7 4771.0 Double-Precision Whetstone 1194.6 1300.6 1195.3 1306.1 Execl Throughput 706.9 885.6 743.4 945.0
  • 11. 結果 (index 値 ) PTI on PTI off ベンチマ クのー 種類 IBRS on IBRS off IBRS on IBRS off File Copy 1024 bufsize 2000 maxblocks 367.8 544.3 382.5 567.6 File Copy 256 bufsize 500 maxblocks 220.3 318.6 231.9 344.1 File Copy 4096 bufsize 8000 maxblocks 932.8 1297.8 971.5 1375.8
  • 12. 結果 (index 値 ) PTI on PTI off ベンチマ クのー 種類 IBRS on IBRS off IBRS on IBRS off Pipe Throughput 481.8 1176.1 567.3 1862.7 Pipe-based Context Switching 374.7 454.5 419.2 570.3 Process Creation 788.5 913.3 857.6 1030.8
  • 13. 結果 (index 値 ) PTI on PTI off ベンチマ クのー 種類 IBRS on IBRS off IBRS on IBRS off Shell Scripts (1 concurrent) 1612.5 2291.9 1671.4 2372.7 Shell Scripts (8 concurrent) 5139.7 6538.3 5289.5 6787.8 System Call Overhead 190.2 559.7 229.5 1157.6
  • 14. 結果 (index 値 ) PTI on PTI off ベンチマ クのー 種類 IBRS on IBRS off IBRS on IBRS off System Benchmarks Index Score 759.2 1144.3 818.2 1335.9
  • 15. buildworld + buildkernel ● 現実的なアプリケーションの例として FreeBSD 11.1R-p8 を make buildworld buildkernel した 時間を測定した。 ● PTI on & IBRS on の場合は 1901 秒。 ● PIT off & IBRS off の場合は 1811 秒。 ? 5% 遅くなった。
  • 16. まとめ ● 予想通りシステムコールの性能は劣化する。 ● しかし、多くのアプリケーションはシステムコールを頻繁 に呼び出すことを避けるように作られている。 ● IBRS は Dhrystone や Whetstone のように CPU の演算性 能に影響を及ぼすため、多くのアプリケーションに影響を 与えると考えられる。 ● 対策が必要な環境であれば止むを得ないが、必要のない環 境であればパッチを無効化してしまうのもありだと思う。