亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 3362 | 回復(fù): 4
打印 上一主題 下一主題

sched_setaffinity CPU-Hotplug問題,請教各位大俠 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2012-04-26 10:25 |只看該作者 |倒序?yàn)g覽
小弟有一事不明,假如我在application中調(diào)用了sched_setaiffinity,將一個process affinity到了CPU1上。而后來又對CPU1進(jìn)行了CPU DOWN(cpu-hotplug),那么最后當(dāng)我CPU ON的時候,這個process還會一直在CPU1上運(yùn)行嗎?
  1. static int __migrate_task(struct task_struct *p, int src_cpu, int dest_cpu)
  2. {
  3.         struct rq *rq_dest, *rq_src;
  4.         int ret = 0;

  5.         if (unlikely(!cpu_active(dest_cpu)))
  6.                 return ret;

  7.         rq_src = cpu_rq(src_cpu);
  8.         rq_dest = cpu_rq(dest_cpu);

  9.         double_rq_lock(rq_src, rq_dest);
  10.         /* Already moved. */
  11.         if (task_cpu(p) != src_cpu)
  12.                 goto done;
  13.         /* Affinity changed (again). */
  14.         if (!cpumask_test_cpu(dest_cpu, &p->cpus_allowed))
  15.                 goto fail;

  16.         /*
  17.          * If we're not on a rq, the next wake-up will ensure we're
  18.          * placed properly.
  19.          */
  20.         if (p->se.on_rq) {
  21.                 deactivate_task(rq_src, p, 0);
  22.                 set_task_cpu(p, dest_cpu);
  23.                 activate_task(rq_dest, p, 0);
  24.                 check_preempt_curr(rq_dest, p, 0);
  25.         }
  26. done:
  27.         ret = 1;
  28. fail:
  29.         double_rq_unlock(rq_src, rq_dest);
  30.         return ret;
  31. }
復(fù)制代碼
這里似乎沒有看到backup原先affinity信息的code

論壇徽章:
6
金牛座
日期:2013-10-08 10:19:10技術(shù)圖書徽章
日期:2013-10-14 16:24:09CU十二周年紀(jì)念徽章
日期:2013-10-24 15:41:34獅子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亞洲杯之阿聯(lián)酋
日期:2015-05-09 14:36:15
2 [報(bào)告]
發(fā)表于 2012-04-26 11:11 |只看該作者
回復(fù) 1# cuibixiong_cu
沒研究過hotplug的情況。。。,幫頂

   

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2012-04-26 11:28 |只看該作者
非常有意思的問題,如果通過sched_setaiffinity綁定到某一cpu,只要改cpu online,那么一定會放到該cpu隊(duì)列中,如果綁定的cpu offline,那么內(nèi)核會選擇一個online的cpu。所以你的問題答案是,down->up之后,cpu依然會綁定到cpu1上。

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2012-04-26 13:14 |只看該作者
MagicBoy2010 發(fā)表于 2012-04-26 11:28
非常有意思的問題,如果通過sched_setaiffinity綁定到某一cpu,只要改cpu online,那么一定會放到該cpu隊(duì)列 ...


magicboy兄的回答沒有明白,如果我的流程是 CPU1 ONLINE -> setafffinity application to CPU1 -> CPU1 DOWN -> CPU1 UP,按我的理解,當(dāng)CPU1 UP之后,所運(yùn)行的只是一個cpu_idle thread,下一步所要運(yùn)行的程序都是從其他CPU上migration到自己的runqueue的,如果想在這種流程下還保持application還在CPU1上運(yùn)行,那么就必須要Backup一些東西(我知道cgoup是可以管理這些東西的,但是沒有看過code),我覺得至少要知道Backup兩個參數(shù)

  1. application在CPU DOWN之前被migration到那個CPU中去了
  2. applicationzaiCPU UP之后要知道原先被setaffinity在那個CPU上


否則在CPU UP之后他怎么知道原先我運(yùn)行個那個application? 謝謝magicboy兄

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2012-04-27 09:40 |只看該作者
頂起來
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP