7b6be8444e
We want dax capable drivers to be able to publish a set of dax operations [1]. However, we do not want to further abuse block_devices to advertise these operations. Instead we will attach these operations to a dax device and add a lookup mechanism to go from block device path to a dax device. A dax capable driver like pmem or brd is responsible for registering a dax device, alongside a block device, and then a dax capable filesystem is responsible for retrieving the dax device by path name if it wants to call dax_operations. For now, we refactor the dax pseudo-fs to be a generic facility, rather than an implementation detail, of the device-dax use case. Where a "dax device" is just an inode + dax infrastructure, and "Device DAX" is a mapping service layered on top of that base 'struct dax_device'. "Filesystem DAX" is then a mapping service that layers a filesystem on top of that same base device. Filesystem DAX is associated with a block_device for now, but perhaps directly to a dax device in the future, or for new pmem-only filesystems. [1]: https://lkml.org/lkml/2017/1/19/880 Suggested-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
78 lines
2.2 KiB
Makefile
78 lines
2.2 KiB
Makefile
ldflags-y += --wrap=ioremap_wc
|
|
ldflags-y += --wrap=memremap
|
|
ldflags-y += --wrap=devm_ioremap_nocache
|
|
ldflags-y += --wrap=devm_memremap
|
|
ldflags-y += --wrap=devm_memunmap
|
|
ldflags-y += --wrap=ioremap_nocache
|
|
ldflags-y += --wrap=iounmap
|
|
ldflags-y += --wrap=memunmap
|
|
ldflags-y += --wrap=__devm_request_region
|
|
ldflags-y += --wrap=__devm_release_region
|
|
ldflags-y += --wrap=__request_region
|
|
ldflags-y += --wrap=__release_region
|
|
ldflags-y += --wrap=devm_memremap_pages
|
|
ldflags-y += --wrap=insert_resource
|
|
ldflags-y += --wrap=remove_resource
|
|
ldflags-y += --wrap=acpi_evaluate_object
|
|
ldflags-y += --wrap=acpi_evaluate_dsm
|
|
|
|
DRIVERS := ../../../drivers
|
|
NVDIMM_SRC := $(DRIVERS)/nvdimm
|
|
ACPI_SRC := $(DRIVERS)/acpi/nfit
|
|
DAX_SRC := $(DRIVERS)/dax
|
|
ccflags-y := -I$(src)/$(NVDIMM_SRC)/
|
|
|
|
obj-$(CONFIG_LIBNVDIMM) += libnvdimm.o
|
|
obj-$(CONFIG_BLK_DEV_PMEM) += nd_pmem.o
|
|
obj-$(CONFIG_ND_BTT) += nd_btt.o
|
|
obj-$(CONFIG_ND_BLK) += nd_blk.o
|
|
obj-$(CONFIG_X86_PMEM_LEGACY) += nd_e820.o
|
|
obj-$(CONFIG_ACPI_NFIT) += nfit.o
|
|
ifeq ($(CONFIG_DAX),m)
|
|
obj-$(CONFIG_DAX) += dax.o
|
|
endif
|
|
obj-$(CONFIG_DEV_DAX) += device_dax.o
|
|
obj-$(CONFIG_DEV_DAX_PMEM) += dax_pmem.o
|
|
|
|
nfit-y := $(ACPI_SRC)/core.o
|
|
nfit-$(CONFIG_X86_MCE) += $(ACPI_SRC)/mce.o
|
|
nfit-y += config_check.o
|
|
|
|
nd_pmem-y := $(NVDIMM_SRC)/pmem.o
|
|
nd_pmem-y += pmem-dax.o
|
|
nd_pmem-y += config_check.o
|
|
|
|
nd_btt-y := $(NVDIMM_SRC)/btt.o
|
|
nd_btt-y += config_check.o
|
|
|
|
nd_blk-y := $(NVDIMM_SRC)/blk.o
|
|
nd_blk-y += config_check.o
|
|
|
|
nd_e820-y := $(NVDIMM_SRC)/e820.o
|
|
nd_e820-y += config_check.o
|
|
|
|
dax-y := $(DAX_SRC)/super.o
|
|
dax-y += config_check.o
|
|
|
|
device_dax-y := $(DAX_SRC)/device.o
|
|
device_dax-y += config_check.o
|
|
|
|
dax_pmem-y := $(DAX_SRC)/pmem.o
|
|
dax_pmem-y += config_check.o
|
|
|
|
libnvdimm-y := $(NVDIMM_SRC)/core.o
|
|
libnvdimm-y += $(NVDIMM_SRC)/bus.o
|
|
libnvdimm-y += $(NVDIMM_SRC)/dimm_devs.o
|
|
libnvdimm-y += $(NVDIMM_SRC)/dimm.o
|
|
libnvdimm-y += $(NVDIMM_SRC)/region_devs.o
|
|
libnvdimm-y += $(NVDIMM_SRC)/region.o
|
|
libnvdimm-y += $(NVDIMM_SRC)/namespace_devs.o
|
|
libnvdimm-y += $(NVDIMM_SRC)/label.o
|
|
libnvdimm-$(CONFIG_ND_CLAIM) += $(NVDIMM_SRC)/claim.o
|
|
libnvdimm-$(CONFIG_BTT) += $(NVDIMM_SRC)/btt_devs.o
|
|
libnvdimm-$(CONFIG_NVDIMM_PFN) += $(NVDIMM_SRC)/pfn_devs.o
|
|
libnvdimm-$(CONFIG_NVDIMM_DAX) += $(NVDIMM_SRC)/dax_devs.o
|
|
libnvdimm-y += config_check.o
|
|
|
|
obj-m += test/
|