[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Re: [PATCH 3 of 3] interface: add 'discard-secure' and BLKIF_DISCARD_SECURE



On Thu, Oct 13, 2011 at 08:59:28AM +0100, Ian Campbell wrote:
> On Wed, 2011-10-12 at 23:12 +0100, Konrad Rzeszutek Wilk wrote:
> > # HG changeset patch
> > # User Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
> > # Date 1318457231 14400
> > # Node ID 50850daec7f0486ee7ca69b3d4cb58b4d340a5a7
> > # Parent  15c2d70dbac3e31c2d74b6700e1bb5f8a7d8256e
> > interface: add 'discard-secure' and BLKIF_DISCARD_SECURE
> > 
> > Alter the 'reserved' uint8_t to be used a 'flag'. We use only for
> > one flag: BLKIF_DISCARD_SECURE.
> > 
> > That flag can only be set if the backend has set 'discard-secure' to one.
> > If backend has not set 'discard-secure' to one, that flag will have no
> > effect.
> > 
> > Acked-by: Jan Beulich <JBeulich@xxxxxxxx>
> > Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
> > 
> > diff -r 15c2d70dbac3 -r 50850daec7f0 xen/include/public/io/blkif.h
> > --- a/xen/include/public/io/blkif.h Wed Oct 12 18:07:07 2011 -0400
> > +++ b/xen/include/public/io/blkif.h Wed Oct 12 18:07:11 2011 -0400
> > @@ -107,7 +107,7 @@
> >   *     e07154r6-Data_Set_Management_Proposal_for_ATA-ACS2.doc
> >   * http://www.seagate.com/staticfiles/support/disc/manuals/
> >   *     Interface%20manuals/100293068c.pdf
> > - * The backend can optionally provide two extra XenBus attributes to
> > + * The backend can optionally provide three extra XenBus attributes to
>                                          these
> 
> avoids patching (or more likely forgetting to patch) this line every
> time we add an attribute.
> 
> >   * further optimize the discard functionality:
> >   * 'discard-aligment' - Devices that support discard functionality may
> >   * internally allocate space in units that are bigger than the exported
> > @@ -119,6 +119,9 @@
> >   * size. The discard-granularity parameter indicates the size of the 
> > internal
> >   * allocation unit in bytes if reported by the device. Otherwise the
> >   * discard-granularity will be set to match the device's physical block 
> > size.
> > + * 'discard-secure' - All copies of the discarded sectors (potentially 
> > created
> > + * by garbage collection) must also be erased.  To use this feature, the 
> > flag
> > + * BLKIF_DISCARD_SECURE must be set in the blkif_request_trim.
> 
> Stray "trim" here.

Duh!
> 
> >   */
> >  #define BLKIF_OP_DISCARD           5
> 
> It just occurred to me that if reusing the reserved field is going to
> prove a problem we could have had BLKIF_OP_DISCARD_SECURE. I think we've
> got things under control though.

Yeah, I think the reserved->flag attribute worked out nicely.
> 
> >  
> > @@ -159,7 +162,8 @@ typedef struct blkif_request blkif_reque
> >   */
> >  struct blkif_request_discard {
> >      uint8_t        operation;    /* BLKIF_OP_DISCARD                     */
> > -    uint8_t        reserved;     /*                                      */
> > +    uint8_t        flag;         /* BLKIF_DISCARD_SECURE or zero         */
> > +#define BLKIF_DISCARD_SECURE (1<<0)  /* ignored if discard-secure=0      */
> >      blkif_vdev_t   handle;       /* same as for read/write requests      */
> >      uint64_t       id;           /* private guest value, echoed in resp  */
> >      blkif_sector_t sector_number;/* start sector idx on disk             */
> > 
> > 
> 

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.