On Wed, May 28, 2014 at 3:31 PM, Dave Chinner <david@xxxxxxxxxxxxx> wrote: > > Indeed, the call chain reported here is not caused by swap issuing > IO. Well, that's one way of reading that callchain. I think it's the *wrong* way of reading it, though. Almost dishonestly so. Because very clearly, the swapout _is_ what causes the unplugging of the IO queue, and does so because it is allocating the BIO for its own IO. The fact that that then fails (because of other IO's in flight), and causes *other* IO to be flushed, doesn't really change anything fundamental. It's still very much swap that causes that "let's start IO". IOW, swap-out directly caused that extra 3kB of stack use in what was a deep call chain (due to memory allocation). I really don't understand why you are arguing anything else on a pure technicality. I thought you had some other argument for why swap was different, and against removing that "page_is_file_cache()" special case in shrink_page_list(). Linus -- 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>