WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] vscsi 2TB patches

To: Samuel Kvasnica <bugreports@xxxxxxxxxxxxxx>
Subject: Re: [Xen-devel] vscsi 2TB patches
From: Pasi Kärkkäinen <pasik@xxxxxx>
Date: Tue, 4 Jan 2011 01:06:21 +0200
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Mon, 03 Jan 2011 15:07:26 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <4D222D71.9020508@xxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <4D222D71.9020508@xxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.18 (2008-05-17)
On Mon, Jan 03, 2011 at 09:11:29PM +0100, Samuel Kvasnica wrote:
> Hello xen developers,
> 

Hello,

> the current xen vscsi driver implementation has a nasty >2TB limitation.
> Both the
> backend and frontend driver need a patch - included in the attachments.
> 

Thanks for the patch!

> Basically, for the frontend, just the max_cmd_len needs to be set correctly.
> For for the backend, at least the READ_16 and WRITE_16 scsi commands
> vere missing.
> I also enabled/added some more scsi commands to allow tape drives and
> autoloader
> work properly.
> 
> Could please somebody here take care to add this to mainstream code ?
> SuSE people were not interested really and the original author is not
> really known, i.e. "Copyright by Fujitsu Limited". I'm really sick of
> patching every new kernel over and over...
> 

Which kernels did you test this against? I assume this should be
applied to linux-2.6.18-xen tree.

Note that pvops kernels don't have pvscsi drivers yet! 
(Noone ported them yet from Xenlinux kernels).

Also two minor things:
        - Please send patches made with "diff -u" (unified diffs)
        - Include Signed-Off-By line

-- Pasi

> best ragards,
> 
> Sam
> 
> 

