[PATCH 0/7] re-enable XFS per-inode DAX
by Ross Zwisler
This series does the work needed to safely re-enable the XFS per-inode DAX
flag. This includes fixes to make use of the DAX inode flag more safe and
consistent, fixes to the read and write I/O path locking to make S_DAX
transitions safe, and some code that prevents the DAX inode flag from
transitioning when any mappings are set up.
This series has passed my fstests regression testing both with and without
DAX, and it also passes Christoph's regression test for the inode flag:
https://www.spinics.net/lists/linux-xfs/msg10124.html
My goal is to get feedback on this approach and on the XFS implementation,
and then to do a similar implementation for ext4 based on my previous ext4
DAX inode flag patches:
https://patchwork.kernel.org/patch/9939743/
These patches apply cleanly to v4.14-rc2.
Ross Zwisler (7):
xfs: always use DAX if mount option is used
xfs: validate bdev support for DAX inode flag
xfs: protect S_DAX transitions in XFS read path
xfs: protect S_DAX transitions in XFS write path
xfs: introduce xfs_is_dax_state_changing
mm, fs: introduce file_operations->post_mmap()
xfs: re-enable XFS per-inode DAX
fs/xfs/xfs_file.c | 172 ++++++++++++++++++++++-------------------------------
fs/xfs/xfs_ioctl.c | 47 ++++++++++++---
include/linux/fs.h | 1 +
mm/mmap.c | 2 +
4 files changed, 114 insertions(+), 108 deletions(-)
--
2.9.5
4 years, 9 months
[ndctl PATCH] ndctl, bash-completion: the --align option requires an argument
by Vishal Verma
Add --align to the list op options to complete with an '=' appended.
Signed-off-by: Vishal Verma <vishal.l.verma(a)intel.com>
---
contrib/ndctl | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/contrib/ndctl b/contrib/ndctl
index 1874763..c7d1b67 100755
--- a/contrib/ndctl
+++ b/contrib/ndctl
@@ -91,7 +91,7 @@ __ndctlcomp()
COMPREPLY=( $( compgen -W "$1" -- "$2" ) )
for cword in "${COMPREPLY[@]}"; do
- if [[ "$cword" == @(--bus|--region|--type|--mode|--size|--dimm|--reconfig|--uuid|--name|--sector-size|--map|--namespace|--input|--output|--label-version) ]]; then
+ if [[ "$cword" == @(--bus|--region|--type|--mode|--size|--dimm|--reconfig|--uuid|--name|--sector-size|--map|--namespace|--input|--output|--label-version|--align) ]]; then
COMPREPLY[$i]="${cword}="
else
COMPREPLY[$i]="${cword} "
--
2.9.5
4 years, 9 months
[PATCH v5 0/2] dax, dm: stop requiring dax for device-mapper
by Dan Williams
Changes since v4:
* redo a botched send of v3
* rebase on 4.14-rc1
* rewrite the changelog of patch2 to drop broken references to the
"built-in portion of device-mapper" (Mike)
---
Bart points out that the DAX core is unconditionally enabled if
device-mapper is enabled. Add some config machinery and stub routines to
allow device-mapper to build and run with CONFIG_DAX=n.
---
Dan Williams (2):
dax: introduce CONFIG_DAX_DRIVER
dm: allow device-mapper to operate without dax support
arch/powerpc/platforms/Kconfig | 1 +
drivers/block/Kconfig | 1 +
drivers/dax/Kconfig | 4 +++-
drivers/md/Kconfig | 2 +-
drivers/md/dm-linear.c | 6 ++++++
drivers/md/dm-stripe.c | 6 ++++++
drivers/md/dm.c | 10 ++++++----
drivers/nvdimm/Kconfig | 1 +
drivers/s390/block/Kconfig | 1 +
include/linux/dax.h | 30 ++++++++++++++++++++++++------
10 files changed, 50 insertions(+), 12 deletions(-)
4 years, 9 months
转发:linux-nvdimm@lists.01.org
by 卞步
《全能型车间主任实战技能训练》,在全国推广七年以来,深受国内外企业菁莱。在全国成功举办公开课两百余场次,并被很多企业引进内训,尤其是中字头企业和装备制造企业。在举办过程中,学员对课程和老师的评价可综合为八个字:“实在”、“实用”、“实战”、“实际”。
大 纲 请 查 阅 附 件 内 容
4 years, 9 months
回复:包悠
by 包悠
主题:新任经理、部门经理全面管理技能提升训练
详细 大纲 请阅读 附件
4 years, 9 months
绩效体系设计——kpi与平衡计分卡
by 姬肾
在绩效管理实施过程中,会遇到一系列类似的问题,如果这些问题不得到圆满的解决,绩效管理的效果也会打了很大的折扣。本次课程会围绕这些问题展开,主要讲述绩效体系的设计以及推进方式。
亲:详情 请查 阅附件
4 years, 9 months
[ndctl PATCH] ndctl, list: fix crash when listing idle device-dax instances
by Dan Williams
The following crash results from running 'ndctl list -i' on an inactive
namespace that is claimed for device-dax operation.
Program received signal SIGSEGV, Segmentation fault.
daxctl_dev_get_devname (dev=0x0) at libdaxctl.c:566
566 return devpath_to_devname(dev->dev_path);
(gdb) bt
#0 daxctl_dev_get_devname (dev=0x0) at libdaxctl.c:566
#1 0x0000555555563b39 in util_namespace_to_json
at ../util/json.c:751
By definition the 'chardev' attribute for a device-dax instance can not
be found if the device-dax instance is disabled, because enabling the
namespace creates the child character device(s).
Signed-off-by: Dan Williams <dan.j.williams(a)intel.com>
---
util/json.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/util/json.c b/util/json.c
index dac8692a89af..d1ee351546b9 100644
--- a/util/json.c
+++ b/util/json.c
@@ -747,12 +747,18 @@ struct json_object *util_namespace_to_json(struct ndctl_namespace *ndns,
} else if (dax_region) {
struct daxctl_dev *dev;
+ /*
+ * We can only find/list these device-dax
+ * details when the instance is enabled.
+ */
dev = daxctl_dev_get_first(dax_region);
- name = daxctl_dev_get_devname(dev);
- jobj = json_object_new_string(name);
- if (!jobj)
- goto err;
- json_object_object_add(jndns, "chardev", jobj);
+ if (dev) {
+ name = daxctl_dev_get_devname(dev);
+ jobj = json_object_new_string(name);
+ if (!jobj)
+ goto err;
+ json_object_object_add(jndns, "chardev", jobj);
+ }
}
} else if (ndctl_namespace_get_type(ndns) != ND_DEVICE_NAMESPACE_IO) {
ndctl_namespace_get_uuid(ndns, uuid);
4 years, 9 months
[PATCH 0/3] dax: require 'struct page' and other fixups
by Dan Williams
Prompted by a recent change to add more protection around setting up
'vm_flags' for a dax vma [1], rework the implementation to remove the
requirement to set VM_MIXEDMAP and VM_HUGEPAGE.
VM_MIXEDMAP is used by dax to direct mm paths like vm_normal_page() that
the memory page it is dealing with is not typical memory from the linear
map. The get_user_pages_fast() path, since it does not resolve the vma,
is already using {pte,pmd}_devmap() as a stand-in for VM_MIXEDMAP, so we
use that as a VM_MIXEDMAP replacement in some locations. In the cases
where there is no pte to consult we fallback to using vma_is_dax() to
detect the VM_MIXEDMAP special case.
This patch series passes a run of the ndctl unit test suite and the
'mmap.sh' [2] test in particular. 'mmap.sh' tries to catch dependencies
on VM_MIXEDMAP and {pte,pmd}_devmap().
[1]: https://lkml.org/lkml/2017/9/25/638
[2]: https://github.com/pmem/ndctl/blob/master/test/mmap.sh
---
Dan Williams (3):
dax: disable filesystem dax on devices that do not map pages
dax: stop using VM_MIXEDMAP for dax
dax: stop using VM_HUGEPAGE for dax
drivers/dax/device.c | 1 -
drivers/dax/super.c | 7 +++++++
fs/ext2/file.c | 1 -
fs/ext4/file.c | 1 -
fs/xfs/xfs_file.c | 2 --
mm/huge_memory.c | 8 ++++----
mm/ksm.c | 3 +++
mm/madvise.c | 2 +-
mm/memory.c | 20 ++++++++++++++++++--
mm/migrate.c | 3 ++-
mm/mlock.c | 3 ++-
mm/mmap.c | 5 +++--
12 files changed, 40 insertions(+), 16 deletions(-)
4 years, 9 months
回复:质量管理新思维SQM与TQM
by 靳烟
系统化质量管理新思维SQM与TQM研修班
时间地点: 10月12-13日广州、11月23-24日广州
详细 课 纲 请 查阅 附件
4 years, 9 months