Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 08 Mar 2015 13:28:57 +0000
From:      Steven Hartland <killing@multiplay.co.uk>
To:        freebsd-geom@freebsd.org
Subject:   Re: RFC: Pass TRIM through GELI
Message-ID:  <54FC4E99.4080202@multiplay.co.uk>
In-Reply-To: <20150308000131.GP1742@over-yonder.net>
References:  <20150308000131.GP1742@over-yonder.net>

next in thread | previous in thread | raw e-mail | index | archive | help
I don't see where your checking if the underlying device supports DELETE?

On 08/03/2015 00:01, Matthew D. Fuller wrote:
> [ bcc'd to -fs because it's been discussed there in the past; followup
>    to -geom because that seems where it belongs ]
>
> I've done a quick implementation of TRIM passthru support for GELI.
> Patch attached is against late Feb -CURRENT; however, a glance at svn
> suggests this code hasn't changed much, so it's probably pretty
> portable forward and back.  It applies cleanly to a stable/10 tree
> though I haven't tried compiling or using it there.
>
> This has been lightly tested and seems to work fine.  It adds a '-t'
> flag to init and onetime to enable passthru on the new provider, and
> '-t/-T' options to configure to en/disable on existing (but see caveat
> below about metadata versions; as written, you can't use this on
> existing partitions).
>
> Since all we're doing is passing it through instead of denying it, I'd
> expect "seems to work" to be pretty much the same as "does work"; the
> requests go through, space clears up, and messing with a little ZFS on
> top of it doesn't show up any data corruption.
>
> The patch to gnop in
> <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=198405>; is a useful
> adjunct in checking when/if the requests actually go through, by
> making the .eli on top of the .nop and seeing when the counters tick.
>
>
> In this implementation, I added a new G_ELI_VERSION and required it
> for setting the flag.  I actually think this is probably not
> necessary; all we do is set a value in the flags field, and if it's
> loaded onto a system that doesn't know what to do with that value,
> it'll just do nothing, which IMO is fine.  And since there is no `geli
> upgrade`, this means that you can't enable it on any existing
> partitions, but have to kill/init from scratch, which isn't very
> user-friendly.  So I propose that it actually be done sans those
> version changes, but they are in the patch as attached for now.
>
>
> One not-quite-related change in here is that I added a denial for
> 'geli configure' attempts on onetime providers.  Trying this causes a
> panic, as the metadata version field on onetime providers is
> nonsensical.  As far as I can tell in quick testing, this isn't
> related to my changes; it happens with stock GELI code as well.
> Presumably it's never been noticed before since the only prior use for
> 'geli configure' was to un/set the BOOT flag, which makes no sense on
> a onetime anyway, so nobody ever bothered trying.  But with -[tT],
> somebody might try.  Evidence: I did, and found the panic   :)
>
>




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?54FC4E99.4080202>