> diff -r ./scsiback.orig/emulate.c scsiback/emulate.c
> 30a31,35
> > /*
> > * Patched to support >2TB drives + allow tape & autoloader operations
> > * 2010, Samuel Kvasnica, IMS Nanofabrication AG
> > */
> > 
> 384,385c389,390
> <     NO_EMULATE(TEST_UNIT_READY);       /*0x00*/
> <     NO_EMULATE(REZERO_UNIT);           /*0x01*/
> ---
> >     NO_EMULATE(TEST_UNIT_READY);       /*0x00*/ /* sd,st */
> >     NO_EMULATE(REZERO_UNIT);           /*0x01*/ /* st */
> 388c393
> <     NO_EMULATE(READ_BLOCK_LIMITS);     /*0x05*/
> ---
> >     NO_EMULATE(READ_BLOCK_LIMITS);     /*0x05*/ /* st */
> 390,393c395,398
> <     /*NO_EMULATE(INITIALIZE_ELEMENT_STATUS); *//*0x07*/
> <     NO_EMULATE(READ_6);                /*0x08*/
> <     NO_EMULATE(WRITE_6);               /*0x0a*/
> <     /*NO_EMULATE(SEEK_6);                *//*0x0b*/
> ---
> >     NO_EMULATE(INITIALIZE_ELEMENT_STATUS); /*0x07*/ /* ch */
> >     NO_EMULATE(READ_6);                /*0x08*/ /* sd,st */
> >     NO_EMULATE(WRITE_6);               /*0x0a*/ /* sd,st */
> >     NO_EMULATE(SEEK_6);                /*0x0b*/
> 395,396c400,401
> <     NO_EMULATE(WRITE_FILEMARKS);       /*0x10*/
> <     NO_EMULATE(SPACE);                 /*0x11*/
> ---
> >     NO_EMULATE(WRITE_FILEMARKS);       /*0x10*/ /* st */
> >     NO_EMULATE(SPACE);                 /*0x11*/ /* st */
> 399c404
> <     /*NO_EMULATE(MODE_SELECT);           *//*0x15*/
> ---
> >     NO_EMULATE(MODE_SELECT);           /*0x15*/ /* st */
> 403,406c408,411
> <     NO_EMULATE(ERASE);                 /*0x19*/
> <     NO_EMULATE(MODE_SENSE);            /*0x1a*/
> <     /*NO_EMULATE(START_STOP);            *//*0x1b*/
> <     /*NO_EMULATE(RECEIVE_DIAGNOSTIC);    *//*0x1c*/
> ---
> >     NO_EMULATE(ERASE);                 /*0x19*/ /* st */
> >     NO_EMULATE(MODE_SENSE);            /*0x1a*/ /* st */
> >     NO_EMULATE(START_STOP);            /*0x1b*/ /* sd,st */
> >     NO_EMULATE(RECEIVE_DIAGNOSTIC);    /*0x1c*/
> 408c413
> <     /*NO_EMULATE(ALLOW_MEDIUM_REMOVAL);  *//*0x1e*/
> ---
> >     NO_EMULATE(ALLOW_MEDIUM_REMOVAL);  /*0x1e*/
> 411,415c416,420
> <     NO_EMULATE(READ_CAPACITY);         /*0x25*/
> <     NO_EMULATE(READ_10);               /*0x28*/
> <     NO_EMULATE(WRITE_10);              /*0x2a*/
> <     /*NO_EMULATE(SEEK_10);               *//*0x2b*/
> <     /*NO_EMULATE(POSITION_TO_ELEMENT);   *//*0x2b*/
> ---
> >     NO_EMULATE(READ_CAPACITY);         /*0x25*/ /* sd */
> >     NO_EMULATE(READ_10);               /*0x28*/ /* sd */
> >     NO_EMULATE(WRITE_10);              /*0x2a*/ /* sd */
> >     NO_EMULATE(SEEK_10);               /*0x2b*/ /* st */
> >     NO_EMULATE(POSITION_TO_ELEMENT);   /*0x2b*/ /* ch */
> 421,427c426,432
> <     /*NO_EMULATE(SET_LIMITS);            *//*0x33*/
> <     /*NO_EMULATE(PRE_FETCH);             *//*0x34*/
> <     /*NO_EMULATE(READ_POSITION);         *//*0x34*/
> <     /*NO_EMULATE(SYNCHRONIZE_CACHE);     *//*0x35*/
> <     /*NO_EMULATE(LOCK_UNLOCK_CACHE);     *//*0x36*/
> <     /*NO_EMULATE(READ_DEFECT_DATA);      *//*0x37*/
> <     /*NO_EMULATE(MEDIUM_SCAN);           *//*0x38*/
> ---
> >     NO_EMULATE(SET_LIMITS);            /*0x33*/
> >     NO_EMULATE(PRE_FETCH);             /*0x34*/ /* st! */
> >     NO_EMULATE(READ_POSITION);          /*0x34*/ /* st */
> >     NO_EMULATE(SYNCHRONIZE_CACHE);      /*0x35*/ /* sd */
> >     NO_EMULATE(LOCK_UNLOCK_CACHE);     /*0x36*/
> >     NO_EMULATE(READ_DEFECT_DATA);      /*0x37*/
> >     NO_EMULATE(MEDIUM_SCAN);           /*0x38*/
> 430,431c435,436
> <     /*NO_EMULATE(WRITE_BUFFER);          *//*0x3b*/
> <     /*NO_EMULATE(READ_BUFFER);           *//*0x3c*/
> ---
> >     NO_EMULATE(WRITE_BUFFER);          /*0x3b*/
> >     NO_EMULATE(READ_BUFFER);           /*0x3c*/ /* osst */
> 437,439c442,444
> <     /*NO_EMULATE(READ_TOC);              *//*0x43*/
> <     /*NO_EMULATE(LOG_SELECT);            *//*0x4c*/
> <     /*NO_EMULATE(LOG_SENSE);             *//*0x4d*/
> ---
> >     NO_EMULATE(READ_TOC);              /*0x43*/ /* sr */
> >     NO_EMULATE(LOG_SELECT);            /*0x4c*/
> >     NO_EMULATE(LOG_SENSE);             /*0x4d*/ /* st! */
> 443c448
> <     /*NO_EMULATE(MODE_SENSE_10);         *//*0x5a*/
> ---
> >     NO_EMULATE(MODE_SENSE_10);         /*0x5a*/ /* scsi_lib */
> 447,448c452,455
> <     /*NO_EMULATE(MOVE_MEDIUM);           *//*0xa5*/
> <     /*NO_EMULATE(EXCHANGE_MEDIUM);       *//*0xa6*/
> ---
> >     NO_EMULATE(MAINTENANCE_IN);           /*0xa3*/ /* IFT alua */
> >     NO_EMULATE(MAINTENANCE_OUT);       /*0xa4*/ /* IFT alua */
> >     NO_EMULATE(MOVE_MEDIUM);           /*0xa5*/ /* ch */
> >     NO_EMULATE(EXCHANGE_MEDIUM);       /*0xa6*/ /* ch */
> 455,456c462,463
> <     /*NO_EMULATE(READ_ELEMENT_STATUS);   *//*0xb8*/
> <     /*NO_EMULATE(SEND_VOLUME_TAG);       *//*0xb6*/
> ---
> >     NO_EMULATE(READ_ELEMENT_STATUS);   /*0xb8*/ /* ch */
> >     NO_EMULATE(SEND_VOLUME_TAG);       /*0xb6*/ /* ch */
> 458,461c465,468
> <     /*NO_EMULATE(READ_16);               *//*0x88*/
> <     /*NO_EMULATE(WRITE_16);              *//*0x8a*/
> <     /*NO_EMULATE(VERIFY_16);              *//*0x8f*/
> <     /*NO_EMULATE(SERVICE_ACTION_IN);     *//*0x9e*/
> ---
> >     NO_EMULATE(READ_16);               /*0x88*/ /* sd >2TB */
> >     NO_EMULATE(WRITE_16);              /*0x8a*/ /* sd >2TB */
> >     NO_EMULATE(VERIFY_16);             /*0x8f*/
> >     NO_EMULATE(SERVICE_ACTION_IN);     /*0x9e*/ /* sd >2TB */
> 462a470
> > /* st: QFA_REQUEST_BLOCK, QFA_SEEK_BLOCK */

> diff -r ./scsifront.orig/xenbus.c ./scsifront/xenbus.c
> 30c30,34
> <  
> ---
> > 
> > /*
> > * Patched to support >2TB drives
> > * 2010, Samuel Kvasnica, IMS Nanofabrication AG
> > */
> 125d128
> < 
> 222a226
> >     host->max_cmd_len = VSCSIIF_MAX_COMMAND_SIZE;

> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel