Hi Sergey, On Fri, Aug 03, 2018 at 11:39:29AM +0900, Sergey Senozhatsky wrote: > On (08/02/18 14:13), Andrew Morton wrote: > [..] > > That changelog is rather hard to follow. Please review my edits: > > > > : If zram supports writeback feature, it's no longer a BD_CAP_SYNCHRONOUS_IO > ^BDI_CAP_SYNCHRONOUS_IO > > [..] > > > A reader looking at this would wonder "why the heck are we doing that". > > Adding a code comment would help them. > > The interesting thing here is that include/linux/backing-dev.h > BDI_CAP_SYNCHRONOUS_IO comment says > > "Device is so fast that asynchronous IO would be inefficient." > > Which is not the reason why BDI_CAP_SYNCHRONOUS_IO is used by ZRAM. > Probably, the comment needs to be updated as well. I couldn't catch your point. Could you clarify a little bit more? What do you want to correct for the comment? > > Both SWP_SYNCHRONOUS_IO and BDI_CAP_SYNCHRONOUS_IO tend to pivot > "efficiency" [looking at the comments], but in ZRAM's case the whole > reason to use SYNC IO is a race condition and user-after-free that > follows. Actually, it's not whole reason. As I wrote down, without it, swap_readpage waits the IO completion for a long time by blk_poll so it causes system sluggish problem when device is slow(e.g., zram with backing device). Thanks.