¤³¤Î¥Ú¡¼¥¸¤òÊÔ½¸¤¹¤ëºÝ¤Ï¡¢ÊÔ½¸¤Ë´Ø¤¹¤ëÊý¿Ë¤Ë½¾¤Ã¤Æ¤¯¤À¤µ¤¤¡£
³µÍ× †
- 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);
- ¥³¥Ô¡¼¸µfrom¤«¤é¥³¥Ô¡¼Àèto¤Ø1¥Ú¡¼¥¸¥³¥Ô¡¼¤¹¤ë
}
¸Æ½Ð¸µ †
ÍúÎò †
- ºî¼Ô¡§¤Ò¤é
- ÆüÉÕ¡§2005/10/4
- Âоݡ§2.6.10
¥³¥á¥ó¥È †