Re: Subject: doubt regarding :Waking up the request function for Block device

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




>           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/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux