美文网首页
为什么虚拟ide-cd这么慢?

为什么虚拟ide-cd这么慢?

作者: mqddb | 来源:发表于2017-06-23 10:38 被阅读0次

    发现在X86一体机上,从光盘镜像启动,速度很慢,好久系统才能起来,为什么?

    这个坑挖了很久了,但是一直没填,看着也碍眼。

    我用iostat看了两种情况下的Host磁盘读写情况,发现启动慢的Host读速度在3-4MB左右,快的Host能到10MB左右,差了一倍,难怪这个慢。为什么会出现这种情况呢?

    首先ide-cd的继承关系:ide-cd -> ide-device -> device。

    Class: IDEDeviceClass+DeviceClass

    Intance:IDEDrive+IDEDevice+DeviceState

    初始化函数:

    Class:ide_cd_class_init --- ide_device_class_init

    Intance:ide_dev_instance_init

    注意,设备最终初始化是赋值在IDEDeviceClass上的init函数指针,最终调用函数:ide_dev_initfn,在这个函数里面结构体:IDEDevice相关结构一一初始化完毕,里面比较关键的成员是BlockConf conf,这个是和IDE的后端驱动联系在一起的,后端驱动负责Host端的具体IO操作,Host端用iostat看到的磁盘读写都是由这个后端驱动触发的,所以,现在慢慢的接近事情的真相。究竟为什么会慢呢,我会继续填这个坑。

    相关文章

      网友评论

          本文标题:为什么虚拟ide-cd这么慢?

          本文链接:https://www.haomeiwen.com/subject/ltoqcxtx.html