From: Hiroyasu OHYAMA
Sorry, I'm not always contribute but ask you questions. Today, I also want to ask Kernel-Developpers a internal kernel-processing that is about i/o submittion interface.
I'm a Japanese student, now I develop cache system that work under the page-cache layer for my enjoyment.
(Incidentally, The main porpose of this system is to save energy consumption of disk storage)
To implement this system in GNU/Linux, I hooked bio object at submit_bio(). I know that pdflush and other upper layer software, low level file-system, call this routine to operate block i/o. So I think that 'submit_bio' is the interface of i/o submittion and the system that I made seems like to run smoothly.
But I found the Kernel-Document say that
'The normal i/o submission interfaces, e.g submit_bio, could be bypassed
for specially crafted requests which such ioctl or diagnostics
interfaces would typically use, ...'
[(v2.6.24) block/biodoc.txt l.306]
I investigated ioctl and read sys_ioctl(). But this processing is too complex to find out target processing.
Could you please tell me what kind of request that is second argument of ioctl() system-call cause bypass of submit_bio i/o interface.
And if there are other processing which operate block device without using submit_bio(), I want to know where these processings are.
Thank you in advance.