On Mon, Jun 22, 2015 at 9:57 AM, Christoph Hellwig <hch@xxxxxx> wrote: > 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. Of course it will be persisted with an on disk BTT superblock. Establishing that superblock by default and deleting at on-demand are via Kconfig and sysfs. -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in