首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

linux内核奇遇记之md源代码解读之7阵列同步一

2013-10-12 
linux内核奇遇记之md源代码解读之七阵列同步一linux内核奇遇记之md源代码解读之七阵列同步一转载请注明出

linux内核奇遇记之md源代码解读之七阵列同步一
linux内核奇遇记之md源代码解读之七阵列同步一转载请注明出处:http://blog.csdn.net/liumangxiong阵列同步在md_do_sync,那么入口在哪里呢?就是说阵列同步触发点在哪里呢?听说过md_check_recovery吧,但这还不是同步的入口点。那raid5d函数是入口点吧?如果要认真分析起来还不算是。真正的同步入口点在do_md_run函数,就是在运行阵列run函数之后,有这么一行:

7816                 if (mddev->pers->sync_request) {7817                         if (spares) {...7823                         }7824                         mddev->sync_thread = md_register_thread(md_do_sync,7825                                                                 mddev,7826                                                                 "resync");7827                         if (!mddev->sync_thread) {...7837                         } else7838                                 md_wakeup_thread(mddev->sync_thread);7839                         sysfs_notify_dirent_safe(mddev->sysfs_action);7840                         md_new_event(mddev);7841                 }...7850                 mddev_unlock(mddev);7851         }

7816行,对于没有同步线程的阵列来说,就没什么事情了。7824行,启动同步线程。7838行,唤醒同步线程。7839行,更新同步状态。这时主线程调用md_check_recovery函数就已经结束了,启动的同步线程来做同步的具体事宜。那么为什么主线程自己不做同步而另起一个线程做同步呢?不妨想想现在事情都放在主线程里做有什么负面影响?当主线程在同步的时候是不是就不能很及时响应正常数据流了。而且同步和数据流本来就是两件差异很大的事情。本小节只是介绍到同步入口,同步过程在下一小节开始阅读。转载请注明出处:http://blog.csdn.net/liumangxiong
1楼u011960402昨天 13:27
讲解的很好

热点排行