Re: [PATCH 1/6] target/file: Re-enable optional fd_buffered_io=1operation

From: Nicholas A. Bellinger
Date: Tue Oct 02 2012 - 16:16:49 EST


On Mon, 2012-10-01 at 04:46 -0400, Christoph Hellwig wrote:
> On Sun, Sep 30, 2012 at 05:58:11AM +0000, Nicholas A. Bellinger wrote:
> > From: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
> >
> > This patch re-adds the ability to optionally run in buffered FILEIO mode
> > (eg: w/o O_DSYNC) for device backends in order to once again use the
> > Linux buffered cache as a write-back storage mechanism.
> >
> > This difference with this patch is that fd_create_virtdevice() now
> > forces the explicit setting of emulate_write_cache=1 when buffered FILEIO
> > operation has been enabled.
>
> What this lacks is a clear reason why you would enable this inherently
> unsafe mode. While there is some clear precedence to allow people doing
> stupid thing I'd least like a rationale for it, and it being documented
> as unsafe.
>
> > + /*
>
> Indention error.
>

Fixed

> > + * Optionally allow fd_buffered_io=1 to be enabled for people
> > + * who know what they are doing w/o O_DSYNC.
> > + */
>
> This comment doesn't explain at all what's going on here. It should be
> something like
>
> /*
> * Unsafe mode allows disabling data integrity by not forcing
> * data out to disk in writethrough cache mode. Only to be used
> * for benchmark cheating or similar purposes.
> */
>

How about the following instead..?

/*
* Optionally allow fd_buffered_io=1 to be enabled for people
* who want use the fs buffer cache as an WriteCache mechanism.
*
* This means that in event of a hard failure, there is a risk
* of silent data-loss if the SCSI client has *not* performed a
* forced unit access (FUA) write, or issued SYNCHRONIZE_CACHE
* to write-out the entire device cache.
*/


> > #define FBDF_HAS_PATH 0x01
> > #define FBDF_HAS_SIZE 0x02
> > +#define FDBD_USE_BUFFERED_IO 0x04
>
> This should be named BDBD_UNSAFE
>

As we are keeping the same fd_buffered_io key=value usage that rtslib
user-space already knows about, how using FDBD_HAS_BUFFERED_IO_WCE
instead for consistency..?


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/