[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Subject: doubt regarding :Waking up the request function for Block device
> The question is How does the request method of a Block Device
> driver get called. The reqest method is not in blocked state,
> bcoz then we would be busy waiting in the Kernel which we dont want. So
> when requests for a particular device how is the request method invoked
> (ie, using signals etc etc)
> The answer lies in the "unplug" methods in linux/drivers/block/ll_rw_blk.c
> but havent been able to figure that one out.
>
> To be specific my question is how is " Then any subsequent requests are
> routed to your routines directly using the
> requests"
There is a description of the
"Scheduling the activation of the strategy routine" ( (*request_fn)() )
in pg 407 of Understanding the Linux Kernel (O'Reilly) albeit 2.2 kernel
Briefly a VHL description:
ll_rw_block() ---> make_request()
make_request puts plug_tq task queue descriptor (in blk_dev_struct)
into tq_disk task queue. plug_tq refers to unplug_device() which starts
the strategy routines. kernel periodically checks whether there are any
elements in the tq_disk task queue.
Regards,
Sourav
_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com
--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive: http://mail.nl.linux.org/kernelnewbies/
IRC Channel: irc.openprojects.net / #kernelnewbies
Web Page: http://www.kernelnewbies.org/