NVSL / linux-nova

NOVA is a log-structured file system designed for byte-addressable non-volatile memories, developed at the University of California, San Diego.
http://nvsl.ucsd.edu/index.php?path=projects/nova
Other
423 stars 118 forks source link

Dead lock contention for DAX-mmap page fault with snapshot taking #54

Open Andiry opened 7 years ago

Andiry commented 7 years ago

Reproduce steps:

Run whisper vacation workload, then take a snapshot.

Root cause:

We do not allow DAX-COW page fault during snapshot taking. It will wait for snapshot taking finished.

Process 1 Process 2

Snapshot taking start

                                                      Page fault
                                                      down_write(&mm->mmap_sem)
                                                      // nova_restore_page_write

                                                      // waiting for snapshot complete in nova_mmap_to_new_blocks()
                                                      // Stuck here

down_write(&mm->mmap_sem) // nova_set_vma_read // Stuck here

derrickgreenspan commented 3 years ago

Am I mistaken, or is this still not resolved?