On Sun, Feb 11, 2018 at 6:14 PM, Kirill A. Shutemov <kirill@xxxxxxxxxxxxx> wrote: > On Sun, Feb 11, 2018 at 05:29:37PM +0300, Konstantin Khlebnikov wrote: >> And replace page_ref_inc()/page_ref_add() with page_ref_unfreeze() which >> is made especially for that and has semantic of smp_store_release(). > > Nak on this part. > > page_ref_unfreeze() uses atomic_set() which neglects the situation in the > comment you're removing. Why? look into x86 smp_store_release for PPro it use same sequence smp_wb + WRITE_ONCE As I see spin_unlock uses exactly this macro. Anyway if page_ref_unfreeze cannot handle races with get_page_unless_zero() then it completely useless, > > You need at least explain why it's safe now. > > I would rather leave page_ref_inc()/page_ref_add() + explcit > smp_mb__before_atomic(). > > -- > Kirill A. Shutemov > > -- > To unsubscribe, send a message with 'unsubscribe linux-mm' in > the body to majordomo@xxxxxxxxx. For more info on Linux MM, > see: http://www.linux-mm.org/ . > Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a> -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>