Android 延迟后执行char设备驱动程序中的释放方法

Android 延迟后执行char设备驱动程序中的释放方法,android,kernel,linux-device-driver,Android,Kernel,Linux Device Driver,我有一个现有的字符设备驱动程序。当我从用户空间调用close()时,函数立即返回并获得成功,但设备驱动程序中release(close())函数中的实际printk语句稍后将作为异步任务执行。因此,用户空间只告诉内核关闭设备并返回,而不实际关闭设备。一段时间后实际成交。为什么执行会有延误。有没有办法使这个呼叫同步 但设备驱动程序中release(close())函数中的实际printk语句稍后将作为异步任务执行。-更可能的是,printk输出延迟传输到内核日志中。检查release()中延迟的更

我有一个现有的字符设备驱动程序。当我从用户空间调用close()时,函数立即返回并获得成功,但设备驱动程序中release(close())函数中的实际printk语句稍后将作为异步任务执行。因此,用户空间只告诉内核关闭设备并返回,而不实际关闭设备。一段时间后实际成交。为什么执行会有延误。有没有办法使这个呼叫同步

但设备驱动程序中release(close())函数中的实际printk语句稍后将作为异步任务执行。
-更可能的是,
printk
输出延迟传输到内核日志中。检查
release()
中延迟的更好方法是在该模块中定义的文件
close()
之后立即执行
rmmod
rmmod
可能只有在执行
release()
操作后才会成功。我要做的是在单击close之后立即单击start。start()方法在语句release(close()方法)执行之前执行。我怀疑的是,用户空间告诉内核关闭文件描述符并返回true。然后内核启动一个异步任务以实际关闭文件描述符。start方法在此异步任务之前执行。首先打印start()方法中的printk语句,然后打印close()方法中的printk语句。您所说的“单击开始”或“单击关闭”是什么意思
close()
是一个函数,应该调用它。或者你有一些图形用户界面吗?我有一个图形用户界面。当我在GUI中单击start时,将调用内核中的open函数。当我在GUI中单击stop时,将调用内核中的close(release)函数。内核调用映射到设备驱动程序中,并调用设备驱动程序中相应的函数。延迟发生在设备驱动程序函数中。如何判断延迟发生在驱动程序模块中,发布关闭()以及用户空间如何访问函数(),以便更好地理解。