• Ross Zwisler's avatar
    nd_blk: change aperture mapping from WC to WB · 67a3e8fe
    Ross Zwisler authored
    This should result in a pretty sizeable performance gain for reads.  For
    rough comparison I did some simple read testing using PMEM to compare
    reads of write combining (WC) mappings vs write-back (WB).  This was
    done on a random lab machine.
    
    PMEM reads from a write combining mapping:
    	# dd of=/dev/null if=/dev/pmem0 bs=4096 count=100000
    	100000+0 records in
    	100000+0 records out
    	409600000 bytes (410 MB) copied, 9.2855 s, 44.1 MB/s
    
    PMEM reads from a write-back mapping:
    	# dd of=/dev/null if=/dev/pmem0 bs=4096 count=1000000
    	1000000+0 records in
    	1000000+0 records out
    	4096000000 bytes (4.1 GB) copied, 3.44034 s, 1.2 GB/s
    
    To be able to safely support a write-back aperture I needed to add
    support for the "read flush" _DSM flag, as outlined in the DSM spec:
    
    http://pmem.io/documents/NVDIMM_DSM_Interface_Example.pdf
    
    This flag tells the ND BLK driver that it needs to flush the cache lines
    associated with the aperture after the aperture is moved but before any
    n...
    67a3e8fe
cacheflush.h 4.32 KB