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

发现在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看到的磁盘读写都是由这个后端驱动触发的,所以,现在慢慢的接近事情的真相。究竟为什么会慢呢,我会继续填这个坑。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容