On Mon, 9 Jan 2012, KOSAKI Motohiro wrote: > (1/9/12 5:25 PM), Hugh Dickins wrote: > > On Mon, 9 Jan 2012, KOSAKI Motohiro wrote: > > > > > PG_mlocked operation is not protected by LRU lock. So, I think we > > > > Right. But I don't see that I've made a significant change there. > > > > I may be being lazy, and rushing back to answer you, without giving > > constructive thought to what the precise race is that you see, and > > how we might fix it. If the case you have in mind is easy for you > > to describe in detail, please do so; but don't hesitate to tell me > > to my own work for myself! > > Bah! I was moron. I now think your code is right. > > spin_lock(lru_lock) > if (page_evictable(page)) > blah blah blah > spin_unlock(lru_lock) > > is always safe. Counter part should have following code and > waiting spin_lock(lru_lock) in isolate_lru_page(). > > if (!isolate_lru_page(page)) > putback_lru_page(page); > > then, even if check_move_unevictable_pages() observed wrong page status, > putback_lru_page() should put back the page into right lru. > > I'm very sorry for annoying you. Far from it, thank you again for giving it serious thought. I am not going to pretend to have thought down these paths myself, not recently - I was just relying on not changing the behaviour. But I am reassured to know that you have worked through it again and are now satisfied. > > Reviewed-by: KOSAKI Motohiro <kosaki.motohiro@xxxxxxxxxxxxxx> Thank you. > > Probably, page_evictable() might be needed some additional comments. But > I have no idea what comment clearly explain this complex rule..... I don't know any language that can make it clear: when forced to, one just has to think through it back and forth by oneself; and even then, it's so quickly forgotten. Hugh -- 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/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>