lkml.org 
[lkml]   [2004]   [Feb]   [29]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateSun, 29 Feb 2004 10:49:45 +0100
FromJens Axboe <>
SubjectRe: can generic_make_request in 2.4 kernel sleep?
On Sat, Feb 28 2004, Ming Zhang wrote:
> Hi, I have a quick question.
> 
> In 2.4 kernel, can generic_make_request sleep?

yes

> I read the 2.4.24 kernel and find that there is printk in it. so i
> assume it can sleep. if so, why the per queue make_request_fn can not
> sleep base on the LDD book? and i do not see any place that the
> io_request_lock is held. is this lock removed from system? or we do not
> need this lock at this place any more?
> 
> and in md code, it use blk_queue_make_request to use its own request_fn
> instead a queue, for example, in raid1_make_request(), it calls
> raid1_alloc_r1ch() which also call schedule() if need, then this own
> request_fn can sleep?
> 
> i think i am little confused about the LDD (linux device driver 2nd)
> book and the new kernel code. can anybody point out some latest
> reference for me?

->make_request_fn() is not entered with the queue/io_request_lock. It
can sleep, it's not recommended since on writeout you are blocking
kswapd/bdflush.

-- 
Jens Axboe

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:01    [from the cache]
©2003-2008