第28章 ハードウェアの有効化
プライマリーボンドインターフェイスが失敗しないアクティブなインターフェイスを引き継ぎなくなる
primary_reselect=failure ボンディングパラメーターが正しく機能しませんでした。プライマリーインターフェイスは、他のインターフェイスがフェイルオーバーしていなくても常に引き継ぎました。今回の更新では、パラメーターが期待どおりに機能し、プライマリーボンディングインターフェイスは、現在のプライマリー以外のアクティブなインターフェイスが失敗した場合にのみ引き継ぎます。(BZ#1301451)
IBM Power Systems のリトルエンディアンバリアントでの updatepp 操作の失敗で、メモリーが破損しない
以前は、IBM Power Systems のリトルエンディアンバリアントで updatepp 操作に失敗すると、ページテーブルの次のハッシュ挿入操作に誤ったハッシュ値が使用されることがありました。これにより、更新ハッシュページテーブルエントリー(PTE)操作またはハッシュ PTE 操作が無効になり、メモリーが破損する可能性がありました。今回の更新で、updatepp 操作の失敗後にハッシュ値が常に再計算され、メモリーが破損する可能性がなくなりました。(BZ#1264920)
USB デバイスを削除しても競合状態が発生しなくなる
以前は、USB デバイスを削除すると同期の問題が発生し、競合状態が発生していました。その結果、メモリーが破損し、USB ホストコントローラーが失敗しました。今回の更新で、タイマーが早い段階で初期化され、競合状態が発生しなくなり、USB ホストコントローラーが失敗しなくなりました。(BZ#1290202)
AMD Turion II システムでカーネルを起動するようになりました。
以前は、ティックブロードキャストコードのライブロックが原因で、AMD Turion II システムがロックされ、起動時に応答しなくなることがありました。今回の更新で、ライブロックが修正され、AMD Turion II システムでカーネルが確実に起動するようになりました。(BZ#1265283)
実行キューロックの競合により、CPU が多数あるリアルタイムシステムではレイテンシーが大きくならなくなりました。
以前は、リアルタイムシステムでは、複数の CPU が
rq
ロックを取得しようとしていたため、ロックの競合とレイテンシーが発生していました。レイテンシーは CPU の数で乗算され、多くの CPU を持つシステムではレイテンシーが大きくなりました。今回の更新で、32 コアを超えるシステムが を プル
するのではなく、プッシュ
アプローチを使用するようになり、重要な領域の CPU の一覧が長くなりました。その結果、CPU が多数あるリアルタイムシステムでは、実行ロックの競合によりレイテンシーが大きくならなくなりました。(BZ#1209987)
NVM Express デバイスドライバーでマルチキューサポートを有効にすると、起動時にカーネルがクラッシュしなくなりました。
コアブロックデバイスコードのバグにより、NVMe (Nonvolatile Memory Express)デバイスドライバーでマルチキューサポートを有効にすると、起動時にカーネルが予期せず終了する場合があります。この問題は nvme ドライバーで確認されましたが、他のブロックデバイスも影響を受ける可能性があります。今回の更新でこのバグが修正され、上記の状況でカーネルがクラッシュしなくなりました。(BZ#1303255)
CPU 周波数が要求された値に到達するようになりました。
以前は、CPU 周波数の値は
intel_pstate
ドライバーによって誤って丸められていました。その結果、CPU 周波数は要求されたユーザーよりも低くなっていました。今回の更新により、丸めエラーが修正され、CPU 周波数が要求された値に到達するようになりました。(BZ#1279617)
FCoE コードのリアルタイムカーネルスケジューリングコードが修正されました。
リアルタイムカーネルの Fibre Channel over Ethernet (FCoE)ドライバーは、より一般的な
get_cpu ()および put_cpu
()関数ではなく、get_cpu_light
()関数および put
_cpu_
light ()関数を使用するように変更されました。ただし、get_cpu ()の 1 つは、get_ cpu_
light
()に変更されていませんでした。その結果、プリエンプションは無効になり、FCoE コードで アトミックなバグが発生する間、BUC: スケジューリング が実行されました。今回の更新でコードが修正され、バグが修正されなくなりました。(BZ#1258295)
IBM Power Systems のパフォーマンスは、NUMA ノードが PCI アダプターについて報告されなくなる
以前のリリースでは、リグレッションにより、NUMA (Non-Uniform Memory Access)ノードは PCI アダプターについて報告されませんでした。これにより、Red Hat Enterprise Linux 7 でデプロイされたすべての IBM Power System のパフォーマンスが大幅に低下しました。今回の更新でリグレッションが修正され、この状況でシステムのパフォーマンスが低下しなくなりました。(BZ#1273978)
DMA 転送の設定時にシステムがクラッシュしなくなる
Input/Output Memory Management Unit (IOMMU)、Non-volatile Memory Express (NVMe)デバイス、およびカーネルでページサイズの不整合により、以前は
nvme_setup _
prps ()関数で設定が発生していまし
た。これにより、DMA (Direct Memory Access)転送の設定時にシステムが予期せず終了する可能性があります。今回の更新で、デフォルトの NVMe ページサイズが 4 キロバイトに設定され、システムクラッシュが発生しなくなりました。(BZ#1245140)
ホットアンプラグ中にカーネルがハングしなくなりました
再試行可能なコマンドエラーにより、NVMe ドライバーは以前は I/O 記述子および DMA マッピングをリークしていました。その結果、ドライブが削除されると、ホットアンプラグ操作中にカーネルが応答しなくなる可能性がありました。今回の更新で、コマンドの再試行時にドライバーのメモリーリークが修正され、この状況でカーネルがハングしなくなりました。(BZ#1271860)
LRO (Large Receive Offload)フラグを無効にすると、正しく伝播されるようになりました。
以前のバージョンでは、Large Receive Offload (LRO)フラグを無効にすると、vlan および bond 階層の上記のデバイスからダウンは伝播されませんでした。その結果、トラフィックのフローが中断しました。今回の更新で問題が修正され、LRO フラグを無効にすると正しく伝播されるようになりました。(BZ#1266578)
Intel Xeon v5 プラットフォームでの P-state の切り替えに成功
以前は、Intel Xeon v5 プラットフォームでは、プロセッサー周波数は常に可能な限り高い頻度に関連付けられていました。その結果、これらのクライアントプラットフォームでの P-state の切り替えに失敗していました。今回の更新により、範囲を決定し、最小および最大パーセント制限値を調整することで、アイドル状態の頻度、ビジー周波数、およびプロセッサー周波数値を設定します。その結果、これらのクライアントプラットフォームで P-state の切り替えが成功するようになりました。(BZ#1264990)
cpuscaling
テストが失敗しなくなりました。
以前は、
intel-pstate
ドライバーの数丸バグが原因で、Red Hat Hardware Certification Test Suite の cpuscaling
テストが誤って失敗していました。このバグは修正され、cpuscaling
テストは十分に強力なハードウェアにパスするようになりました。(BZ#1263866)
genwqe
ドライバーは、メモリー不足中にメモリーを割り当てることができます。
genwqe
デバイスドライバーは、以前は、アトミックではない状況であっても、カーネルのアトミックメモリープールから連続するメモリーページを割り当てるために GFP_ATOMIC
フラグを使用していました。これにより、メモリー不足中に割り当てが失敗する可能性がありました。今回の更新で、genwqe
ドライバーのメモリー割り当てが GFP_KERNEL
フラグを使用し、ドライバーはメモリー不足の状態であってもメモリーを割り当てることができるようになりました。(BZ#1270244)
CPU の無効化時にコンソールがハングしなくなりました
以前は、リアルタイムカーネルで CPU
ホットプラグ
インターフェイスを使用して CPU を無効にすると、ホットプラグ
ロックとコンソールセマフォが間違った順序で取得できました。これによりデッドロックが発生し、システムコンソールが応答しなくなる可能性があります。今回の更新により、ロックが正しい順序で取得され、コンソールはハングしなくなりました。(BZ#1269647)
LRO が ixgbe
ドライバーでデフォルトで無効になる
Large Receive Offload (LRO)は転送およびブリッジと互換性がなく、パフォーマンスの問題や不安定になる可能性があるため、
ixgbe
ドライバーではデフォルトで無効になりました。
LRO を有効にするには、以下を実行します。
# ethtool -K ethX lro on
ethX
をインターフェイスの名前に置き換えます。(BZ#1266948)
IBM Power Systems の nx842 コプロセッサーが、破損したデータを提供しなくなる
以前は、IBM Power Systems の nx842 コプロセッサーが無効なデータを提供していました。これは、圧縮解除時に発生したデータ破損のバグによって生じました。今回の更新で、nx842 コプロセッサーへのすべての圧縮および非圧縮呼び出しに、循環冗長性チェック(CRC)フラグが含まれるようになりました。これにより、圧縮および非圧縮操作はすべてデータの整合性をチェックするように強制され、コプロセッサーが破損したデータを提供できなくなります。(BZ#1264905)
mlx4_en_recover_from_oom ()
関数を呼び出すときにシステムがクラッシュしなくなりました。
以前は、
mlx4_en_recover_from_oom ()関数が mlx4_
en
ドライブにより負荷の高い TCP ストリームで呼び出されると、オペレーティングシステムが予期せず終了していました。今回の更新でバグが修正され、このシナリオでシステムがクラッシュしなくなりました。(BZ#1258136)
iw
が規制情報を正しく表示する
以前は、
iw
ユーティリティーが iw reg set コマンドで設定された後に規制国を正しく表示しませんでした。今回の更新で、Red Hat Enterprise Linux のワイヤレスコードに合わせて iw
コードを調整するようになりました。その結果、iw
は規制国情報を期待どおりに表示します。(BZ#1324096)
i40e
が起動時に warn_slowpath
警告を発行しなくなりました。
以前は、コードが
rx_ring
構造体のクローンを作成しているにもかかわらず、新しいメモリーを割り当てる前にポインターをゼロにしないため、i40e
ドライバーはリングサイズの変更時に warn_slowpath
警告を発行していました。今回の更新でバグが修正され、警告が表示されなくなりました。(BZ#1272833)
netprio_cgroups
モジュールが起動時にマウントされるようになりました。
以前は、
systemd
は /sys/fs/cgroup/
ディレクトリーを読み取り専用としてマウントしていました。そのため、初期システムセットアップ中に /sys/fs/cgroup/net_prio/
ディレクトリーをマウントしませんでした。そのため、netprio_cgroups
モジュールは起動時にマウントされませんでした。今回の更新でこの問題が修正され、起動時に netprio_cgroups
モジュールがマウントされるようになりました。(BZ#1262204)
qlcnic
でボンディングの設定に失敗しなくなりました。
今回の更新以前は、
balance-tlb
や balance-alb
などの特定のボンディングモードは、適切に保存されていない MAC アドレスを設定していました。この MAC アドレスは、ボンディングを切断したときに復元されず、重複する MAC を残していました。そのため、元の MAC アドレスが存在しないため、ボンディングの再確立に失敗していました。今回の更新で、ボンディングがダウンした場合に MAC アドレスを適切に復元するようにコードが改善されました。その結果、qlcnic
デバイスを使用したボンディングは期待どおりに機能します。(BZ#1265058)