ºòÆüȯɽ¤µ¤ì¤¿Ãæ´Ö·è»»Ã»¿®¤ò¸«¤ë¤È¡¢¥ª¥ó¥é¥¤¥ó¥²¡¼¥à¤Î¥½¥Õ¥È¥¦¥¨¥¢Åù¤Ë´Ø¤ï¤ë¸ºÂ»4²¯±ß¤äÅê»ñͲÁ¾Ú·ô¤Îɾ²Á»¤Î·×¾å¤Ê¤É¤â¤¢¤ê¡¢Ãæ´Ö¤Ç6²¯±ß¤Î½ã»¼º¤ò·×¾å¤·¡¢³ô¼ç»ñËܹç·×¤¬5ÀéËü±ß¤Û¤É¥Þ¥¤¥Ê¥¹¡Ê¤Ä¤Þ¤ê¡¢ºÄ̳Ͳá¡Ë¤Ë¤Ê¤Ã¤Æ¤Þ¤¹¡£
Ʊ»þ¤Ë¼ÒŤâºûÅĻᤫ¤éÅÄÃæÉû¼ÒŤ˸òÂå¡£
¤µ¤¯¤é¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Ã¤Æ¶áÆüÃæ¤Ë°ú±Û¤·¤¹¤ëË¿¼Ò¤â»È¤Ã¤Æ¤¤¤¿¤è¤¦¤Ê¡£¡£
¤Û¤à¡£
¤ò¤ß¤Æ¡¢Áá®ÅÐÏ¿¤·¤Æ¤ß¤¿¡£
¤¢¤¿¤é¤·Êª¹¥¤¤Ç¤¹¤Í :D
¤ª¤ì¡£¡£±Ñ¸ì¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤é¡¢·ëº§¤¹¤ë¤ó¤À¡¡¢«»àË´¥Õ¥é¥°
http://headlines.yahoo.co.jp/hl?a=20071106-00000015-bcn-sci
¡¡¡Ö¥â¥Ð¥¤¥ëPEAKS¡Ê¥Ô¡¼¥¯¥¹¡Ë¥×¥í¥»¥Ã¥µ¡¼¡×¤ò´Þ¤àȾƳÂβóÏ©¤Ë¤Ï¾¾²¼¤¬³«È¯¤·¤¿¥Ç¥¸¥¿¥ë²ÈÅÅÍѤΥ·¥¹¥Æ¥àLSI¡ÖUniPhier¡Ê¥æ¥Ë¥Õ¥£¥¨¡Ë¡×¤òºÎÍÑ¡£Ã夦¤¿¥Õ¥ë¤ò69»þ´Ö¤âϢ³ºÆÀ¸²Äǽ¤Ê¾ÊÅÅÎϤ˲䨡¢²»À¼°µ½Ì¤Ç¼º¤ï¤ì¤¿¹â²»°è¤òÊä´°¤¹¤ë¹â²»¼ÁºÆÀ¸¤ò¼Â¸½¤·¤¿¡£
¤¦¡¼¤à¡¢°ÕÌ£¤¬Ê¬¤«¤é¤ó¤Ê¡£
¤³¤ì¤À¤±¸«¤ë¤È¡Ö¤¦¤Ë¤Õ¤£¤¨¡×¤ÎÃæ¤Ë¡Ö¤Ô¤£¤¯¤¹¡×¤¬Æþ¤Ã¤Æ¤¤¤ë¤ß¤¿¤¤¤À¤±¤É¡¢¤¤¤Ä¤Î¤Þ¤Ë¤½¤ó¤Ê°ÌÃ֤Ť±¤Ë¥Ö¥é¥ó¥ÉÊѤï¤Ã¤¿¤ó¤À¡©
Íè·îÂçºå¤¤¤Ã¤¿¤È¤¤Ë¤Ç¤â¥Ò¥¢¥ê¥ó¥°¤¹¤Ù
¤·¤«¤·¡¢¾¾²¼¤Ï¥Ë¥å¡¼¥¹ÆÉ¤ó¤Ç¤ë¤À¤±¤Ç¼ÒÆâ»ö¾ð¤¬ÆÉ¤á¤¹¤®¤È¤«¥ª¥â¥¿
¤½¤â¤½¤âµ¤¤Å¤«¤º¡¢¼Â³²¥Ê¥·£÷£÷
¤à¤«¤Ä¤¯¡¦¡¦¡¦
Ë¿½ê¤è¤ê¡§
ĹÃË¡§¡Ö¤ª¤È¤¦¤µ¤ó¡¢½Â¤Á¤ã¤ó¤¬¤µ¡¼¡×
Éã¿Æ¡§¡Ö½Â¤Á¤ã¤ó¤ÆÃ¯¤À¤è¡©¡×
ĹÃË¡§¡Ö½ÂÂô±É°ì¡×
Éã¿Æ¡§¡Ö¡Ä¡×
ĹÃË¡§¡Ö¥Ð¥ó¥³¥¯¤Ã¤Æ¥¿¥¤¤À¤è¤Í¡©¡×
Éã¿Æ¡§¡Ö¤½¤¦¤À¤±¤É¡¢¤½¤ì¤¬½Â¤Á¤ã¤ó¤È¤Ê¤ó¤Î´Ø·¸¤¬¤¢¤ë¤ó¤À¡©¡×
ĹÃË¡§¡Ö½Â¤Á¤ã¤ó¤¬¡¢¥Ð¥ó¥³¥¯ÇîÍ÷²ñ¤Ç¥Ñ¥ê¤Ë¹Ô¤Ã¤¿¤Ã¤Æ¡¢¤½¤ìÊѤ¸¤ã¤Ê¤¤¡©¡×
Éã¿Æ¡§¡Ö¡Ä¡Ä¡×
¤¤¤Ä¤â»×¤¦¤±¤É¡¢¤É¤¦¤¤¤¦±ÑºÍ¶µ°é¤ò»Ü¤·¤¿¤é¤³¤¦¤¤¤¦²ñÏäˤʤë¤ó¤À¤í¤¦¡£¾Í褬¶²¤í¤·¤¤¡¦¡¦¡¦
¤Ö¤ë¤ê
¤À¤ó¤À¤ó¿¦¾ì¤Ç³«¤±¤Ê¤¤¥Ú¡¼¥¸¤Ë¤Ê¤Ã¤Æ¤¤¿µ¤¤¬¤¹¤ë¡£
ËÍŪ¤Ë¥Ä¥Ü¤Ë¤¢¤¿¤ê¤¹¤®¤ë¤Î¤Ç¡¢¤½¤Î¡¢¡¢¼þ°Ï¤ÎÌܤ¬¡¦¡¦¡¦
Subject: Re: Treat disk space like memory space
To: linux-kernel@vger.kernel.org
From: Wes Felter
Date: Thu, 15 Nov 2007 18:03:16 -0600
Stefan Monnier wrote:
> So I'd like to be able to say "these areas of my file-system hold data
> that you can discard whenever you need space". So I can freely fill up
> my disk with such irrelevant data, safe in the knowledge that if I ever
> need this disk space it'll be automatically reclaimed.
James Cipar, Mark D. Corner, Emery D. Berger: TFS: A Transparent File
System for Contributory Storage.
"TFS provides background tasks with large amounts of unreliable
storage-all of the currently available space-without impacting the
performance of ordinary file access operations."
http://www.usenix.org/event/fast07/tech/cipar.html
http://prisms.cs.umass.edu/tcsm/
It's intended for P2P but I could imagine using it for caches.
_ ¤³¤ì¹Í¤¨¤¿¥ä¥Ä¥¥Á¥¬¥¤¤À¤è¤Ê¤¡¡Ä
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/7_Lexical_Conventions.html#section-7.9
return 1
¤È
return
1
¤Î°ÕÌ£¤¬°ã¤¦¤ó¤À¤è¤Í¡£
¤¤¤ä¤Þ¤Ã¤¿¤¯
javascript¤Î¼«Æ°¥»¥ß¥³¥í¥óÁÞÆþ§¤Ï¤É¤¦¤ß¤Æ¤â¡¢¥æ¡¼¥¶¤ÎÍ×µá¤ò¤Ï¤ë¤«¤Ëͤ¨¤¿¥ª¡¼¥Ð¡¼¥¥ë¤Ê»ÅÍͤǡ¢¤À¤ì¤â¤¦¤ì¤·¤¯¤Ê¤¤¤Ë¤â´Ø¤ï¤é¤º¡¢¥Ñ¡¼¥µºî¤ë¤ÎÂçÊѤÀ¤ï¡¢µ¬³Ê¤Î¥¨¥ó¥Ï¥ó¥¹¤Î¤ò°ú¤ÃÄ¥¤ê¤Þ¤¯¤ë¤ï¤Ç¤È¤ó¤Ç¤â¤Ê¤¤¤ó¤À¤è¤Í¡£
¤¤¤Ã¤¿¤¤Ã¯¤¬µ¬³Ê¤Ë¤Í¤¸¤³¤ó¤À¤ó¤À¤«¡£
¡¦¡¦¡¦¤¤¤äµ¬³Ê¥¨¥ó¥Ï¥ó¥¹¤Î¶ìÏ«¤Ë¤Ä¤¤¤Æ¤Ï¡¢ºÇ¶á¤Î»ö¾ð¤ÏÃΤé¤Ê¤¤¤±¤É
¤Ç¡¢Vista¤ÊDELL¥Ñ¥½¥³¥ó¤¬½µËö¤ËÆÏ¤¤¤¿¤Î¤À¤¬¡¢¤¤¤¶¥Ñ¥½¥³¥ó¤ò°Ü¹Ô¤·¤è¤¦¤È¤¹¤ë¤È¡¢¤ä¤ë¤³¤È¤¬»³¤Û¤É½Ð¤Æ¤¤ÆÁ´Á³¤ª¤ï¤é¤ó¡£
¤»¤Ã¤«¤¯¤Î£³Ï¢µÙ¤¬²¿¤â¤Ç¤¤Ê¤¤¤Þ¤Þ¤Ë½ª¤ï¤Ã¤Æ¤¤¤¯¡¦¡¦¡¦
wikipedia¤Î¼Ò²ñ¤ÎÁë¡§http://ja.wikipedia.org/wiki/%E7%A4%BE%E4%BC%9A%E3%81%AE%E7%AA%93
£±¡¥1948ǯ-1954ǯ¡¢1959ǯ-1960ǯ¤ËNHK¥é¥¸¥ª¤ÇÊüÁ÷¤µ¤ì¤¿¾ðÊóÈÖÁÈ¡¢¡Ö¥¤¥ó¥Õ¥©¥á¡¼¥·¥ç¥ó¥¢¥ï¡¼¡¦¼Ò²ñ¤ÎÁë¡×¡£¼¡¹à¤Î¯¸ì¤Ï¤³¤ÎÈÖÁȤ«¤éÀ¸¤Þ¤ì¤¿¡£
£²¡¥ÃËÀ¤Î¥º¥Ü¥ó¤Î¥Õ¥¡¥¹¥Ê¡¼¤Î¯¸ì¡£³«¤¤¤Æ¤¤¤ë¾õÂÖ¤ò»Ø¤¹¾ì¹ç¤¬Â¿¤¤¡£Á°¹à¤ÎÈÖÁȤ¬¡Ö¼Ò²ñ¤ÎÌ·½â¤ò˽¤¤À¤¹¡×¤È¤¤¤¦ÆâÍÆ¤Ç¤¢¤ê¡¢¤Ä¤Þ¤ê¡ÖÃæ¤ËÂç»ö¤Ê¤â¤Î¤¬±£¤µ¤ì¤Æ¤¤¤ë¡×¤È¤¤¤¦È¯ÁÛ¤«¤éÀ¸¤Þ¤ì¤¿¸ÀÍդǤ¢¤ë¡£½÷À¤Î¾ì¹ç¤Ï¡ÖÍý²Ê¤ÎÁë¡×¤È¤¤¤¦¡£
Íý²Ê¤ÎÁë¤Ê¤ó¤ÆÃΤé¤Í¡¼¤è£÷£÷£÷
¤¤¤¤Ê¤êºÃÀÞ¤·¤¿¤ó¤À¤¬(¡¡¦¦Ø¡¦¡®)
¤Þ¤ºRHEL4(kernel2.6.9¥Ù¡¼¥¹¡Ë
¥Õ¥é¥°¤¬Î©¤Ä¤Î¤Ï°Ê²¼¡£
¤Ä¤Þ¤ê¡¢OOM kill¤Ç»à¤Ì»ö¤¬·èÄꤷ¤¿¥¿¥¹¥¯¤ËΩ¤Ä
static void __oom_kill_task(task_t *p)
{
¡Êά¡Ë
p->time_slice = HZ;
p->flags |= PF_MEMALLOC | PF_MEMDIE; // ¡ú
/* This process has hardware access, be more careful. */
if (cap_t(p->cap_effective) & CAP_TO_MASK(CAP_SYS_RAWIO)) {
force_sig(SIGTERM, p);
} else {
force_sig(SIGKILL, p);
}
¤ó¤Ç¡¢»È¤Ã¤Æ¤¤¤ë¤È¤³¤í¤½¤Î¡
OOM kill¤À¤È»¦¤¹¤Î¤ËSIGKILL»È¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢KILLÁ÷¤Ã¤Æ¤â¨»à¤¹¤ë¤È¤Ï¸Â¤é¤Ê¤¤
¤ó¤Ç¡¢»à·º³ÎÄê¥×¥í¥»¥¹¤Ë²¿²ó¤â»à·ºÀë¹ð¤·¤Æ¤â°ÕÌ£¤¬¤Ê¤¤¤·¡¢
¤½¤â¤½¤â¡¢»àÂΤ˻෺Àë¹ð¤·¤Æ¥á¥â¥ê¶õ¤¤¤¿µ¤¤Ë¤Ê¤Ã¤Æ¼¡¤Î½èÍý¤Ë¿Ê¤ó¤Ç¤âͳ²Ìµ±×¤Ê¤Î¤Ç
OOM killÂоݤËÁª¤Ð¤ì¤ë¤Ù¤¤Ç¤Ï¤Ê¤¤
static unsigned long badness(struct task_struct *p, unsigned long uptime)
{
unsigned long points, cpu_time, run_time, s;
if (!p->mm)
return 0;
if (p->flags & PF_MEMDIE) //¡ú¤³¤³
return 0;
»È¤Ã¤Æ¤¤¤ë¤È¤³¤í¤½¤Î¢
OOM kill¤¹¤ë½èÍý¤ÎÅÓÃæ¤Ç¥á¥â¥êÉÔ¤ǥ¿¥¹¥¯¤¬¿²¤Æ¤·¤Þ¤Ã¤Æ½èÍý¤¬¿Ê¤Þ¤Ê¤¯¤Ê¤ë¤È
¤¤¤Ä¤Þ¤Ç¤¿¤Ã¤Æ¤â¥á¥â¥ê¤¬¶õ¤«¤Ê¤¤¤Î¤Ç¤è¤í¤·¤¯¤Ê¤¤¡£
¤è¤Ã¤Æ¡¢¥á¥â¥ê³ÎÊݥ롼¥Á¥ó¤Ç¥Ü¡¼¥Ê¥¹¤òÍ¿¤¨¤Æ¤¤¤ë
struct page * fastcall
__alloc_pages(unsigned int gfp_mask, unsigned int order,
struct zonelist *zonelist)
{
¡¡¡¡¡Êά¡Ë
/* This allocation should allow future memory freeing. */
if ((p->flags & (PF_MEMALLOC | PF_MEMDIE)) && !in_interrupt()) {¡¡//¡ú¤³¤³
/* go through the zonelist yet again, ignoring mins */
for (i = 0; (z = zones[i]) != NULL; i++) {
page = buffered_rmqueue(z, order, gfp_mask);
if (page)
goto got_pg;
}
goto nopage;
}
audit´Ø·¸¤Ï¶½Ì£¤¬¤Ê¤¤¤Î¤Ç¡¢³ä°¦
¼¡¤ËRHEL5(kernel2.6.18¥Ù¡¼¥¹¡Ë
¤Þ¤º¡¢¥Õ¥é¥°¤Î̾Á°¤«¤é¤·¤Æ°ã¤¦
PF_MEMDIE¤ÏTIF_MEMDIE¤ËÊѤï¤Ã¤Æ¤ª¤ê¡¢¤«¤Ätask_struct¤Î¥Õ¥é¥°¤«¤éthread_info¤Î¥Õ¥é¥°¤Ë
Êѹ¹¤µ¤ì¤Æ¤¤¤ë¡£
¡Ê¤Ö¤Ã¤Á¤ã¤±¡¢°ú¤Ã±Û¤·¤¿Íýͳ¤¬Íý²ò¤Ç¤¤º¡¦¡¦¡¦¡Ë
¥Õ¥é¥°¤¬Î©¤Ä¤Î¤Ï°Ê²¼¡£
Ʊ¤¸¤¯¡¢OOM kill¤Ç»à¤Ì»ö¤¬·èÄꤷ¤¿¥¿¥¹¥¯¤ËΩ¤Ä
static void __oom_kill_task(struct task_struct *p, const char *message)
{
¡Êά¡Ë
/*
* We give our sacrificial lamb high priority and access to
* all the memory it needs. That way it should be able to
* exit() and clear out its resources quickly...
*/
p->time_slice = HZ;
set_tsk_thread_flag(p, TIF_MEMDIE); //¡ú¤³¤³
force_sig(SIGKILL, p);
}
¥Õ¥é¥°¤ò¸«¤Æ¤¤¤ë¾ì½ê¤½¤Î¡
¤Þ¤ºÌÜΩ¤Ä¤Î¤Ï¡¢´ðËÜŪ¤Ë¥ë¡¼¥×²ó¤Ã¤Æ¤ëºÇÃæ¤Ë£±¤Ä¤Ç¤âTIF_MEMDIE¤ò¸«¤Ä¤±¤¿¤é
¤¤¤¤Ê¤ê´Ø¿ôÈ´¤±¤ÆOOM kill½èÍý¤ò¥¹¥¥Ã¥×¤·¤Á¤ã¤¦¤³¤È¡£
¤³¤ì¤Ç¡¢¥á¥â¥êÉÔ»þ¤Ë
£±¡¥¥·¥¹¥Æ¥à¤¬¥¹¥í¡¼¥À¥¦¥ó¤·¤Æ¤¤¤Æ¡¢¤Ê¤«¤Ê¤«OOM kill¤¬½ª¤ï¤é¤Ê¤¤¡Ê¥á¥â¥ê¤¬¶õ¤«¤Ê¤¤¡Ë
£²¡¥¼¡¡¹¤È¥×¥í¥»¥¹¤¬OOM killÂоݤˤʤꡢSIGKILL¤òÁ÷¤é¤ì¤Þ¤¯¤ë
£³¡¥ÂçÎ̵Ի¦
¤È¤¤¤¦¥³¥ó¥Ü¤òËɤ¤¤Ç¤¤¤ë
PF_DEAD¤Ïtask_struct°Ê³°¤ÏÁ´Éô²òÊü½ª¤ï¤ê¡¢¤¢¤È1²óschedule()¤µ¤ì¤¿¤é»à¤Ì¤è¤ó
¤È¤¤¤¦¡¢¥Û¥ó¥Þ¤Ë»à¤ÌľÁ°¤Ê¤Î¤Ç¡¢²¸¼ÏÂоÝ
PF_EXITING¤Ïexit()¤äsignal¤Ç»à¤Ë»Ï¤á¤Æ¤«¤éPF_DEAD¤Ë¤Ê¤ë¤Þ¤Ç¤Î½ªÎ»ÅÓÃæ¾õÂÖ¡£
¤Ê¤ó¤À¤±¤É¤â¡¢¤Ê¤ó¤Ç¤³¤Î»þ¤Ëbreak¤·¤Æ¤ë¤Î¤«¤¬°ÕÌ£¤¬Ê¬¤«¤é¤ó¡£
¤³¤³¤Ïtask¤Èthread¤Î2½Å¥ë¡¼¥×¤Ê¤Î¤Ç¡¢break¤·¤Æ¤â¼«¥¿¥¹¥¯Æâ¥¹¥ì¥Ã¥É¥ë¡¼¥×È´¤±¤ë¤À¤±¤Ç
½èÍý¤Ï³¤¯¤¬¡¢*ppoints¤ÏULONG_MAXÆþ¤ì¤Æ¤ë¤Î¤Ç¡¢¤³¤ì°Ê¾å¤Î¥Ý¥¤¥ó¥È¤ò»ý¤Ä¥¿¥¹¥¯¤¬
¸«¤Ä¤«¤ë¤Ï¤º¤â¤Ê¤¤¡£
ÂçÂΡ¢PF_EXITING¤Þ¤Ç¹Ô¤Ã¤¿¤ä¤Ä¤Ë¤â¤¦°ìÅÙSIGKILLÁ÷¤Ã¤Æ¤â̵»ë¤µ¤ì¤ë¤À¤±¤À¤È»×¤¦¤Î¤Ç
¤½¤ó¤Ê¥ä¥ÄÁªÂò¤·¤Æ¤Ê¤ó¤«°ÕÌ£¤¢¤ë¤«¤¡¡©¡©
ÌÀÆü¤Þ¤¿¹Í¤¨¤è¤¦ ¢« ÀäÂФä¤é¤Ê¤¤
static struct task_struct *select_bad_process(unsigned long *ppoints)
{
¡Êά¡Ë
releasing = test_tsk_thread_flag(p, TIF_MEMDIE) || //¡ú¤³¤³
p->flags & PF_EXITING;
if (releasing) {
/* PF_DEAD tasks have already released their mm */
if (p->flags & PF_DEAD)
continue;
if (p->flags & PF_EXITING && p == current) {
chosen = p; //¡ú ¼«»¦
*ppoints = ULONG_MAX;
break;
}
return ERR_PTR(-1UL); //¡ú OOM kill¤·¤Ê¤¤
}
¥Õ¥é¥°¤ò¸«¤Æ¤¤¤ë¾ì½ê¤½¤Î¢
¼ç¤ËCPU£±¸Ä¤Î¥Þ¥·¥óÂкö¡£out of memoryȯÀ¸¤·¼«Ê¬¤¬»àË´Âоݤ¸¤ã¤Ê¤¤
¡Ê¡á¤É¤³¤«ÊÌ¥×¥í¥»¥¹¤¬»à·ºÀë¹ð¤µ¤ì¤¿¡Ë
¤È¤¤¤¦¤È¤¤Ï¡¢sigkill¤ÎưºîŪ¤Ë°ìö»àË´ÂÐ¾Ý¥×¥í¥»¥¹¤¬¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì¤Ê¤¤¤È
»à¤Ë½ª¤ï¤é¤Ê¤¤¡£
¤Ê¤Î¤Ç¡¢¤Á¤ç¤Ã¤È¤À¤±¿²¤Æ¤¢¤²¤ë¤È¤³¤Î´Ø¿ô¤òÈ´¤±¤ë¤Þ¤Ç¤Ë»à¤Ë½ª¤ï¤Ã¤Æ¤¤¤ë³ÎΨ¤¬¾å¤¬¤ê
̵Â̤˺ÆÅÙ¤ÎOOM¤òȯÀ¸¤µ¤»¤Æ¤·¤Þ¤¦»ö¤òËɤ¤¤Ç¤¤¤ë
void out_of_memory(struct zonelist *zonelist, gfp_t gfp_mask, int order)
{
¡Êά¡Ë
/*
* Give "p" a good chance of killing itself before we
* retry to allocate memory unless "p" is current
*/
if (!test_thread_flag(TIF_MEMDIE))
schedule_timeout_uninterruptible(1);
}
»È¤Ã¤Æ¤¤¤ë¾ì½ê¤½¤Î£
RHEL4¤È¤ª¤Ê¤¸¤¯¡¢¥á¥â¥ê³ÎÊÝ»þ¤Î¥Ü¡¼¥Ê¥¹
struct page * fastcall
__alloc_pages(gfp_t gfp_mask, unsigned int order,
struct zonelist *zonelist)
{
¡¡¡¡¡Êά¡Ë
/* This allocation should allow future memory freeing. */
if (((p->flags & PF_MEMALLOC) || unlikely(test_thread_flag(TIF_MEMDIE)))
&& !in_interrupt()) {
if (!(gfp_mask & __GFP_NOMEMALLOC)) {
nofail_alloc:
/* go through the zonelist yet again, ignoring mins */
page = get_page_from_freelist(gfp_mask, order,
zonelist, ALLOC_NO_WATERMARKS);
if (page)
goto got_pg;
if (gfp_mask & __GFP_NOFAIL) {
blk_congestion_wait(WRITE, HZ/50);
goto nofail_alloc;
}
}
goto nopage;
}
Äɵ¡§¡¡¤³¤Î¤Ø¤ó¡Êhttp://www.ussg.iu.edu/hypermail/linux/kernel/0501.2/1542.html¡Ë¤ËPF_MEMDIE¤¬TIF_MEMDIE¤Ë¤Ê¤Ã¤¿·Ð°Þ¤¬½ñ¤¤¤Æ¤¢¤Ã¤¿¡£
¤è¤¦¤¹¤ë¤Ëtask_struct.flags¤Ï¤Õ¤Ä¤¦¤Îulong¤ÇatomicÁàºî¤Ç¤¤Ê¤¤¤ó¤À¤«¤é¡¢¼«¥¿¥¹¥¯°Ê³°¤¬Áàºî¤¹¤ë¥Õ¥é¥°¤ÏTIF_XX¤Ë¤·¤Ê¤¤¤È¥À¥á¤Ã¤Æ¤³¤È¡£
Äɵ£²¡§ ¤³¤Î¤Ø¤ó¡Êhttp://www.ussg.iu.edu/hypermail/linux/kernel/0501.2/1541.html¡Ë¤ò¤ß¤ë¤È¡¢TIF_MEMDIE¤¬¸«¤Ä¤«¤Ã¤¿¤é¥¹¥¥Ã¥×¤·¤Æ¤ë¤Î¤Ï5ÉÃ¥¦¥§¥¤¥È¤ÎÊѤï¤ê¤ß¤¿¤¤¡£
¤Ê¤ë¤Û¤É¡¢£µÉ两ã¥á¥â¥ê²òÊü¤¬½ª¤ï¤é¤Ê¤¤¤È¤¤Ï¤É¡¼¤¹¤ó¤Í¤ó¡£¤È
¤ä¤Ã¤Ñ²¾ÁÛ¥Þ¥·¥ó¤Ï¥á¥â¥ê¶¥¹ç¤µ¤»¤ë¤È¤È¤ó¤Ç¤â¤Ê¤¤CPU»ÈÍÑΨ¤Ë¤Ê¤Ã¤Æ¡¢¥Û¥¹¥ÈOS¤ÎÁàºî¤¹¤é½ÐÍè¤Ê¤¯¤Ê¤ë¤Î¤Ç¿É¤¤¤Î¤¦
Ëͤâ kosaki ¤µ¤ó¤Î¤è¤¦¤Ë¡¤twitter ¤ò»ß¤á¤Æ FC2 blog ¤Ë°ì¹ÔÆüµ¤ò²¿¤Î¤¿¤á¤é¤¤¤â̵¤¯½ñ¤±¤ë¤è¤¦¤Ê¹äµ£¤µ¤ò¿È¤ËÃ失¤Ê¤¤¤È¤Ê¡¤¤È¤«¤Ê¤ó¤È¤«¡¥
¤Ï¤Æ¤Ê¤Î¿Í¤Ï¡¤°ìÆü¤Ë²¿ÅÙ¤â°ì¹ÔÆüµ¤òµ¤·Ú¤Ë¹¹¿·¤Ç¤¤ÆÎɤ¤¤Ê¤È¤Ï»×¤¦¡¥FC2 ¤Ï°ì±þ¥Ö¥í¥°¤Ç¤¹¤«¤é¤Í¡¥¤½¤ì¤Ê¤ê¤ÎʬÎ̤Îʸ¾Ï¤ò½ñ¤«¤Ê¤¤¤È¡¤³Ê¹¥¤¬ÉÕ¤«¤Ê¤¤´¶¤¸¤¬¤·¤Þ¤¹¡¥
blog¤È¤Ï¤Æ¤Ê¤Ã¤Æ°ì½ï¤À¤È»×¤Ã¤Æ¤Þ¤·¤¿¡¦¡¦¡¦
¸«¤Ê¤«¤Ã¤¿¥Õ¥ê
¡Ú¥ï¥·¥ó¥È¥óÏÂÅĹÀÌÀ¡Û¡Ö·ãÆÍ¤¹¤ì¤ÐÈï³²¤Ï¿ÓÂç¡£Âбþ¤ò¶¯²½¤¹¤Ù¤¤À¡×¡Öͽ»»¤ÎÀ©Ìó¾å¡¢ÂÎÀ©³ÈÂç¤Ïº¤Æñ¡×¡Ý¡Ý¡£ÊƲ¼±¡¤Çº£·î¡¢Ãϵå¤Ë¾×ÆÍ¤¹¤ë²ÄǽÀ¤¬¤¢¤ë¾®ÏÇÀ±¤òȯ¸«¡¦´Æ»ë¤¹¤ëÊÆ¹Ò¶õ±§Ãè¶É(NASA)¤Î¥×¥í¥°¥é¥à¤Ë´Ø¤¹¤ë¸øÄ°²ñ¤¬³«ºÅ¤µ¤ì¡¢µÄ°÷¤ÈNASA¤Î´Ö¤Ç¤³¤ó¤ÊµÄÏÀ¤¬¸ò¤ï¤µ¤ì¤¿¡£
ÊÆµÄ²ñ¤Ï05ǯ¡¢ÂÀÍÛ¤«¤éÌó2²¯¥¥í°ÊÆâ¤Ë¤¢¤ë¡¢Ä¾·Â140¥á¡¼¥È¥ë°Ê¾å¤ÎʪÂΤÎ9³ä¤ò15ǯ°ÊÆâ¤Ëȯ¸«¡¦´Æ»ë¤¹¤ë·×²è¤ÎÄó½Ð¤òNASA¤Ëµá¤á¤¿¡£
¤·¤«¤·²¼±¡²Ê³Ø°Ñ°÷²ñ¤Î±§Ãè¹Ò¶õ¾®°Ñ°÷²ñ¤Ç¾Ú¸À¤·¤¿NASA´´Éô¤Ï¡¢¸½ÂÎÀ©¤Ç¤ÏµÄ²ñ¤¬ÀßÄꤷ¤¿´Æ»ëÂоݤÎ14%¤·¤«È¯¸«¤Ç¤¤Ê¤¤¤ÈÀâÌÀ¡£Â¾¹ñÀ¯ÉܤδѬ»ÜÀߤò»È¤¤¡¢¿·¤¿¤ÊÀìÍÑÅ·Ê¸Âæ¤ò·úÀߤ·¤¿¤¦¤¨¤Ç¡¢´Æ»ëÂоݤÎÈϰϤòÂçÉý¤Ë¶¹¤á¤ì¤ÐÌÜɸãÀ®¤Ï²Äǽ¤È½Ò¤Ù¤¿¡£
¤³¤ì¤ËÂФ·Æ±¾®°Ñ¤Î¥Ð¡¼¥È¡¦¥´¡¼¥É¥ó°Ñ°÷Ĺ(̱¼çÅÞ)¤Ï¡ÖNASA¤ÎÊó¹ð¤ÏÉÔ½½Ê¬¡×¤È¤·¤Æ·×²è¤ÎÎý¤êľ¤·¤òµá¤á¤¿¡£
¾®ÏÇÀ±¤Î·ãÆÍ¤ÏÌó6500ËüǯÁ°¤Î¶²Îµ¤ÎÀäÌǤò°ú¤µ¯¤³¤·¤¿¤È¤µ¤ì¤ë¡£NASA¤Ë¤è¤ë¤È¡¢µÄ²ñ¤¬´Æ»ë¤òµá¤á¤ë¥µ¥¤¥º¤Î¾®ÏÇÀ±¤ÏÌó10Ëü¸Ä¡£ºÇ¶á¤Ç¤Ï89ǯ¤Ë¾®ÏÇÀ±¤¬Ãϵå¤Î70Ëü¥¥íÉÕ¶á¤ËÀܶᤷ¤¿¤¬¡¢È¯¸«¤µ¤ì¤¿¤Î¤ÏºÇÀܶá¸å¤À¤Ã¤¿¡£
ËèÆü¿·Ê¹:ÊÆ²¼±¡¡§¾®ÏÇÀ±·ãÆÍÂкöÉÔ½½Ê¬¡¡µÄ°÷¤¬£Î£Á£Ó£Á¤Ä¤¤¢¤²
µÄ°÷¤µ¤ó¤â̵Ãã¸À¤¤¤Þ¤¹¤Ê¤¡¡£¿Í¹©±ÒÀ±¤Î»Ä³¼¤¹¤é´ÉÍý¤·ÀÚ¤ì¤Æ¤¤¤Ê¤¤¤Î¤Ë¡¢¾®ÏÇÀ±¤Þ¤Ç´Æ»ë¤·¤í¤Ã¤ÆÌµÍý¤Ç¤¹¤è¡£
¤à¤·¤í¡¢¤³¤ÎµÄ°÷¤¬ºÇ¶á¤ß¤¿±Ç²è¤òÅö¤Æ¤ë¥²¡¼¥à¤ËȯŸ¤µ¤»¤¿¤Û¤¦¤¬À¹¤ê¾å¤¬¤ë¤ó¤¸¤ã¤Í¡©
NPO¤ÎJTPA¤¬¹Ô¤¦Ëèǯ¹±Î㥷¥ê¥³¥ó¥Ð¥ì¡¼¥Ä¥¢¡¼¡£»²²Ã¼Ô¸ÂÄê20̾¤Ç¡¢ÆüËܤ«¤é¼ã¼ê¤ò¾·¤¡¢»°Æü´Ö¡¢¥·¥ê¥³¥ó¥Ð¥ì¡¼¤Î²ñ¼Ò¸«³Ø¡¢¥·¥ê¥³¥ó¥Ð¥ì¡¼¤ÇƯ¤¯ÆüËܿͤˤè¤ë©¶ì¤·¤¤¤Þ¤Ç¤Î¥Ñ¥Í¥ë¥Ç¥£¥¹¥«¥Ã¥·¥ç¥ó¡¢¥¹¥¿¥ó¥Õ¥©¡¼¥ÉÂç³ØË¬Ìä¤Ê¤É¤ò¹Ô¤¤¤Þ¤¹¡£¥·¥ê¥³¥ó¥Ð¥ì¡¼¤ÇƯ¤¤¤Æ¤ß¤¿¤¤Êý¤¬Âоݡ£
12·î¤Ë±þÊçÍ׹ˤòȯɽ¤·¤Þ¤¹¤¬¡¢¤½¤ì¤Þ¤Ç¤Î´Ö¡¢¹ðÃΥХʡ¼¡Ê¥Ð¥Ã¥¸¡Ë¤ò¥µ¥¤¥È¤ËŽ¤Ã¤Æ¹ðÃΤ˶¨ÎϤ·¤Æ¤¯¤À¤µ¤ëÊýÂçÊ罸¡£
¼ñ»Ý¤Ë»¿Æ±¤¹¤ë¤È¤¤Ï¹¹ð¤Ç¤â±þ±ç¤ò±Þ¤¤¤Þ¤»¤ó»ö¤è¡£¤ª¤Û¤Û
¤ß¤ó¤Ê¥¬¥ó¥¬¥ì¡ª
¤È¤ê¤¢¤¨¤º¡¢°úÍѤ·¤È¤¯
We are pleased to announce the 10th Anniversary Linux Symposium will be
held from July 23 ~ 26, 2008 in Ottawa, Canada. The Symposium will also
feature multiple keynote presentations, in depth tutorials, birds of a
feather sessions, papers on the most current topics in Linux and Open
Source, mini summits open to related Linux and Open Source projects to be
held in the day(s) before the Symposium and speakers from outside the
industry who will share their experiences with Linux and Open Source and
its impact.
Call For Papers
The CFP for 2008 offers a lot of opportunities for submissions on a wide
range of topics that are of interest to the Linux and Open Source
community. We strongly encourage you to submit proposals on the topics
listed as well as any subject that you feel would be an interesting and
informative addition to the schedule. You can view the CFP online at
http://www.linuxsymposium.org/2008/cfp.php.
Mini Summits
We will also be accepting submissions for mini summits. These will be held
on the day(s) before the Linux Symposium, with venue and any technical
requirements (i.e. projector, screen, etc.) provided by Linux Symposium
and our sponsors. Mini summit proposals can be submitted via email to
info@linuxsymposium.org (online submission will be available soon). Please
include the following information: topic, moderator, expected time required
(1/2 day, 1 day, 2 days), number of attendees, technical requirements and
any other relevant information. Make sure that you submit your mini
summit proposal early as space is limited.
Registration
You can register for the 2008 Linux Symposium at
http://www.linuxsymposium.org/ by logging in using your account or by
registering online. Registration rates are as follows:
Before April 1st, 2008
General - $350.00
Student - $200.00
Before June 1st, 2008
General ~ $500.00
Student ~ $250.00
After June 1st, 2008
General ~ $750.00
Student ~ $275.00
For all other information and announcements, please visit us online at
http://www.linuxsymposium.org/.
We look forward to receiving your proposals and seeing you all in July!
Thank you,
Linux Symposium Organizers
¥ê¥¢¥ë¤ÎÃΤê¹ç¤¤¤é¤·¤¤¤Î¤Ç¡¢Ãí°Õ¿¼¤¯¥¦¥©¥Ã¥Á¤·¤Æ¤¤¤¿¤é¤½¤Î¤¦¤Á¥Ü¥í¤ò½Ð¤¹¡£¡£¤Ï¤º
