LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Joerg.Schilling@fokus.fraunhofer.de (Joerg Schilling)
To: stern@rowland.harvard.edu, dougg@torque.net
Cc: linux-kernel@vger.kernel.org, jens.axboe@oracle.com,
	James.Bottomley@steeleye.com
Subject: Re: [PATCH] Block layer: separate out queue-oriented ioctls
Date: Thu, 26 Apr 2007 11:19:32 +0200	[thread overview]
Message-ID: <46306ea4.nlqf3c05IYBhob1c%Joerg.Schilling@fokus.fraunhofer.de> (raw)
In-Reply-To: <45DA23C7.6090800@torque.net>

Any chance to that this bug will be fixed anytime soon?

The Bug has been reported February 2004 but is still not fixed in sg.c
Is Linux development really sooooo slow?


Douglas Gilbert <dougg@torque.net> wrote:

> Alan,
> The SG_GET_RESERVED_SIZE ioctl is also defined in
> the block layer, see block/scsi_ioctl.c .
> I suspect it is just a kludge to fool cdrecord that it
> is talking to a sg device. [One of many kludges in the
> block SG_IO ioctl implementation to that end.]
> So perhaps the block layer versions of SG_SET_RESERVED_SIZE
> and SG_GET_RESERVED_SIZE need to be similarly capped.
> Actually I think that I would default SG_GET_RESERVED_SIZE to
> request_queue->max_sectors * 512 in the block layer
> implementation (as there is no "reserve buffer" associated
> with a block device).
>
>
> <aside>
> The idea of a reserved buffer may live on in bsg as experience
> with sg has shown that it is the fastest way to do (mmap-ed) IO.
> Having one reserved buffer per file descriptor means not
> having to create and tear down a scatter gather list
> per IO. [Having a pool of such lists would be even better.]
> Until optical storage needs 10 times its current datarates
> then cdrecord will not need this mechanism.
> </aside>
>
> Doug Gilbert
>
>
> > Index: usb-2.6/drivers/scsi/sg.c
> > ===================================================================
> > --- usb-2.6.orig/drivers/scsi/sg.c
> > +++ usb-2.6/drivers/scsi/sg.c
> > @@ -917,6 +917,8 @@ sg_ioctl(struct inode *inode, struct fil
> >  			return result;
> >                  if (val < 0)
> >                          return -EINVAL;
> > +		if (val > sdp->device->request_queue->max_sectors * 512)
> > +			return -EOVERFLOW;
> >  		if (val != sfp->reserve.bufflen) {
> >  			if (sg_res_in_use(sfp) || sfp->mmap_called)
> >  				return -EBUSY;
> > @@ -925,7 +927,8 @@ sg_ioctl(struct inode *inode, struct fil
> >  		}
> >  		return 0;
> >  	case SG_GET_RESERVED_SIZE:
> > -		val = (int) sfp->reserve.bufflen;
> > +		val = min_t(int, sfp->reserve.bufflen,
> > +				sdp->device->request_queue->max_sectors * 512);
> >  		return put_user(val, ip);
> >  	case SG_SET_COMMAND_Q:
> >  		result = get_user(val, ip);
> > 

Jörg

-- 
 EMail:joerg@schily.isdn.cs.tu-berlin.de (home) Jörg Schilling D-13353 Berlin
       js@cs.tu-berlin.de                (uni)  
       schilling@fokus.fraunhofer.de     (work) Blog: http://schily.blogspot.com/
 URL:  http://cdrecord.berlios.de/old/private/ ftp://ftp.berlios.de/pub/schily

  parent reply	other threads:[~2007-04-26  9:19 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-02-16 19:37 Alan Stern
2007-02-17  6:28 ` Jens Axboe
2007-02-17 21:18   ` Joerg Schilling
2007-02-18  3:43   ` Douglas Gilbert
2007-02-18 12:37     ` Joerg Schilling
2007-02-18 16:44     ` Alan Stern
2007-02-18 18:27       ` Joerg Schilling
2007-02-19 16:06         ` Alan Stern
2007-02-19 16:08           ` Joerg Schilling
2007-02-19 17:06             ` Alan Stern
2007-02-19 22:25               ` Douglas Gilbert
2007-02-20  3:48                 ` Alan Stern
2007-02-20  4:47                   ` Douglas Gilbert
2007-02-20 15:55                     ` Alan Stern
2007-04-26  9:19                 ` Joerg Schilling [this message]
2007-04-26 15:04                   ` Alan Stern
2007-04-26 15:08                     ` James Bottomley

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=46306ea4.nlqf3c05IYBhob1c%Joerg.Schilling@fokus.fraunhofer.de \
    --to=joerg.schilling@fokus.fraunhofer.de \
    --cc=James.Bottomley@steeleye.com \
    --cc=dougg@torque.net \
    --cc=jens.axboe@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stern@rowland.harvard.edu \
    --subject='Re: [PATCH] Block layer: separate out queue-oriented ioctls' \
    /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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).