From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755458AbcEXKFh (ORCPT ); Tue, 24 May 2016 06:05:37 -0400 Received: from mail-am1on0104.outbound.protection.outlook.com ([157.56.112.104]:26266 "EHLO emea01-am1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751527AbcEXKFf (ORCPT ); Tue, 24 May 2016 06:05:35 -0400 Authentication-Results: kernel.org; dkim=none (message not signed) header.d=none;kernel.org; dmarc=none action=none header.from=virtuozzo.com; Date: Tue, 24 May 2016 13:05:23 +0300 From: Vladimir Davydov To: Michal Hocko CC: Andrew Morton , Johannes Weiner , , Subject: Re: [PATCH] mm: memcontrol: fix possible css ref leak on oom Message-ID: <20160524100523.GJ7917@esperanza> References: <1464019330-7579-1-git-send-email-vdavydov@virtuozzo.com> <20160523174441.GA32715@dhcp22.suse.cz> <20160524084319.GH7917@esperanza> <20160524084737.GC8259@dhcp22.suse.cz> <20160524090142.GI7917@esperanza> <20160524092202.GD8259@dhcp22.suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <20160524092202.GD8259@dhcp22.suse.cz> X-Originating-IP: [195.214.232.10] X-ClientProxiedBy: AM4PR01CA0021.eurprd01.prod.exchangelabs.com (10.164.74.159) To HE1PR08MB0585.eurprd08.prod.outlook.com (10.163.178.139) X-MS-Office365-Filtering-Correlation-Id: 367a02bc-84ad-468e-16f4-08d383baf018 X-Microsoft-Exchange-Diagnostics: 1;HE1PR08MB0585;2:IWu1091J6MfLAsGzXMGqodAy7PKsJtj8ULoxcn95Jd9QZ6CSSy2piJNOGVdtIjTHkH7Mpgh5p78sVHR9jf8mCippn/liZsHmyPcr+e8H6D7k4Uk1DN+iPhptNcE5Teiq1c48kUFCqGzIJLKF80XJLoiyDTMHkJQsBUA+qa03JJWLAXeOv0Cs8kQgWcgE1kVB;3:0oognORyVKt77mDKB0BIc/BPw9gKgrLoBbr5Kjz3N85w/y0HNTVkgF4RLHGCs77MS5MMsb1uMspPzz6j7liwmJcGgI/oXiyBVRpc2fktPHZf1e8gsg+96QjCtgEDe9OC X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:HE1PR08MB0585; X-Microsoft-Exchange-Diagnostics: 1;HE1PR08MB0585;25:bOcJcOvlXhRQBe1nc0UEk6HX3ihHSohlhHuSyG5J+u8meYRmhgF6ijPZDCZUzX1SiaKVE7EAI8uyW85YoO8sOC47Vu04eM1CynX8tN7UvYjM0MWPBGwl+iznGEtUi6aAi7LDocjEfZg3Dmaq2DM7/WsU4kMs2V376VP1jjhkkH/LmH3qmfgDHRMjffiM3BKjKf42aqXEmCV+z/5oNX3jxrNmNNAYisVnTNExCRAAbE2S5ly6leJTx/HzHxF3ATKboQJA4Ug+Cf6eHijvO73LL1uH79XwMtLlIWckMJsb/BKlTQwf84ZXIbW+b1ax0mJBHItgpIVrZRhct6UQVRTBiwPlhF5NRh2/dqCPpP0VEkpGAD310NG2YNu4oHB4eHnF302ZxMk3HjtHSDn5vgFE30MoAggliKTT7iSuanu3OFPBjYiBetRL7FkXyMzgMq9uFiuu5oJaAaDDOuk8U76WzFACWw5usZTm/aysiWOx+k+J0qeTCxnyNct44OqQ0iSWoFGMkDw+nJ7c60YKVoEpM6SzB1y7vGv5t2pG0NJ39WGDS7JBm/GH5eF5xtpkVVO+yIIkTYxYV8WFDRjcyYtcRXbncEeu5ZuxvJnUXcgaHOfTzKLqAoDy1/jf5fXamslCHtKYUCHuqc7+mVGx9LU6IJ6DyBIYrpDeM0fP4OlqQ6/a+d7XAYGX8CSwAfWYF3vhfXWHOEcUZQT489MbG0DznA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040130)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6041072)(6043046);SRVR:HE1PR08MB0585;BCL:0;PCL:0;RULEID:;SRVR:HE1PR08MB0585; X-Microsoft-Exchange-Diagnostics: 1;HE1PR08MB0585;4:Tm3mFZl65tJjhEsg6VnKV3pPk8BTRBBmWHOMDG7DueDQb+l3S5TGXSk1jozHN0gO3KoUzNmKsXrZQKCmE8FcbZCQSxIttUleWGvWlPdwhJlb0f50flAEkE11XVLLM2uJsRvQmyFd1+rKIZQNHD+RB9TQwmUD1NKoPQnBywpExnviLK3hxOMOcFR1fJggfSdUPyNeAmJR6YfRnphaPko97ZT2vsrFJRlhmjkYEvZ7WQ/ZIfvjIMYWqwAc5mW86DauyAeLssSXwzGSUK3cSklJBSotnXRQoYOEadvRdTAQC+myp7QtNnHw5I94ZyQ+DdGCZ8XLevD4UY3LR0HP7uPAOHCkeqncVTRIqu+5Ow+oIs/GH9gQzuOY6iLYs47QloLex0BMqCP8dNxhNpn/IpMdUw0/QK8O6r3WejCIx/i/JvY= X-Forefront-PRVS: 09525C61DB X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(377424004)(24454002)(54094003)(86362001)(92566002)(42186005)(2950100001)(33716001)(54356999)(77096005)(50986999)(76176999)(33656002)(110136002)(189998001)(8676002)(81166006)(80792005)(5008740100001)(586003)(23726003)(9686002)(46406003)(1076002)(47776003)(97756001)(4326007)(3846002)(6116002)(5004730100002)(2906002)(66066001)(50466002)(93886004);DIR:OUT;SFP:1102;SCL:1;SRVR:HE1PR08MB0585;H:esperanza;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;HE1PR08MB0585;23:0M1nNGLy1nvKYsrMG1JdTdDxevrU18n+aGehe+qWZPuzY0yWotf/BKeJNHeoamd62/0PDDrDRBNyr2TkQsaK1hjpFT6bEb/xYKXGxFkxrwrQ1mnGDsYzKYaj3vCKjGQlZ90Z+XcHy8umjBo8FbUtAWmcabFeWJcIsXQHAZ9wmZpW8DNJA1Xm+4sFpYh+GQ3dNGdcAm9yBjZ58SVLCbCC8q4RVRK3DG3Q2PJIov4M0R9eU+6xCS0EMd0q5l4ExdfT/h9nLJZhYwuMc0V1FddQXjXgexJdWtqalIsA/JKJHWe7CFagDr1U8KBXAhkUk1GlPktLOoMA3zcRoZ6eQ9tVK2Oqu/ULYucijz0yp2rGFLTr9uC2zFqfQYzamDaROCZeuPcr+W4OW7FuZvmA2heeeZLUoV25nCmyE+pSPAbXpsuP9Y0/fjw+7orpclVdUlfR8eO6SW03a+WiDCz4m9LzISLnXX4s2kcvpJxQqFQdEnPbGs4VGkPMwj6GE+/tLFx2bg5jxPCPhPtqgyVb+swHcFswVZjtB9OYqb8WYGJTTUF7efDlYmOp9HwGaqYpmfOTkVnrEgrfFdkXTKnENLSnUU99JiOiGyQHYYtW+QswvidVzNi6nkmIEPRO3CGaKLiwxMuBm0R8ZoUkNiv6guuAgo17SRo4xLwV4k2D6JrpXoRU3dJf2ex7YOYDRTZTRXSzZVwanmmQNkpMI5ZAys22/7+9J5qfmvgTz53hsX8fN2iiKIu6ARkrbd9bUTK7q4wMp1hFvoVsWfZbsz7LZYBuVmmSm0hWIYm+p/YrxuSYd0f0u5+168mLTlNY9Is0PQyWZpgc6fATFVfFyhzPFOxdbu4gTTkcpaaLMhuEx9uh+z8IJXkj5UdRJxpVb2ljqk0mKdj5QBuPhWiXcb87leE/iYo06rVWi42KSlIFlT480UIEylwsxvPUkECbCRVn7a/X X-Microsoft-Exchange-Diagnostics: 1;HE1PR08MB0585;5:pP9gD4vHw31/SSaA6qmRDvX7i1CyuuBZ2Twg82NkFqoRCCVsonudTJAbofZ9NuBawgBnmuVLmueYeR4DCmeVu/9qN+8dKwDcE7npvpK+2BOCTH/zMTz9L6JESiqrXssFiwXDlv2wE+H2MF5pbmgipw==;24:ioG0A7ZaYutBIAyahP3PLlPsVmXKqJ/Kzu5p7qG7N/LUrflkrYj1t2DiS9sI83a9RURaLuWfUnZeosDibGPAj9/ufY0AlDdyeK90RoM5NwU=;7:k1MbsWfmGsLXvHyRx/Y0BejZsRWivQ55hqqWCSnuOOiVf8WUGWEAEHDo7I+60mkaD01NsM10DloE4ktOcsMwKDvUkymj0eNKnSE/16ALA9C87/3eU+APYuFNW1Zekh+VSlDOTU3HmMDcWsJ0WLB2/qjTyMkde8Ejej/yvUT+FBF7sujW7syXDRbzg3KZ6qFs;20:1VQQNw12sTPklGaQeqEiT92mZEq++q7JaaNmMleUlfa0dd3u/c6XM0/9uHjPaHOOncFEmZ7Q14k7ePMFrTn6VKAzT6rxV09TH76lHPSEoFA/Dkk0wgmmypjJG5RpCXsXkxk1nN4kG7O9vlZPPXCHi82dYcqo/SmRnplVWTTfiqA= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2016 10:05:29.5262 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR08MB0585 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, May 24, 2016 at 11:22:02AM +0200, Michal Hocko wrote: > On Tue 24-05-16 12:01:42, Vladimir Davydov wrote: > > On Tue, May 24, 2016 at 10:47:37AM +0200, Michal Hocko wrote: > > > On Tue 24-05-16 11:43:19, Vladimir Davydov wrote: > > > > On Mon, May 23, 2016 at 07:44:43PM +0200, Michal Hocko wrote: > > > > > On Mon 23-05-16 19:02:10, Vladimir Davydov wrote: > > > > > > mem_cgroup_oom may be invoked multiple times while a process is handling > > > > > > a page fault, in which case current->memcg_in_oom will be overwritten > > > > > > leaking the previously taken css reference. > > > > > > > > > > Have you seen this happening? I was under impression that the page fault > > > > > paths that have oom enabled will not retry allocations. > > > > > > > > filemap_fault will, for readahead. > > > > > > I thought that the readahead is __GFP_NORETRY so we do not trigger OOM > > > killer. > > > > Hmm, interesting. We do allocate readahead pages with __GFP_NORETRY, but > > we add them to page cache and hence charge with GFP_KERNEL or GFP_NOFS > > mask, see __do_page_cache_readahaed -> read_pages. > > I guess we do not want to trigger OOM just because of readahead. What do I agree this is how it should ideally work. Not sure if anybody would bother in practice. > you think about the following? I will cook up a full patch if this > (untested) looks ok. It won't work for most filesystems as they define custom ->readpages. I wonder if it'd be OK to patch them all not to trigger oom.