questions about block device access

From: a9504915 (a9504915@graduate.hku.hk)
Date: Sun Feb 20 2000 - 07:11:23 EST


Hello, I am writing a block device driver to redirect all I/O requests to a
remote hard disk at another node. The remote hd seems "attached" locally. The
process accessing the driver (i.e. the client) has to communicate with a
remote server process through sockets.

However, I found that if these two processes are running at the same node,
i.e. the client sleeps in the request_fn of the virtual device, and waiting
for the local server to complete and return the I/O results, all the processes
seems dead (in uninterruptible sleeping mode), and the kernel dies eventually,
coz' even the bdflush will "hang".

I would like to ask whether there are any problems if one process is sleeping
in the request_fn, but waiting for another process to access the hard disk. In
this case, the first one won't return until the second process finished the
real I/O. Note that the fake block device and the real hard disk are two
separate block devices in my implementation.

I am not very familiar with FS and buffer cache, may be somebody have time to
help this kernel-newbee... Thanks in advance!

-- Roy

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



This archive was generated by hypermail 2b29 : Wed Feb 23 2000 - 21:00:25 EST