From patchwork Wed Apr 29 08:50:08 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liu, Jingqi" X-Patchwork-Id: 1279103 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=2001:470:142::17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=intel.com Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:470:142::17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 49BsnT6vz6z9sPF for ; Wed, 29 Apr 2020 18:56:29 +1000 (AEST) Received: from localhost ([::1]:42862 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTiW3-00010R-Oa for incoming@patchwork.ozlabs.org; Wed, 29 Apr 2020 04:56:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57796) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTiVb-0000qN-FR for qemu-devel@nongnu.org; Wed, 29 Apr 2020 04:56:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jTiV7-0001AE-QU for qemu-devel@nongnu.org; Wed, 29 Apr 2020 04:55:58 -0400 Received: from mga05.intel.com ([192.55.52.43]:25911) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jTiV6-0000gc-Rs for qemu-devel@nongnu.org; Wed, 29 Apr 2020 04:55:29 -0400 IronPort-SDR: LcrOJWY6f2E5C8qWVMN3m8xc5mjnhfKkktuTZwk1IFq+4Vagm6Qa6Q/+VcDMJTZEb2RcManuwl veYyqbJkMCZg== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Apr 2020 01:55:24 -0700 IronPort-SDR: Cgw6ZF3Y9GPACo+TR3qYKlTcCBaM1dJrFr74Z/2mGyN3//X6lSGOzRqOFjUinHVu9hukbbBOpF XJdX+dLSMzLQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,331,1583222400"; d="scan'208";a="459114591" Received: from dazhang1-mobile.sh.intel.com ([10.239.48.70]) by fmsmga005.fm.intel.com with ESMTP; 29 Apr 2020 01:55:22 -0700 From: Jingqi Liu To: Paolo Bonzini , Richard Henderson , Joao Martins , Xiao Guangrong , Dan Williams Subject: [PATCH v3 0/3] fetch the alignment of device dax Date: Wed, 29 Apr 2020 16:50:08 +0800 Message-Id: <20200429085011.63752-1-jingqi.liu@intel.com> X-Mailer: git-send-email 2.17.1 Received-SPF: pass client-ip=192.55.52.43; envelope-from=jingqi.liu@intel.com; helo=mga05.intel.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/29 04:55:24 X-ACL-Warn: Detected OS = FreeBSD 9.x or newer [fuzzy] X-Received-From: 192.55.52.43 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jingqi Liu , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" This series adds libdaxctl support and fetchs the alignment of device dax through libdaxctl [1] APIs. QEMU uses mmap(2) to maps vNVDIMM backends and aligns the mapping address to the page size (getpagesize(2)) by default. However, some types of backends may require an alignment different than the page size. The 'align' option is provided to memory-backend-file to allow users to specify the proper alignment. For device dax (e.g., /dev/dax0.0), the 'align' option needs to match the alignment requirement of the device dax, which can be fetched through the APIs of libdaxctl version 57 or up. [1] Libdaxctl is a part of ndctl project. The project's repository is: https://github.com/pmem/ndctl Changelog: v3: - Per Joao's suggestion, require libdaxctl version 57 or up. - Per Joao's suggestion, suggest to query the @align with daxctl tool in docs/nvdimm.txt. v2: - Per Paolo and Dan's suggestions, fetch the alignment of device dax through libdaxctl APIs. v1: - The initial version. Fetch the alignment through "/sys/dev/char/%d:%d/device/align". Jingqi Liu (3): exec: fetch the alignment of Linux devdax pmem character device nodes docs/nvdimm: add description of alignment requirement of device dax configure: add libdaxctl support configure | 29 ++++++++++++++++++++++++++ docs/nvdimm.txt | 10 +++++++++ exec.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 92 insertions(+), 1 deletion(-)