第10章 カーネル
/dev/disk/by-path/
が NPIV パスを許可するようになりました
以前は、2 つ以上の仮想ホストバスアダプター(HBA)が 1 つの物理 HBA に作成された場合、デバイスへのリンクは、パスごとに 1 つのリンクではなく、
/dev/disk/by-path/
ディレクトリーにのみ作成されていました。その結果、ファイバーチャネル N_Port ID Virtualization (NPIV)を使用して仮想 HBA で virsh
プールを作成しても、正しく機能しませんでした。今回の更新により、/dev/disk/by-path/
のシンボリックリンクが正しく作成され、一意になりました。物理ファイバーチャネル N_Port を介して接続された論理ユニット番号(LUN)用に udev
によって作成された /dev/disk/by-path/
のシンボリックリンクは同じままです。(BZ#1032218)
意図しないカーネルの警告メッセージを削除
Red Hat Enterprise Linux 6.8 の最近の変更により、
fallocate
操作の使用などにより、ファイルサイズが増加した特定の状況で意図しない警告メッセージが表示されました。
WARNING: at mm/truncate.c:614 pagecache_isize_extended+0x10d/0x120()
このバグは修正され、ファイルサイズを増やす操作によってこの警告メッセージが表示またはログに記録されなくなりました。(BZ#1205014)
librdmacm
が、RDMA ハードウェアが存在しない場合に警告とエラーを出力しなくなりました
以前は、RDMA ハードウェアが存在しないシステムに
librdmacm
がインストールされていた場合、場合によっては、不要な警告およびエラーメッセージを標準エラーストリーム(stderr)に出力することがありました。この更新により、librdmacm
はそのようなケースでは警告とエラーメッセージを stderr に出力しなくなりました。(BZ#1231766)
mlx5
ドライバーのカーネル起動の問題を修正しました。
致命的な PCIe エラーのないシステムで
mlx5
ドライバーが有効になっていると、カーネルが起動に失敗し、PCIe エラー処理を有効にした直後に mlx5
プローブルーチンでクラッシュしていました。このバグの原因となったパッチは削除され、このドライバーが有効になっているとカーネルが正常に起動するようになりました。(BZ#1324599)
スナップショット読み取り専用ステータスを変更するとカーネルクラッシュが発生することはなくなりました
以前は、ターゲットの再読み込み時に
dm-snapshot
ターゲットに例外ストアが不適切に使用されていました。その結果、lvchange -p r コマンドまたは lvchange -p rw コマンドを使用してスナップショットボリュームの読み取り専用ステータスを変更し、元のボリュームに I/O があった場合、カーネルは BUG ()
マクロでクラッシュしました。今回の更新により、例外ストアオーバー中に元の論理ボリュームが一時停止され、ハンドオーバー中に進行中の I/O がなくなりました。その結果、スナップショットの読み取り専用ステータスを変更しても、前述のカーネルクラッシュが発生することはなくなりました。(BZ#1177389)
qla2xxx
がバージョン 8.07.00.26.06.8-k に更新されました。
qla2xxx
ドライバーがバージョン 8.07.00.26.06.8-k に更新されました。この更新で、8.07.00.26 を経由したバックポートイニシエーターのアップストリームの修正およびマイナーな機能強化が反映されました。(BZ#1252111)
devpts_kill_sb ()
のメモリーリークが修正されました。
devpts
擬似ファイルシステムは、使用中に IDR リソースを割り当てます。ただし、この更新の前は、devpts
がアンマウントされても解放されませんでした。その結果、IDR システムによるリソースの使用がリークされ、コンテナーの起動と停止が頻繁に発生し、特に多数のコンテナーが使用されるという問題が発生する可能性がありました。この更新により、アンマウント時にこれらのリソースを解放するアップストリームパッチが適用され、devpts
ファイルシステムで使用される IDR リソースがアンマウント時にリークされなくなりました。(BZ#1283557)
sysctl パラメーターの設定が正常に実行されるようになりました。
sysctl -w vm.compact_memory=1 コマンドを実行して sysctl パラメーターを設定しているときに、システムは以前は次のエラーメッセージを返していました。
error: "Success" setting key "vm.compact_memory"
提供されるパッチではこのバグが修正され、前述のコマンドが正常に実行されるようになりました。(BZ#1278842)
netconsole
がカーネルクラッシュを引き起こしなくなりました。
以前はカーネルクラッシュを引き起こす可能性がありましたが、
netconsole
または netpoll
で同時にメッセージを送信するときに、ixgbe
または vmxnet3
アダプターをリセットしていました。今回の更新では、コアアダプターリセットパスと netpoll 送信パスの間に相互除外が追加され、このような状況でのカーネルクラッシュが防止されます。(BZ#1252212)
カーネルがクラッシュしないようにするために VFS に追加されたループチェック
NFS クライアントは、以前は、一部の NFS サーバーディレクトリー構造のディレクトリーループを検出できませんでした。これに失敗すると、ファイルシステムのマウントを解除しようとしても、NFS inode が参照されたままになり、カーネルがクラッシュする可能性がありました。今回の更新により、VFS にループチェックが追加され、この問題が効果的に防止されるようになりました。(BZ#1254020)
USB サウンドカードからのオーディオの再生が期待どおりに機能します
URB_ISO_ASAP
セマンティクスが正しくないため、USB サウンドカードを使用してオーディオファイルを再生すると、以前は一部のハードウェア設定で失敗する可能性がありました。今回の更新でバグが修正され、USB サウンドカードからのオーディオを再生することが期待どおりに機能するようになりました。(BZ#1255071)
HID ドライバーのページフォールトと後続のカーネル oops が修正されました。
以前は、Human Interface Device (HID)ドライバーが、調整されたバッファーでレポートを実行すると、レポートの最後が読み取られたときに、ページフォールト割り込みとカーネル oops が発生する可能性がありました。今回の更新では、レポートの末尾に追加のバイトを追加してこのバグが修正されたため、レポートの読み取りがページ境界を越えることはありません。その結果、ページフォールトと後続のカーネル oops は発生しなくなります。(BZ#1256568)
フリーズファイルシステムを同期するときのデッドロックを修正しました。
s_umount
ロックの順序が壊れているため、リンクされていないファイルが閉じられ、同期(または sync
fs
)ユーティリティーが同時に実行されたときに競合状態が発生していました。その結果、同期
とファイルシステムのフリーズを試みるプロセスで、フリーズしたファイルシステムでデッドロックが発生していました。この更新により、フリーズファイルシステムで同期(または sync
fs
)がスキップされ、前述の状況ではデッドロックが発生しなくなります。(BZ#1241791)
起動の失敗を防ぐために dracut
の依存関係が更新されました。
暗号化暗号を使用する前に、起動時に Deterministic Random Bit Generator (DRBG)モジュールを読み込む必要があります。ただし、古いバージョンの
dracut
では、ディスク暗号化に暗号化を使用することができる initramfs
イメージに DRBG が含まれていませんでした。その結果、ディスク暗号化が root ファイルシステムで使用されていた場合、ブートプロセスは失敗していました。今回の更新で、DRBG モジュールが dracut
の依存関係リストに追加され、モジュールが initramfs
に存在するようになり、暗号化されたルートファイルシステムを持つシステムが正常に起動できるようになりました。(BZ#1241338)
パケットが正しくカウントされるようになりました
リグレッションにより、パケットカウンターは、通常処理された完了(パケット)の数のみを検出しましたが、誤ったものは検出できませんでした。したがって、これらのパケットは確認されないため、ファームウェアは割り込み要求(IRQ)を返します。このバグを修正するためのパッチが提供され、すべてのパケットが期待どおりにカウントされるようになりました。(BZ#1241287)
ディレクトリーの削除時のデッドロックを修正しました。
負の子 dentry への参照によりそのディレクトリーへの参照が保持されている間にディレクトリーを削除する場合、dentry ディレクトリーは以前は強制終了されませんでした。さらに、負の子 dentry が強制終了されると、リンクが解除され、未使用の dentry がキャッシュに存在していました。これにより、問題のファイルシステムがフリーズしている間に dentry エビクションを強制することでデッドロックが生じる可能性があります。今回の更新で、未使用の dentry がすべてハッシュ化されず、ディレクトリーの削除直後にエビクトされ、デッドロックが回避され、前述のシナリオでシステムがハングしなくなりました。(BZ#1241030)
ヒュージページ領域 の
マッピングによってデータが破損しなくなる
hugetlb
内では、リージョンデータ構造は、メモリーマップセマフォと単一の hugetlb
インスタンスミューテックスの組み合わせによって保護されました。ただし、以前のリリースで、ページフォールトのスケーラビリティーがカーネルにバックポートされ、単一のミューテックステーブルが導入され、ロックの組み合わせが不十分になり、破損や未定義の動作を引き起こす可能性のある競合ウィンドウにつながる可能性があります。たとえば、ソフトウェアマッピングや、同じ領域への同時スレッドを持つ hugetlb
領域を再マッピングした場合に、ページ障害を引き起こした可能性があります。今回の更新では、適切なシリアライゼーションのリージョン追跡機能に必要な スピンロック
を導入することで、問題を修正しています。(BZ#1260755)
マルチパス要求キューが原因で停止が生じなくなりました
以前は、マルチパス要求キューを実行すると、パスが I/O 負荷時に定期的に失敗した場合にリグレッションが発生していました。このリグレッションは、I/O が 300 秒を超えた I/O が停止すると見つかりました。この更新により、マルチパス要求キューの実行を減らすように意図された変更が元に戻され、I/O がタイムリーに完了します。(BZ#1240767)
inode が意図したとおりに解放されるようになりました
以前は、dcache に存在しない
dentry
('cold dcache ')でファイルハンドル(fhandle
)を開き、unlink
()関数および close ()関数を使用すると、close ()
システム コール
時に inode が解放されませんでした。その結果、iput ()
final が無期限に遅延しました。このバグを修正するためのパッチが提供され、inode が期待どおりに解放されるようになりました。(BZ#1236736)
vmxnet3
ドライバーが vmxnet3
アダプターのバージョン 2 と互換性があるようになりました。
バグにより、
vmxnet3
ドライバーは、vmxnet3
アダプターバージョン 2 で使用している場合にメモリーリークやスリーミング割り込みなどの誤った動作を示していました。vmxnet3
ドライバーの動作を修正するために、いくつかのアップストリームパッチが適用されています。この更新では、rx
パスのメモリーリークが修正され、PCI シャットダウンのハンドラーを実装し、vmxnet3
がアダプターバージョン 2 と互換性があります。(BZ#1236564)
IP フラグメントは時間内に破棄されます
デフラグエンジンによって使用されるメモリーは、CPU ごとに考慮されます。ただし、CPU が多数あるシステムでは、CPU ごとのキャッシュがリアルタイムから影響を受ける可能性があるため、デフラグエンジンが早すぎて古いフラグメントを破棄する可能性があります。今回の更新で、この不一致を最小限に抑える修正が追加され、正しいタイミングで古い IP フラグメントが破棄されるようになりました。(BZ#1235465)
GFS2 が正しい値を参照するようになる
以前は、GFS2 ファイルシステムには、初期化されていない変数を参照することを引き起こすまれなタイミングウィンドウがありました。その結果、カーネルパニックが発生していました。このタイミング期間中に正しい値を参照するようにコードが変更され、カーネルにパニックがなくなりました。(BZ#1267995)
IPC SysV セマフォを使用するソフトウェアがカーネルで正しく動作する
プロセスまたはスレッドの終了時に、Linux カーネルが以前に実行された SysV セマフォ操作を元に戻すと(
SEM_UNDO
フラグとともに semop
を使用して行った)、別のプロセスまたはスレッドが操作が発生した場所と同じセmaphore を削除できる競合状態が発生し、カーネル内で解放されているメモリーを使用し、予期しない動作が可能になる可能性がありました。このバグは、IPC SysV セマフォを使用するソフトウェア( IBM DB2
など)で認識される可能性があります。このソフトウェアは、競合状態の発生後に、プロセスまたはユーティリティーの一部が IPC セマフォ操作またはシステムコールで誤って停止する可能性があります。このバグを修正するためのパッチが提供され、前述のシナリオでカーネルが期待どおりに動作するようになりました。(BZ#1233300)
perf buildid-cacheの競合状態を修正しました。
今回の更新以前は、同じファイルのコピーを試みる複数のインスタンスが原因で、perf buildid-cache の競合状態がトリガーされ、システムライブラリーおよびその他のファイルを切り捨てる可能性がありました。今回の更新により、
buildid
ディレクトリーにコピーする際に一意の一時ファイルが使用され、前述の競合状態が発生しないようにします。(BZ#1229673)
カーネルクラッシュを防ぐためにキャッシュシリアル化が追加されました
キャッシュオブジェクトが強制終了された後にキャッシュ操作が送信される可能性がある競合状態により、
cachefilesd
サービスを実行しているシステムでカーネルがクラッシュすることがありました。提供されたパッチにより、コードでオブジェクトが使用できなくなることで競合状態が防止されます。その結果、このシナリオでは、オブジェクトの後続の操作がすべて拒否され、カーネルがクラッシュしなくなりました。(BZ#1096893)
edac
モジュールのリロードまたは削除が期待どおりに機能するようになりました
以前は、
i7core_ edac
モジュールを使用してシステムで edac モジュールのリロードまたは削除により、多数の警告メッセージが返され、その後のカーネルがクラッシュする可能性がありました。基礎となるソースコードにパッチが適用され、edac
モジュールでの操作時にカーネルがクラッシュしなくなりました。(BZ#1227845)
ボンディングインターフェイスにカスタム MAC アドレスを再度指定できます。
ボンディングされたインターフェイスを持つシステムでは、ユーザーはボンディング用に独自のカスタム MAC アドレスを指定できませんでした。このバグを修正するためのパッチが提供され、前述の状況ではカスタム MAC アドレスを再度指定できます。(BZ#1225359)
st
ドライバーおよび sg
ドライバーが正しく動作するようになりました。
FCP_RSP_INFO
フィールドの不適切な長さにより、フィールドの一部をコピーし、st
ドライバーおよび sg
ドライバーが正しく機能しませんでした。今回の更新で、FCP プロトコルに関連するコードが更新され、st
および sg
が期待どおりに機能するようになりました。(BZ#1223105)
スレーブインターフェイスが自動的に無差検出モードになる
非アクティブな間にボンディングインターフェイスがプロミスキャスモードに切り替わった場合、ボンド VLAN インターフェイスが再びアクティブになった後でも、スレーブインターフェイスは自動的に無差モードになりませんでした。今回の更新により、フラグの変更は常にインターフェイスに伝播され、スレーブインターフェイスが想定どおりに無差モードになるようになりました。(BZ#1222823)
force_hrtimer_reprogram
パラメーターがカーネルに追加
以前は、タイマーの有効期限の問題により、
hrtimer
の ksoftirqd
デーモンが実行中のプロセスによってブロックされていた場合は、スケジューラーティックが長すぎて停止していました。今回の更新で、force_hrtimer_reprogram
カーネルパラメーターが追加されました。カーネルコマンドラインで force_hrtimer_reprogram=1
を使用すると、期限切れのすべてのタイマーの再プログラムが強制され、このバグの発生を防ぐことができます。(BZ#1285142)
IPR
メモリーバッファーのインデックス更新
64 ビット IBM Power Systems (ppc64)の
ipr
ドライバーのバグにより、後方互換性メモリーバッファーのインデックスが作成され、Hardware Test Exerciser (HTX)テストスイートの実行時にカーネルがクラッシュする可能性がありました。今回の更新で、ipr
メモリーバッファーインデックスは modulo ではなくビットマスク操作を使用し、ビットが低くマスクされ、後方互換性が回避されなくなりました。(BZ#1209543)
kernel に追加された cgroup_threadgroup_rwsem
変数
以前は、
attach_task_by_pid ()
関数は、終了スレッドと競合し、すでに解放されている group_rwsem
メンバーの signal_struct
リストのロックまたはロック解除を試みる場合がありました。これにより、カーネルクラッシュが発生する可能性があります。この更新により、cgroup_threadgroup_rwsem
変数が追加されました。これにより、このバグが修正され、このシナリオでカーネルクラッシュが発生しないようにします。(BZ#1198732)
失効したキーリングにキーを追加しても、メモリーリークが生じなくなりました
以前は、
request_key ()
関数を使用してキーを取り消されたキーリングに追加しようとすると、カーネルエラーパスでリソースリークが発生していました。割り当てられ、失敗したキーはカーネルメモリーのままになり、ガベージコレクターが削除されることができませんでした。今回の更新により、この状況では、失敗したキーの参照数が 0 に正しく到達するようになり、ガベージコレクターはそれらを削除できるようになり、失敗したキーが無期限にメモリーに留まることがなくなりました。(BZ#1188442)
fork ()が繰り返し発生するカーネルパニックが発生しなくなる
以前は、フォークのパターンが異常なと、関与するプロセスの数が少なくなった場合でも、
anon_vma_chain
および anon_vma スラブ
メモリーが無限に増大する可能性がありました。これにより、カーネルパニックが発生していました。提供されたパッチは、新しいインスタンスをフォークするのではなく、既存の anon_vma
を再利用するヒューリスティックを追加し、anon_vma->degree
カウンターを追加します。これにより、anon_vma
メンバーの数が仮想メモリー領域の数の 2 倍にならないようにします。その結果、この状況ではカーネルパニックが発生しなくなりました。(BZ#1151823)
固定されたジョブスケジューリングにより CPU 負荷が分散されるようになりました
早期にデクリメントされた
calc_load_task
により、計算された負荷平均はマシンの CPU の数までオフでした。その結果、ジョブスケジューリングが適切に機能せず、システムパフォーマンスが低下することがありました。この更新により、CPU のデルタが NO_HZ
アイドルに分離され、保留中のアイドルデルタがグローバルのアクティブなカウントに折りたたまれ、NO_HZ
モードのままの場合は idle-duration の平均が正しく付与されるようになりました。現在、ジョブのスケジューリングは正しく機能し、CPU の負荷が分散されるようになりました。(BZ#1167755)
1 つのプロセスのみが特定のメモリーページを解放できます。
GFS2 ファイルシステムの inode の無効化コードと inode 消去コードとの間のハッシュテーブルの無効化コードで競合状態が見つかりました。状況によっては、2 つのプロセスが同じメモリーを解放しようとする可能性があり、カーネルパニックが発生する可能性があります。今回の更新で、ハッシュテーブルの無効化コードに
spin_lock
が追加され、単一のプロセスのみが特定のメモリーページを解放しようとするようになり、競合状態が発生するのを防ぎます。(BZ#1250663)
⚙ は、be2net を介して VLAN パケットを正常に転送します
以前は、
macvlan
または ⚙ デバイス上にスタックされた VLAN は、VLAN フィルターを実装して使用するデバイスでは機能しませんでした。
その結果、⚙ パススルー モード
は、VLAN パケットの be2net
ドライバーを介して転送できませんでした。今回の更新で、macvlan
ドライバーへの VLAN ndo
呼び出しを実装して、適切な VLAN タグ ID を低いデバイスに渡します。その結果、⚙ は be2net
経由で VLAN パケットを正常に転送します。
(BZ#1213846)
primary_reselect=failure が正しく動作するようになりました。
バグにより、
primary_reselect=failure
ボンディングパラメーターが正しく機能しませんでした。他のインターフェイスが失敗しなくても、プライマリーインターフェイスは常にフェイルオーバーしていました。今回の更新により、パラメーターは期待どおりに機能し、プライマリーボンドインターフェイスは、現在のプライマリー以外のアクティブインターフェイスに障害が発生した場合にのみ引き継ぎます。(BZ#1290672)
logshifter からのログメッセージが正しく処理されるようになりました。
負荷が大きくなると、logshifter などの一部のアプリケーションでは、システムロガーがスプールするログメッセージのバーストを生成する可能性があります。競合状態により、ログボリュームが管理可能なレベルにドロップした後でも、そのアプリケーションからのログメッセージが失われる可能性がありました。今回の更新では、システムロガーが使用するソケットの送信者に通知するために使用されるカーネルメカニズムが修正され、受信側でより多くのスペースが利用できる競合状態が削除され、以前は送信者が新しいメッセージの送信を停止し、すべてのログメッセージを正しく処理できるようになりました。(BZ#1284900)
KVM 仮想ゲストがブリッジインターフェイスを介して正常に接続されるようになりました
以前は、大きな受信オフロード(LRO)フラグがまだある物理インターフェイスの上に、ブリッジインターフェイスが存在する可能性がありました。ブリッジインターフェイスは、基盤となるデバイスで LRO を有効にしても互換性がないため、仮想マシン(VM)からのネットワーク通信が正しく機能しなくなる原因と、ブリッジ上のネットワーク通信が原因です。今回の更新で、ブリッジの下にあるデバイス get LRO disabled が確実に無効になり、仮想マシンがブリッジインターフェイス経由で正常に接続されるようになりました。(BZ#1258446)
swapfree サイズが正しくなりました
get_swap_page ()ロックの以前の変更により、
swap_lock
スピンロックの使用が削除されました。これにより、nr_swap_pages
が破損し、/proc/meminfo
ファイル内の無効な SwapFree
情報が発生する可能性があります。ここで、SwapFree
のサイズが SwapTotal
のサイズを超える可能性があります。この更新により、nr_swap_pages
のアトミック変数が使用され、/proc/meminfo
の SwapFree
のサイズが正しくなりました。(BZ#1252362)
SCSI エラー処理によりデッドロックが生じなくなりました。
以前は、リムーバブルメディアデバイスで SCSI コマンドがタイムアウトした場合、エラー処理コードは常にデバイスのドアを再ロックしようとしていました。これにより、すべての要求が使用中の場合に、ドアのロックを再ロックする要求が実行されるため、デッドロックが発生する可能性がありました。今回の更新で、SCSI エラー処理は、エラー処理手順の一部としてデバイスがリセットされた場合にのみ再ロックを試み、デッドロックが発生しなくなりました。(BZ#995234)
LRO フラグが正しく伝播されるようになりました。
大規模な受信オフロード(LRO)フラグの無効化は、VLAN およびボンディング階層で上記のデバイスからダウンしていなかったため、トラフィックのフローが損なわれていました。このバグは修正され、LRO フラグが正しく伝播されるようになりました。(BZ#1259008)
マルチキャストグループの割り当てが修正されました。
カーネルが
nl80211
プロトコルにマルチキャストグループを誤って割り当てていたため、nl80211
ワイヤレスドライバーで、hostapd
がアクセスポイントモードでワイヤレスデバイスを起動および初期化できないなどの問題が発生していました。この更新により、nl80211
へのマルチキャストグループの割り当てが修正され、ワイヤレスデバイスを正しく管理できるようになりました。(BZ#1259870)
IPv6 での UDP データグラムの送信は期待どおりに機能します
競合状態により、IPv6 プロトコルで UDP データグラムを送信するときに、以前は
ipv6_txoptions
破損が表示されました。カーネルパニックの原因となったデータの破損を防ぐために、アップストリームパッチが適用されました。(BZ#1312740)
NVMe ハードロックアップパニックが発生しなくなる
nvme
ドライバーがキューロックを長く保持した場合(DMA マッピング中に、ロックアップが発生したなど)、nvme
ロックアップパニックが発生していました。この更新により、基礎となるソースコードが修正され、nvme
が期待どおりに機能するようになりました。(BZ#1227342)
fs_clear_inode ()の BUG_ON ()が発生しなくなりました。
以前は、BUG_ON ()シグナルが fs_clear_inode ()関数に表示されていました。この場合、nfs_have_writebacks ()関数は nfs_inode->npages の正の値を報告していました。これにより、カーネルパニックが発生していました。提供されるパッチは、PagePrivate のチェックで inode i_lock を保持し、要求をロックして、このバグが修正され、シリアル化を実行します。(BZ#1135601)
UID と GID が正しい値に割り当てられます。
リグレッションにより、autofs マウント要求時に UID および GID 環境変数に正しい値が割り当てられませんでした。この更新では、UID と GID の割り当てを修正するパッチが提供され、UID と GID がマウントをトリガーしたユーザーの値が使用されるようになります。(BZ#1248820)
LUKS と IPSEC を同時に使用しても、データの破損がなくなりました。
IPSEC と LUKS で暗号化したボリュームを同時に使用すると、LUKS ボリュームでデータが破損する可能性があります。提供されているパッチによりこのバグが修正され、LUKS および IPSEC を同時に使用するときにデータの破損は発生しなくなります。(BZ#1259023)
VLAN_GROUP_ARRAY_LEN has been Revived
以前の更新では、VLAN_GROUP_ARRAY_LEN カーネルマクロの名前が VLAN_N_VID に変更されました。この名前変更により、VLAN_GROUP_ARRAY_LEN を必要とするカーネルモジュールをコンパイルする際に(vmxnet3 外部ドライバーなど)、コンパイルに失敗していました。今回の更新で、古いマクロが回収され、サードパーティーモジュールがコンパイルできるようになりました。(BZ#1242145)
破損した ELF ヘッダーが修正されました
以前は、
/proc/vmcore
ELF ファイルの破損した ELF ヘッダーにより、ELF ファイルが正しく読み取られることができませんでした。これにより、kdump
サービスが予期せず終了し、カーネルパニックが発生していました。提供されているパッチにより ELF ヘッダーが修正され、kdump
が期待どおりに成功するようになりました。(BZ#1236437)
tty ミューテックスでクォータ警告のデッドロックが修正されました。
以前は、クォータコードが tty レイヤーに呼び出して警告を出力できました。これにより、tty->atomic_write_lock と dqptr_sem の間のロックの反転が発生する可能性がありました。提供されたパッチにより、クォータユーティリティーコードが dqptr_sem semaphore が保持されている tty レイヤーを呼び出さなくなり、プロセスはデッドロックになりました。(BZ#1232387)
VMA リストが空の場合、anon_vma の程度が常にデクリメントされます
anon_vma
データ構造では、ある程度、この anon_vma
を指す子 anon_vma メンバーと仮想メモリー領域の数をカウントします。unlink_anon_vma ()関数で、リストが空の場合、anon_vma
は外部参照数がゼロかどうかが解放されるため、親の程度を減少する必要があります。ただし、unlink_anon_vma ()で程度を減少させないと、BUG_ON ()シグナルがトリガーされました。提供されたパッチによりこのバグが修正され、程度は期待どおりに減少するようになりました。(BZ#1309898)
繰り返し sysrq イベントが期待どおりに進行する
以前は、NMI コンテキストで
sysrq
イベントを繰り返すとデッドロックが発生し、システムがクラッシュしていました。提供された patchset は、seq_buf
バッファーと per_cpu printk ()関数に最小限のサポートを追加し、前述のデッドロックが発生するのを防ぎます。(BZ#1104266)
Unix ドメインのデータグラムソケットでデッドロックが発生しなくなる
リグレッションにより、データグラムをそれ自体に送信するときに Unix ドメインデータグラムソケットがデッドロックになる可能性がありました。提供されたパッチは、別のスクチェックを unix_dgram_sendmsg ()関数に追加し、前述のデッドロックは発生しなくなります。(BZ#1309241)
プロセスを終了すると、カウンターが期待どおりに減少します
以前は、Kernel Shared Memory (KSM)またはページ移行が使用されている場合、終了プロセスが匿名の仮想メモリー領域に関連するカウンターをデクリメントすることができませんでした。その結果、カウンターのアンバランスによりカーネルパニックが発生していました。提供されているパッチによりこのバグが修正され、前述のシナリオでカーネルパニックは発生しなくなります。(BZ#1126228)
UEFI ブートモードでの VGA 出力速度が改善されました。
以前は、VGA コンソールが UEFI ブートモードで非常に遅いため、CPU または I/O デバイスが多数あるサーバーのブート時間が大きく異なります。その結果、ブートフェーズで大量のデバッグ出力を出力することが非常に遅くなり、起動時に発生する問題の分析が困難になりました。さらに、OS の実行中に VGA 出力の速度が遅くなり、システムがハングする可能性があります。この修正により、UEFI ブートモードで VGA 出力速度が改善され、前述の問題が回避されます。(BZ#1290686)
ndo_set_multicast_list フィールドがネットワークドライバーに再び存在する
MAC アドレスを変更した後に
netxen_nic
物理インターフェイス上に VLAN インターフェイスを作成すると、以前には VLAN 経由でリモート VLAN への ping 送信に失敗していました。指定したパッチにより、ネットワークドライバーの ndo_set_multicast_list
フィールドの使用が追加され、ping は予想通りに成功するようになりました。(BZ#1213207)
fio が XFS が破損しなくなりました。
xfs_fio
ユーティリティーを使用してエクステントサイズを調整し、提供された設定ファイルを使用して fio
ツールを実行すると、以前は XFS ファイルシステムが破損しました。提供されたパッチによりサイズのヒントが拡張され、fio
が XFS が破損しなくなりました。(BZ#1211110)
NFS マウントが正しく報告されるようになりました。
2049 のすべてのパケットを拒否し、NFS クライアントにファイル共有をマウントするように NFS サーバーでファイアウォールを設定すると、以下のエラーが返されました。
connection timed out
提供された修正によりエラーメッセージが修正され、以下が読み込まれました。
connection refused
(BZ#1206555)
自動署名を有効に
sec= マウントオプションでセキュリティータイプを設定し、最後の( つまり )で署名が指定されていなかった場合、自動署名はこれまで有効になっていませんでした。たとえば、DFS ノードが署名を必要とする DFS マウントでは、クライアントが sec= を使用して無効にしていた場合、ノードを有効にするために署名が必要な場合は、DFS ノードをマウントできませんでした。提供される修正は、すべてのセキュリティータイプに
MAY_SIGN
フラグを設定するため、このバグが修正されます。(BZ#1197875)
ダイレクト I/O を使用した大規模なファイルの書き込みが正常に行われるようになる
以前は、16 MB のチャンクのダイレクト I/O を使用して大きなファイルを書き込むと、16 MB の大きな空きエクステントのチャンクが逆の順序でファイルに割り当てられるパス論理割り当てパターンが発生することがありました。このパッチにより、後方互換性が回避され、ダイレクト I/O を使用して大規模なファイルの書き込みは正常に行われるようになりました。(BZ#1302777)
縮小値の戻り値の修正によりシステムハングを防止する
shrink_dcache_memory
縮小機能はオーバーフローする可能性があり、ログに次の行を報告します。
negative objects to delete
その結果、システムがハングしていました。この縮小関数の戻り値からこのオーバーフロー署名の拡張に提供されたパッチテストで、
INT_MAX
プリプロセッサーマクロよりも大きな max_pass
変数を設定することを拒否します。その結果、前述のハングは発生しなくなります。(BZ#1159675)
perf が更新されました
幅広いハードウェアに対応し、多くのバグ修正を取り入れるため、
perf
が更新されました。主な機能拡張は、次のとおりです。
- 追加のモデル番号(第 5 世代 Intel Core i7 プロセッサー)のサポートが追加されました。
- Intel Xeon v5 モバイルおよびデスクトッププロセッサーのサポートが追加されました。
- Intel Xeon v3 および v4 プロセッサーの uncore サブシステムのサポートを有効にしました。
- Intel Xeon Processor D-1500 のアンコアサブシステムのサポートを有効にしました。(BZ#1189317)
複数の WWPN の設定が容易になりました
今回の機能拡張により、targetcli で tag および untag コマンドのサポートが追加されました。20:00:
00:1b:21:59:12:36
数値の WWPN を使用して LUN マッピングを設定する代わりに、tag コマンドで 1 つ以上の WWPN にタグを付け、そのタグを使用して LUN マッピングを設定することができるようになりました。詳細は、help tag and help untag commands within the acls
configuration node を参照してください。(BZ#882092)
iscsi_firmware が搭載されているシステムを起動できる。
dracut の以前のリグレッションが原因で、iSCSI オフロードまたは iSCSI Boot Firmware Table (iBFT)を搭載したシステムが起動を停止していました。その結果、カーネルコマンドラインに iscsi_firmware を使用して Red Hat Enterprise Linux 6.8 システムを新たにインストールした場合、起動できない場合があります。今回の更新でバグが修正され、上記のシナリオのシステムが期待どおりに起動できるようになりました。(BZ#1322209)