このページを編集する際は、編集に関する方針に従ってください。

概要

  • mm/memory.cにて定義
  • 引数で渡された古いページから新しいページにデータをコピーする

引数

  • from--コピー元の古いページ
  • to--コピー先の新しいページ
  • address--使用されない

実装

/*

* We special-case the C-O-W ZERO_PAGE, because it's such
* a common occurrence (no need to read the page to know
* that it's zero - better for the cache and memory subsystem).
*/

static inline void copy_cow_page(struct page * from, struct page * to, unsigned long address) {

	if (from == ZERO_PAGE(address)) {
  • ゼロページを返す。ゼロページはページフレーム割り当てを遅延させるために用いられる
    • ゼロページはグローバルな共有ページである
    • ゼロページには書き込み不可の印が付けてあるため、プロセスが書き込もうとすると、コピーオンライト機構が働く
      • この場合に限り、プロセスは書き込むことができるページを獲得することができる
    • 詳細はZERO_PAGE()/linux2.6を参照
		clear_user_highpage(to, address);
		return;
	}
	copy_user_highpage(to, from, address);

}

呼出元


履歴

  • 作者:ひら
  • 日付:2005/10/4
  • 対象:2.6.10
    更新日更新者更新内容

コメント



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-11-24 (火) 07:11:43 (2919d)