public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Peter Osterlund <petero2@telia.com>
To: Andrew Morton <akpm@osdl.org>
Cc: axboe@suse.de, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] Speed up the cdrw packet writing driver
Date: 25 Aug 2004 07:38:16 +0200	[thread overview]
Message-ID: <m36577dbg7.fsf@telia.com> (raw)
In-Reply-To: <20040824155635.3d1a1dd6.akpm@osdl.org>

Andrew Morton <akpm@osdl.org> writes:

> Peter Osterlund <petero2@telia.com> wrote:
> >
> > > Are you saying that your requests are so huge that each one has 1000 BIOs? 
> > > That would be odd, for an IDE interface.
> > 
> > No, the thing is that the packet driver doesn't create requests at
> > all. It stuffs incoming bio's in the rbtree, then the worker thread
> > collects bio's from the rbtree for the same "zone" on the disc (each
> > zone is 64kb on a CDRW and 32KB on a DVD). The driver then creates a
> > new bio with the same size as the zone size and submits it to the real
> > CD/DVD device.
> 
> Good lord.  I assume there's a good reason for this?

The reason is that generic_make_request() takes a bio, not a request.
Loop and md don't deal with "struct request" either, they also work
directly at the bio level.

The reason the driver doesn't process the bios in sequential order
like md and loop seems to do, is because it wants to maximize I/O
performance. With a typical DVD drive, write bandwidth is 5.3MB/s and
seek times when writing are 500ms. Also, there is a big penalty for
not being able to completely fill a "zone", because it means that the
driver will have to read the missing pieces from the disc before being
able to submit the "write bio".

Is there some problem doing what the pktcdvd driver is doing?

-- 
Peter Osterlund - petero2@telia.com
http://w1.894.telia.com/~u89404340

  reply	other threads:[~2004-08-25  5:38 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-08-14 19:13 [PATCH] Speed up the cdrw packet writing driver Peter Osterlund
2004-08-23 11:43 ` Jens Axboe
2004-08-23 16:07   ` Peter Osterlund
2004-08-24 20:29     ` Jens Axboe
2004-08-24 21:04       ` Peter Osterlund
2004-08-24 21:47         ` Andrew Morton
2004-08-24 21:57           ` Lee Revell
2004-08-29 13:52             ` Alan Cox
2004-08-24 22:03           ` Peter Osterlund
2004-08-24 22:56             ` Andrew Morton
2004-08-25  5:38               ` Peter Osterlund [this message]
2004-08-25  6:50         ` Jens Axboe
2004-08-28  9:59           ` Peter Osterlund
2004-08-28 13:07             ` Jens Axboe
2004-08-28 18:42               ` Peter Osterlund
2004-08-28 19:45                 ` Andrew Morton
2004-08-28 20:57                   ` Peter Osterlund
2004-08-28 21:23                     ` Andrew Morton
2004-08-29 12:17                       ` Peter Osterlund

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=m36577dbg7.fsf@telia.com \
    --to=petero2@telia.com \
    --cc=akpm@osdl.org \
    --cc=axboe@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox