2016-11-30 7 views
1

linuxの1つのデバイスドライバでいくつかのコードをブラウズしているときに、スレッド(プロセス)にフラグPF_MEMALLOCが設定されています。私はここに私の疑問は、このフラグを正確に使用がコードcurrent->flags |= PF_MEMALLOC;のようなプロセス/スレッドでそれを設定したときにどのような、である、だから、「メモリの割り当て」フラグPF_MEMALLOCの使用方法

#define PF_MEMALLOC  0x00000800  /* Allocating memory */ 

を言っている、ヘッダファイルにこのフラグの定義を見つけました

答えて

3

このフラグは、メモリ割り当てパスで現在実行中のスレッドを示すためにカーネル内で使用されるため、ウォーターマークを無視し、ダーティページを書き出さないで強制的にメモリを割り当てることができます。

これは、元の割り当て要求自体を満たすためにページを解放しようとしているコードが、処理に少量のメモリを割り当てる必要がある場合、そのコードは再帰的にページを解放しようとしません。

ほとんどのドライバはこのフラグを必要としません。

関連する問題