Re: [PATCH v5 5/7] pmem: add pmem_recovery_write() dax op

2022-02-06 Thread Jane Chu
On 2/3/2022 10:21 PM, Dan Williams wrote: > On Fri, Jan 28, 2022 at 1:32 PM Jane Chu wrote: >> >> pmem_recovery_write() consists of clearing poison via DSM, >> clearing page HWPoison bit, re-state _PAGE_PRESENT bit, >> cacheflush, write, and finally clearing bad-block record. >> >> A competing pre

Re: [PATCH v5 5/7] pmem: add pmem_recovery_write() dax op

2022-02-03 Thread Dan Williams
On Fri, Jan 28, 2022 at 1:32 PM Jane Chu wrote: > > pmem_recovery_write() consists of clearing poison via DSM, > clearing page HWPoison bit, re-state _PAGE_PRESENT bit, > cacheflush, write, and finally clearing bad-block record. > > A competing pread thread is held off during recovery write > by t

Re: [PATCH v5 5/7] pmem: add pmem_recovery_write() dax op

2022-02-02 Thread Jane Chu
On 2/2/2022 5:43 AM, Christoph Hellwig wrote: >> @@ -257,10 +263,15 @@ static int pmem_rw_page(struct block_device *bdev, >> sector_t sector, >> __weak long __pmem_direct_access(struct pmem_device *pmem, pgoff_t pgoff, >> long nr_pages, void **kaddr, pfn_t *pfn) >> { >> +bool

Re: [PATCH v5 5/7] pmem: add pmem_recovery_write() dax op

2022-02-02 Thread Christoph Hellwig
> @@ -257,10 +263,15 @@ static int pmem_rw_page(struct block_device *bdev, > sector_t sector, > __weak long __pmem_direct_access(struct pmem_device *pmem, pgoff_t pgoff, > long nr_pages, void **kaddr, pfn_t *pfn) > { > + bool bad_pmem; > + bool do_recovery = false; >

[PATCH v5 5/7] pmem: add pmem_recovery_write() dax op

2022-01-28 Thread Jane Chu
pmem_recovery_write() consists of clearing poison via DSM, clearing page HWPoison bit, re-state _PAGE_PRESENT bit, cacheflush, write, and finally clearing bad-block record. A competing pread thread is held off during recovery write by the presence of bad-block record. A competing recovery_write th