On Mon, 10 Jun 2013, Sasha Levin wrote: > > There must be another reason. Lets fix this. > > My, I feel silly now. > > I was the one who added __GFP_NOFAIL in the first place in > 2ccd4f4d ("pipe: fail cleanly when root tries F_SETPIPE_SZ > with big size"). > > What happens is that root can go ahead and specify any size > it wants to be used as buffer size - and the kernel will > attempt to comply by allocation that buffer. Which fails > if the size is too big. Could you check that against a boundary? Use vmalloc if larger than a couple of pages? Maybe PAGE_COSTLY_ORDER or so? THe higher the order the more likely it is that the allocation will fail. The PAGE_ORDER_COSTLY (or so) is a reasonable limit as to what size of a linear contiguous allocation that can be expected to be successful. -- 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>