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