Re: [PATCH 14/15] libnvdimm: support read-only btt backing devices

Christoph Hellwig
2015-06-22T16:57:28Z

On Mon, Jun 22, 2015 at 09:54:51AM -0700, Dan Williams wrote:
> > I don't see why you're comparing with MD and DM here. MD and DM
> > sit cleanly ontop of any block device. If btt was independent of
> > libnvdimm and just used ->rw_bytes we could see it as this.
> >
> > But it's all a giant entangled mess, where btt for example is probed
> > by libnvdimm. At the same time pmem.c isn't really a true block
> > driver, it's really just a trivial shim between the block API
> > and pmem-style memcpy. Especially with the proper pmem API btt
> > would become cleaner just calling that directly.
>
> The pmem api does nothing to fix torn sectors, there's no extra
> atomicity guarantees that come from those instructions.

Of course not. And neither does pmem.c help with you in any way.

That's the point: btt should be a peer to pmem.c, not on top of it
as there's no value add in pmem.c for it, and they are logically peers.

> Well, let's start with per-disk btt and see where that gets us, we can
> always ramp up complexity later. I'd just as soon make the default
> opt-in/out a Kconfig toggle with a sysfs override.

Kconfig or sysfs are both utterly horrible choices. It's a disk format
choice so it needs to be persisted.