From patchwork Wed Jan 5 21:31:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dan Williams X-Patchwork-Id: 12704742 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4568CC433EF for ; Wed, 5 Jan 2022 21:32:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244478AbiAEVcI (ORCPT ); Wed, 5 Jan 2022 16:32:08 -0500 Received: from mga14.intel.com ([192.55.52.115]:63626 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244476AbiAEVbl (ORCPT ); Wed, 5 Jan 2022 16:31:41 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1641418301; x=1672954301; h=subject:from:to:cc:date:message-id:mime-version: content-transfer-encoding; bh=Hi+2ZP4Pqr3i+LxVRDwSB2J991orqZ2nf+YDvaIjTEQ=; b=UsY76x4vr27peL8ArnbkiLQJiw0+47p2842Ld9+cdBThFVT/k+w8JwJE hdQ93jbioByRg0RnP7sK8Czd7ntiB3fRQl/Wp5kGvBT0SSOTfepqcpGx+ Hd8VV2bWN8SbJqhBRqWMg/BO1xoW2hc3p0g0IP9DtEdeuBiuGu3pFQoZh yE4MHwh11H3XmVSLZRi4jvZXDYJxn37/dVxzNigIrwBrRv+FXQHzWYW7M JxDhKDfGFGE1pEHzq6GTT6ZoTcRIkacF7+IBiPozEhXJO3q0UrdGlt8qF fJvd5LBA+xhRacbeFInS6gWnyXML7/BVqSZNDFww3a0RRDWfBpNjt8ZXZ A==; X-IronPort-AV: E=McAfee;i="6200,9189,10217"; a="242746444" X-IronPort-AV: E=Sophos;i="5.88,264,1635231600"; d="scan'208";a="242746444" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Jan 2022 13:31:39 -0800 X-IronPort-AV: E=Sophos;i="5.88,264,1635231600"; d="scan'208";a="591175711" Received: from dwillia2-desk3.jf.intel.com (HELO dwillia2-desk3.amr.corp.intel.com) ([10.54.39.25]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Jan 2022 13:31:39 -0800 Subject: [ndctl PATCH v3 00/16] ndctl: Meson support From: Dan Williams To: vishal.l.verma@intel.com Cc: Vaibhav Jain , nvdimm@lists.linux.dev, linux-cxl@vger.kernel.org Date: Wed, 05 Jan 2022 13:31:39 -0800 Message-ID: <164141829899.3990253.17547886681174580434.stgit@dwillia2-desk3.amr.corp.intel.com> User-Agent: StGit/0.18-3-g996c MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-cxl@vger.kernel.org Changes since v2 [1]: - Rebase on v72 - Add Meson support for the new config file directory definitions. - Add Meson support for landing the daxctl udev rule daxdev-reconfigure service in the right directories - Include the deprecation of BLK Aperture test infrastructure - Include a miscellaneous doc clarification for 'ndctl update-firmware' - Fix the tests support for moving the build directory out-of-line - Include a fix for the deprectation of the dax_pmem_compat module pending in the libnvdimm-for-next tree. [1]: https://lore.kernel.org/r/163061537869.1943957.8491829881215255815.stgit@dwillia2-desk3.amr.corp.intel.com Tested-by: Vaibhav Jain Tested-by: Alison Schofield --- As mentioned in patch 14 the motiviation for converting to Meson is primarily driven by speed (an order of magnitude in some scenarios), but Meson also includes better test and debug-build support. The build language is easier to read, write, and debug. Meson is all around better suited to the next phase of the ndctl project that will include all things "device memory" related (ndctl, daxctl, and cxl). In order to simplify the conversion the old BLK-aperture test infrastructure is jettisoned and it will also be removed upstream. Some other refactorings and fixups are included as well to better organize the utilty infrastructure between truly common and sub-tool specific. Vishal, In preparation for ndctl-v73 please consider pulling in this series early mainly for my own sanity of not needing to forward port more updates to the autotools infrastructure. --- Dan Williams (16): ndctl/docs: Clarify update-firwmware activation 'overflow' conditions ndctl/test: Prepare for BLK-aperture support removal ndctl/test: Move 'reset()' to function in 'common' ndctl/test: Initialize the label area by default ndctl/test: Skip BLK flags checks ndctl/test: Move sector-mode to a different region ndctl: Deprecate BLK aperture support ndctl/test: Fix support for missing dax_pmem_compat module util: Distribute 'filter' and 'json' helpers to per-tool objects Documentation: Drop attrs.adoc include build: Drop unnecessary $tool/config.h includes test: Prepare out of line builds ndctl: Drop executable bit for bash-completion script build: Add meson build infrastructure build: Add meson rpmbuild support ndctl: Jettison autotools .gitignore | 64 - Documentation/cxl/Makefile.am | 61 - Documentation/cxl/lib/Makefile.am | 58 - Documentation/cxl/lib/meson.build | 79 + Documentation/cxl/meson.build | 84 + Documentation/daxctl/Makefile.am | 75 - Documentation/daxctl/daxctl-reconfigure-device.txt | 2 Documentation/daxctl/meson.build | 94 + Documentation/ndctl/Makefile.am | 106 - Documentation/ndctl/intel-nvdimm-security.txt | 2 Documentation/ndctl/labels-description.txt | 5 Documentation/ndctl/meson.build | 124 ++ Documentation/ndctl/ndctl-create-namespace.txt | 29 Documentation/ndctl/ndctl-init-labels.txt | 7 Documentation/ndctl/ndctl-list.txt | 4 Documentation/ndctl/ndctl-load-keys.txt | 2 Documentation/ndctl/ndctl-monitor.txt | 2 Documentation/ndctl/ndctl-sanitize-dimm.txt | 2 Documentation/ndctl/ndctl-setup-passphrase.txt | 2 Documentation/ndctl/ndctl-update-firmware.txt | 64 + Documentation/ndctl/ndctl-update-passphrase.txt | 2 Documentation/ndctl/region-description.txt | 10 Makefile.am | 103 - Makefile.am.in | 49 - README.md | 1 autogen.sh | 28 clean_config.sh | 2 config.h.meson | 151 ++ configure.ac | 270 ---- contrib/meson.build | 28 contrib/ndctl | 0 contrib/nfit_test_depmod.conf | 1 cxl/Makefile.am | 22 cxl/filter.c | 25 cxl/filter.h | 7 cxl/json.c | 214 +++ cxl/json.h | 8 cxl/lib/Makefile.am | 32 cxl/lib/meson.build | 35 cxl/list.c | 4 cxl/memdev.c | 3 cxl/meson.build | 25 daxctl/Makefile.am | 40 - daxctl/device.c | 5 daxctl/filter.c | 43 + daxctl/filter.h | 12 daxctl/json.c | 245 +++ daxctl/json.h | 18 daxctl/lib/Makefile.am | 42 - daxctl/lib/meson.build | 44 + daxctl/list.c | 4 daxctl/meson.build | 35 daxctl/migrate.c | 1 meson.build | 286 ++++ meson_options.txt | 25 ndctl.spec.in | 15 ndctl/Makefile.am | 84 - ndctl/bat.c | 5 ndctl/bus.c | 4 ndctl/check.c | 2 ndctl/dimm.c | 6 ndctl/filter.c | 60 - ndctl/filter.h | 12 ndctl/inject-error.c | 6 ndctl/inject-smart.c | 6 ndctl/json-smart.c | 5 ndctl/json.c | 1114 ++++++++++++++ ndctl/json.h | 24 ndctl/keys.c | 6 ndctl/keys.h | 0 ndctl/lib/Makefile.am | 58 - ndctl/lib/libndctl.c | 2 ndctl/lib/meson.build | 48 + ndctl/lib/papr.c | 4 ndctl/lib/private.h | 4 ndctl/list.c | 5 ndctl/load-keys.c | 7 ndctl/meson.build | 82 + ndctl/monitor.c | 5 ndctl/namespace.c | 6 ndctl/region.c | 3 ndctl/test.c | 11 rhel/meson.build | 22 rpmbuild.sh | 5 sles/meson.build | 35 test.h | 3 test/Makefile.am | 192 -- test/ack-shutdown-count-set.c | 2 test/blk-exhaust.sh | 32 test/blk_namespaces.c | 357 ----- test/btt-check.sh | 7 test/btt-errors.sh | 16 test/btt-pad-compat.sh | 9 test/clear.sh | 4 test/common | 59 + test/core.c | 57 + test/create.sh | 17 test/dax-pmd.c | 11 test/dax.sh | 6 test/daxctl-create.sh | 4 test/daxdev-errors.c | 2 test/daxdev-errors.sh | 8 test/device-dax-fio.sh | 2 test/device-dax.c | 2 test/dm.sh | 4 test/dpa-alloc.c | 326 ---- test/dsm-fail.c | 4 test/firmware-update.sh | 8 test/inject-error.sh | 7 test/inject-smart.sh | 2 test/label-compat.sh | 2 test/libndctl.c | 253 +-- test/list-smart-dimm.c | 6 test/max_available_extent_ns.sh | 9 test/meson.build | 237 +++ test/mmap.sh | 6 test/monitor.sh | 17 test/multi-dax.sh | 4 test/multi-pmem.c | 285 ---- test/parent-uuid.c | 254 --- test/pfn-meta-errors.sh | 4 test/pmem-errors.sh | 12 test/pmem_namespaces.c | 2 test/rescan-partitions.sh | 7 test/revoke-devmem.c | 2 test/sector-mode.sh | 17 test/sub-section.sh | 4 test/track-uuid.sh | 6 tools/meson-vcs-tag.sh | 18 util/help.c | 2 util/json.c | 1542 -------------------- util/json.h | 39 - util/meson.build | 16 version.h.in | 2 134 files changed, 3561 insertions(+), 4658 deletions(-) delete mode 100644 Documentation/cxl/Makefile.am delete mode 100644 Documentation/cxl/lib/Makefile.am create mode 100644 Documentation/cxl/lib/meson.build create mode 100644 Documentation/cxl/meson.build delete mode 100644 Documentation/daxctl/Makefile.am create mode 100644 Documentation/daxctl/meson.build delete mode 100644 Documentation/ndctl/Makefile.am create mode 100644 Documentation/ndctl/meson.build delete mode 100644 Makefile.am delete mode 100644 Makefile.am.in delete mode 100755 autogen.sh create mode 100755 clean_config.sh create mode 100644 config.h.meson delete mode 100644 configure.ac create mode 100644 contrib/meson.build mode change 100755 => 100644 contrib/ndctl delete mode 100644 cxl/Makefile.am create mode 100644 cxl/filter.c create mode 100644 cxl/filter.h create mode 100644 cxl/json.c create mode 100644 cxl/json.h delete mode 100644 cxl/lib/Makefile.am create mode 100644 cxl/lib/meson.build create mode 100644 cxl/meson.build delete mode 100644 daxctl/Makefile.am create mode 100644 daxctl/filter.c create mode 100644 daxctl/filter.h create mode 100644 daxctl/json.c create mode 100644 daxctl/json.h delete mode 100644 daxctl/lib/Makefile.am create mode 100644 daxctl/lib/meson.build create mode 100644 daxctl/meson.build create mode 100644 meson.build create mode 100644 meson_options.txt delete mode 100644 ndctl/Makefile.am rename util/filter.c => ndctl/filter.c (88%) rename util/filter.h => ndctl/filter.h (89%) rename ndctl/{util/json-smart.c => json-smart.c} (99%) create mode 100644 ndctl/json.c create mode 100644 ndctl/json.h rename ndctl/{util/keys.c => keys.c} (99%) rename ndctl/{util/keys.h => keys.h} (100%) delete mode 100644 ndctl/lib/Makefile.am create mode 100644 ndctl/lib/meson.build create mode 100644 ndctl/meson.build create mode 100644 rhel/meson.build create mode 100644 sles/meson.build delete mode 100644 test/Makefile.am delete mode 100755 test/blk-exhaust.sh delete mode 100644 test/blk_namespaces.c delete mode 100644 test/dpa-alloc.c create mode 100644 test/meson.build delete mode 100644 test/multi-pmem.c delete mode 100644 test/parent-uuid.c create mode 100755 tools/meson-vcs-tag.sh create mode 100644 util/meson.build create mode 100644 version.h.in base-commit: 25062cf34c70012f5d42ce1fef7e2dc129807c10