Hi Sayan, It wasn't clear what was your purpose in posting these patches. There are a large number of ways in which they simply aren't ready for upstream merging. As a short list: 1) They are against an ancient version of the kernel (4.7.2). 2) There are a large number of TODO's in it in the code 3) The boundary between the two different tiers of storage is currently harded in a header file using a #define (!). If the goal is to gather comments about the design, I wish you had presented the problem statement to the ext4 mailig list much earlier. It might have saved you time in terms since we could have given you feedback before you had done all of this work on this patch set. Andreas' comments about making the allocation hints persistent not making any sense are very much on target. Once the file is written, the hints won't be needed at all. In addition, you should strongly think about some way propagating the fact that some blocks in device-mapper device are backed by DAX, and others are not, as a device-mapper interface. And it might not necessarily a single break point where below a block number is SSD or HDD storage, and above a block number it's DAX storage. The other thing to consider is whether it makes any sense at all to solve this problem by haing a single file system where part of the storage is DAX, and part is not. Why not just have two file systems, one which is 100% DAX, and another which is 100% HDD/SSD, and store the data in two files in two different file sytsems? - Ted