Re: Question on Loop and PPDD devices

Jens Axboe (axboe@suse.de)
Fri, 8 Jun 2001 16:12:45 +0200


On Fri, Jun 08 2001, Louis Lam wrote:
> Hi,
>
> I'm quite new to kernel development, please advice....
>
> Got some questions about Loop and PPDD Devices.
>
> *For 2.2 kernels, there are loop-specific modifications in ll_rw_block.c, in
> make_request(), where the max_req is divided by two. Comments read: loop
> uses two requests, 1 for loop and the other for real device.
>
> Q1. How is it exactly using two requests?

FS generates request, received by loop. loop reads/writes the buffer on
the real device, that uses another request.

> Q2. Requests are made to the loop device and when will it generate another
> request to the real device?

Yes

> Q3. Does the loop device have its own request queue? Or is it using the same
> request queue as the actual device it is associated with?

No -- in 2.4 it does, all queues have their own request freelist.
However the way that loop works in 2.4, it doesn't allocate/use any
requests at all.

> Q4. What is the relationship between loop device driver and the actual disc
> driver? How/When is data actually written/read from the disk?

Well data is read/written to loop, which then generates a matching
request for the target device.

> Q4. Where can I gather more information on the principles behind the how
> loop devices work? Any particular person who might be able to help?

The source is right there, under your nose.

> *I'm Using ppdd to encrypt my swap data, it is very similar to the loop
> device. Currently as suggested by the instructions, I'm using a swap file in
> an encrypted partition. I'm trying to port it to the 2.2.14-5.0(Redhat 6.2
> Kernel)and noticed that when I try to run something like "make -j 3" , there
> are errors in decryption. This did not happen on a standard 2.2.13 kernel.
> Sometimes it deadlocks as well(quite intermittent, but usually when I just
> changed the swap space to the encrypted file).
>
> Q6: What should I be looking for in order to port it to that kernel?
> Understand there are changes to buffer.c and various other files related to
> block I/O, and possibly some to memory management as well.

Just dive in, learn as you go along. Or look at loop + crypto patches.

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