Block device request merging - repeated requests.

From: David Woodhouse (dwmw2@infradead.org)
Date: Mon Jan 31 2000 - 09:12:54 EST


I'm playing with a new block device driver in 2.3.41

When I try something simple like
        'dd if=/dev/zero of=/dev/mydevice bs=512 count=10'

 ... I find that the requests are helpfully merged.

Unfortunately, I find that they're also repeated.

So - what was ten separate write requests, for each consecutive block, now
becomes ten write requests, each for the whole ten.

Am I doing something wrong - when I'm passed a request should I be checking it
to see if it's already uptodate?

Or is the block request combining code in 2.3.41 completely shagged?

# dd if=nftl.c of=/dev/nftla bs=512 count=2
2+0 records in
2+0 records out

NFTL_open called
NFTL write request of 0x2 sectors @ 0
Writing block 0 to EUN 5f
Writing block 1 to EUN 5a
NFTL write request completed OK
NFTL write request of 0x2 sectors @ 0
Writing block 0 to EUN 60
Writing block 1 to EUN 5b
NFTL write request completed OK

By setting max_sectors to 1 for the device in question, effectively disabling
the request merging, I return the system to sane behaviour.

--
dwmw2

- 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 : Mon Jan 31 2000 - 21:00:28 EST