All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jens Axboe <axboe@suse.de>
To: "Sven Köhler" <skoehler@upb.de>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [blockdevices/NBD] huge read/write-operations are splitted by the kernel
Date: Mon, 8 Sep 2003 10:58:02 +0200	[thread overview]
Message-ID: <20030908085802.GH840@suse.de> (raw)
In-Reply-To: <bjgh6a$82o$1@sea.gmane.org>

On Mon, Sep 08 2003, Sven Köhler wrote:
> Hi,
> 
> i discussed a problem of the NBD-protocl with Pavel Machek. The problem 
> i saw is that there is no maximum for the length field in the requests 
> that the NBD kernel module sends to the NBD server. Well, this length 
> field is the length field from the read/write-operation that the kernel 
> delegates to the blockdevice-implementation.
> I did some tests tests like
>   dd if=dev/nbd/0 of=/dev/null bs=10M
> and our NBD-server implementation printed out the length field of each 
> reqeust. There was a very regular pattern like
>   0x1fc00 (127KB)
>   0x00400 (1KB)
>   0x1fc00
>   0x00400
>   ...
> Well, can anybody explain that to me?
> (why so "little" 1KB requests? but that's not important)
> 
> Well, i also tested
>   dd if=dev/nbd/0 of=/dev/null bs=1
> which means that the device will be read in chunks of 1byte.
> The result was the same: 127KB, 1KB, 127KB, 1KB...
> 
> I guess the caching layer is inbetween, and will devide the huge 10MB 
> requests into smaller 127KB ones, as well as joining the small 1byte 
> requests by using read-ahead i guess.
> Perhaps you could tell me how i can turn off caching. Than i will test 
> again without the cache.
> 
> The thing i want to know is, if there is any part of the kernel that 
> gaarantees that a read/write requests will not be bigger that a certain 
> value. If there is no such upper limit, the NBD itself would need to 
> split things up which might become a complicated task. This task need to 
> be done, because it can become very difficult for the NBD server to 
> handle huge values, and one huge requests will block all other pending 
> small ones due to limitations of the NBD protocol.

You'll probably find that if you bump the max_sectors count if your
drive to 256 from 255 (that is the default if you haven't set it), then
you'll see 128kb chunks all the time.

See max_sectors[] array.

-- 
Jens Axboe


  reply	other threads:[~2003-09-08  8:58 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-09-08  0:02 [blockdevices/NBD] huge read/write-operations are splitted by the kernel Sven Köhler
2003-09-08  8:58 ` Jens Axboe [this message]
2003-09-08 12:42   ` Sven Köhler
2003-09-08 14:33     ` Jens Axboe
2003-09-08 13:26   ` Sven Köhler
2003-09-08 14:34     ` Jens Axboe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20030908085802.GH840@suse.de \
    --to=axboe@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=skoehler@upb.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.