Re: [PATCH] Speed up the cdrw packet writing driver

From: Peter Osterlund (petero2_at_telia.com)
Date: 08/25/04

  • Next message: David Gibson: "[PPC64] Clean up unused macro"
    To: Andrew Morton <akpm@osdl.org>
    Date:	25 Aug 2004 07:38:16 +0200
    
    

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

  • Next message: David Gibson: "[PPC64] Clean up unused macro"

    Relevant Pages

    • [Q] Bio traversal trouble?
      ... unable to handle kernel paging request at virtual address 8c1d2071 ... Since the last time this driver was posted it changed considerably and as one of the chances it's now requesting just one hardware sector at a time from the drive as requesting multiple didn't actually work -- I seemed to have fouled up earlier tests somehow. ... I'd also simply like to understand it, so this is doing a manual bio traversal, requesting frames from the hardware as it goes along. ...
      (Linux-Kernel)
    • Re: [RFD] BIO_RW_BARRIER - what it means for devices, filesystems, and dm/md.
      ... then just reuses the empty-bio approach to queue an empty barrier, ... This is the first time the device driver ... * no fs request uses ELEVATOR_INSERT_FRONT and thus no fs ... * Check whether this bio extends beyond the end of the device. ...
      (Linux-Kernel)
    • 2.6.0-test7: suspend to disk: no mouse or sound after suspend
      ... Using Gentoo with kernel 2.6.0-test7. ... Sound, no output after suspend. ... completing PM request, suspend ... registered new driver usbfs ...
      (Linux-Kernel)
    • [RFC PATCH 0/8] rqbased-dm: request-based device-mapper
      ... I'm working on device-mapper multipath. ... and enables mapping at request level instead of bio level. ... The patch could be a basis of better dynamic load balancing. ... I/O mapping after bio merged is needed for better ...
      (Linux-Kernel)
    • [git pull] IDE updates #1
      ... which there is a better driver available. ... Use special driver requests for handling IDE settings. ... * Generate a new packet command request in front of the request queue, ... unsigned int alignment; ...
      (Linux-Kernel)