Re: [PATCH] xfs: add regression test for DAX mount option usage
From: Dan Williams <hidden>
Date: 2017-09-14 14:10:04
Also in:
linux-xfs, nvdimm
On Thu, Sep 14, 2017 at 6:16 AM, Johannes Thumshirn [off-list ref] wrote:
On Thu, Sep 14, 2017 at 08:19:58AM -0400, Jeff Moyer wrote:quoted
Dan Williams [off-list ref] writes:quoted
On Wed, Sep 13, 2017 at 5:40 PM, Dave Chinner [off-list ref] wrote:quoted
On Wed, Sep 13, 2017 at 05:28:39PM -0700, Dan Williams wrote:quoted
On Wed, Sep 13, 2017 at 4:34 PM, Dave Chinner [off-list ref] wrote:quoted
/me shrugs I just don't like the concept of using tracepoints to as a definitive diagnostic test for something working because it'll break when the kernel implementation and tracepoints change. So while we can probe for perf being present, we can't probe whether the tracepoint we need behaves as the test expects it to...That concern makes sense. We handle that it a crude way in the libnvdimm unit tests by hard coding a required minimum kernel version and rolling a test forward to depend on a new kernel when assumptions about the kernel-internals change. The tests also inject out-of-tree kernel modules that let us go after specific kernel internal behavior. With this approach we don't end up creating userspace ABI since the test explicitly loads out-of-tree modules.That's horrible. OT, but how are distros or anyone backporting libnvdimm fixes and features supposed to test their kernels work correctly with such a test harness?The upstream kernel version for the test to assume can be overridden by an environment variable. It has worked well so far for me when I'm using it it to test backports, but I don't have much in the way of third-party feedback.It sucks. :-) What we really want is to depend on a feature being available, not on a kernel version. We did discuss this a while ago. Let me go dig it up... https://lists.01.org/pipermail/linux-nvdimm/2017-March/009253.html We never came to any real conclusion on a good way forward, though.I think I already said this before [1], but can't we make a "features" sysfs/debugfs attribute with one bit set for each feature implemented? This definitively would help when running the test-suite on a backport. [1] https://lists.01.org/pipermail/linux-nvdimm/2016-March/004963.html
What discouraged me from going that route in the past is the busy work of tracking / syncing these new debugfs feature gate flags across 2 source repositories. If we want to stop depending on kernel version in the test suite over time I think the only sane way to manage that tight integration is to get ndctl into the kernel tree proper. ...but please say a bit more about the actual pain points with the current environment variable approach. You want to be able to have a debugfs directory that has something like: /featureA /featureB /featureC /fixX /fixY /fixZ /quirkQ ...where, depending on backport priorities, a subset of those may not exist? Does having the test suite in the kernel tree help or hurt what you're trying to do?