我正在开发一个设备映射器驱动程序,并且想知道由于在构造函数上下文中执行磁盘初始化而导致的延迟。在一些初始设置期间需要完成相当多的 IO - 要清理的块范围。
从查看 dm 实现看来,这项工作是在构造函数中同步完成的。也就是说,在此操作完成之前,不应允许构造函数返回。我不知道这是否是个好主意,或者是否有办法让它异步,直到初始化时间工作完成。
我在想可能会通过返回 DM_IO_REQUEUE 来推迟对“地图”的调用,直到操作完成。但这可能需要几秒钟。我没有找到任何涵盖 dm 中 target_type 结构的函数集的文档或参考。正是我所看到的一些使用这些间接函数的 dm 驱动程序。关于在构造函数中可以做什么和不可以做什么的方法或规则的详细信息的任何提示?