From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753537AbcB2OKc (ORCPT ); Mon, 29 Feb 2016 09:10:32 -0500 Received: from mail-bn1bon0071.outbound.protection.outlook.com ([157.56.111.71]:13088 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750975AbcB2OK3 (ORCPT ); Mon, 29 Feb 2016 09:10:29 -0500 X-Greylist: delayed 1115 seconds by postgrey-1.27 at vger.kernel.org; Mon, 29 Feb 2016 09:10:28 EST Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=amd.com; Subject: Re: [PATCH 17/18] drm/radeon: make radeon_mn_get wait for mmap_sem killable To: Michal Hocko , LKML References: <1456752417-9626-1-git-send-email-mhocko@kernel.org> <1456752417-9626-18-git-send-email-mhocko@kernel.org> CC: "dri-devel@lists.freedesktop.org" , , From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: <56D4493B.7010004@amd.com> Date: Mon, 29 Feb 2016 14:35:55 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: <1456752417-9626-18-git-send-email-mhocko@kernel.org> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [2a02:908:f678:601:788b:1e3e:fae4:545b] X-ClientProxiedBy: AM3PR07CA0046.eurprd07.prod.outlook.com (10.141.45.174) To CY1PR12MB0134.namprd12.prod.outlook.com (25.161.173.16) X-MS-Office365-Filtering-Correlation-Id: 3f00d374-7f95-458e-a946-08d3410d4805 X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0134;2:SXVx1y7S1EpUbxXWBvrXpLaXfRHjUniW38XjY7Ts+9G06LK3RGO1NU+qcQc+wlcsGeFlEQRbnN4bt3Ki2ZO8YvNXD/nMFirw1vNP/DtWcL9e2tBtc5fZjMm9RlY5Mifdg+4qnT7R4IJouHs5M+bomVOfnl0lpgoCEFvO15vA4vsOBvtnDADqFUQpJHxtj2WQ;3:aocHsnCgaQMolBZbg14e8tfc1/ss38HZFhadvgTHDB0hHdtLT+UJ/8er6aJ3U2P0RChCC/ihxykPoGkcCPX6LAvIuDn3HwIbFVtd4LSZURoSH6gP/3I+C1cF5o9ID5IW;25:DNOgSp0I1bIfTfMxbl2SobbtDVDUzQfbfFR6aKXzotTCBTTFoerA03XlJRR0RdLmK7/U3Zv2qbutkb/66GYuNgBeVoBb85rgiErUosC04J7hgPu0zxPQVCCE8RqTm1V7YEpJqQcWrkChwQUozNlR/z9xiYpFXZ6iTeWtjjPslNa3UyxkJZBeREuErA/Ril3HS17Ml3Sre6Sqr1axDFPkI/FeCqiJWT8d2dx4+7Upq4aUXbs/RtsaPFDYfBGaYapKhu+JGRdoWN8ytA0Okg4Q0SPHDjOTzMxAIIdNwdrE1HmRRzVH0Tjddo928c9jlQGpPQMS+FyfDqkIN5Icak6Usw== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR12MB0134; X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0134;20:IK8wFFqVZBaLBJ53wNaAXuaTg1eecworUYQBfKU4LKZdjJaz7MLiYI9DIt4pbFn+0I765a3TTqkNmrjbbKzdNV26YCCUKemdbjJ6iKt97wmEq3kDw8tm+eLnWh4WPCgU3uL2w8x9ujfxReJp6muRZEvTHgTqeVIxfvnLfUBwAsjqT3IDXYSrv0IZB5g++lh20nP8DpnSAP8vFXG/V7nhmSxn3YoxG2T3Q0Xem8+LXgC5SEF+ZhDlU9hB35DAqhharNfi0r0KEJWE/HXT1ZfD9yZwYfs4AIfii5hdkyC33B63dHZ+ZkJ0RpKsyQG6hoW9aBcupuBY91l3C/Qj/yA8lDNeYT43FvrAyLfmg2oFIC3pWioawtQODzb2SuAwr1FNpPZo6jKhVZuPc02ryc8xdFYSfhAAgRPrruYUiUDOqt71RNr/sitpKasMs9JyLp/Q0cD/Lhqurx5ZIm4kWwAIJD0LQRA0RSrERnRIsI0FNsH1t0QdxyHW2Py+Ii05ULVF;4:gnxlK75vwu5/aXc4kEWorhnlJoXmH7jIl5FVZtSGgEfYt9larF+0BkdwZbTcELijOMS7yNwh3YftmpK2mqY+cw1SFtF8pX7Y8XzkTDsVHnzH2c71x0gx5v8uAdMCeCxVtIwpRWS/zNSQiY3u1ND2GP+CIL+r8pVlg1VqPMfLx4eZsyJfqdZL1YYHWps0X4LaF9ov59bZ2Y4GUl8YLJ9Vw4PUVeUMjmTbC6jVaGs486VnlX22pOQXD6h8Bp+W176GzcLrggao4vZ9C3lYtrX9Smmb5kO4dHSCN8d/v8M3J5gjGrwbqlSM305K+nClGXBcy2Ow3o02y1r4oDZKkzzcpR/wR0xJt9kVPx2Teb5cLnkepA8xVcugM56ned/MR/rZ X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001);SRVR:CY1PR12MB0134;BCL:0;PCL:0;RULEID:;SRVR:CY1PR12MB0134; X-Forefront-PRVS: 0867F4F1AA X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(2870700001)(42186005)(4001350100001)(65816999)(50466002)(2950100001)(5001960100002)(50986999)(76176999)(87266999)(54356999)(5008740100001)(19580395003)(83506001)(5004730100002)(5001770100001)(86362001)(77096005)(92566002)(1096002)(23676002)(122386002)(33656002)(64126003)(2906002)(87976001)(586003)(65806001)(47776003)(40100003)(36756003)(4326007)(59896002)(6116002)(19580405001)(65956001)(189998001);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR12MB0134;H:[IPv6:2a02:908:f678:601:788b:1e3e:fae4:545b];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTFQUjEyTUIwMTM0OzIzOkQwMjdlbEF6RENBNERMQjNaZ0NXWUVTd3Rk?= =?utf-8?B?eWFDVzhXa2FiaXprd0xwQ0dVUlM2Z1luZmYzUlJMcGtaclBJeWpDT3AxTEZl?= =?utf-8?B?NWFwV3EwUGJQdk9BNWw1QUtZdHNFWUpDdnAxVUVTVmZkQnpoYlZISXR2UzV5?= =?utf-8?B?MWpLeVlJRC8yOUpjbmpzVlJpL2pNaDN3R2VaemNqTUdhV284YTlwc3R3M2J4?= =?utf-8?B?dHorVHdtWVZnVCtPNFl4bFVEMVIxa3FlUVJsRktzbFRDNVdDaDJ4Z1VPdWs4?= =?utf-8?B?NkVQdUtrOWFEeFpNeEJFa21ZV0RJVm4xNTV6QlBRUmVCNnRIY05Ia1l4UHlw?= =?utf-8?B?QTVVTCtudXlTdnJlTXhnYi9KZFhOSjlTVDNMcGZ5c2JkN01xNmljUnpJWFdH?= =?utf-8?B?d1ZKVFZYVU5oMk12YUREYmxGMk1UYkZ0MkhhckpWTW8yZHM0cFpGcXRRRWxm?= =?utf-8?B?ODEvU0t6WWdSbFlxcnY1d3NmZEttMVhTeUtSTFZEL0hsc3l4YXJMUFpwL08y?= =?utf-8?B?UmpaeW4wd3lmeWNBL1pacXVLMVRLV0c5UUs0UEtsTFlmMFFEZnE3dVNiVGNt?= =?utf-8?B?d3p4Y2VyUC91VHU5VUY2TEM2UWR1d09UcWdGL2syWnlpaFQ1Z3JvWkl5VFNQ?= =?utf-8?B?aFViNjAvQ3pFVmRjYTd5ditvb05SZElLaVVhTGVaRWVUdkJZWURSZ2tUU21B?= =?utf-8?B?K0dBOXJkaHkxdzRYeTBvZHNOakdOamgxSWhTTjl1TzM5VGs5TFEvc2FKamg0?= =?utf-8?B?NjhabjdFUG9lbkRkTXk0b0FpL3hMdStrUThTNjVsaCs5eHBFd1Bkcno3cDIx?= =?utf-8?B?UkF4TXRyUVlST3VDSHYzaWx4RVFZbzlESGNhTS9HRmYwd29pYzdWUnNyOW5a?= =?utf-8?B?UjNZQmhBRklPM0NDYnhyUXFjSFlmbUJNd1JlemkxOTZxWUdmWEtISmN3WTVp?= =?utf-8?B?RUdPUG9wclBDMHZHV25wcjgvakd3aXN5T1ZyTHRWT0MzYWM1TGxQYVhqc2Mr?= =?utf-8?B?VHFLZUVZcTkzVDhEd00zb2FIR0dQZk1tZGVKbEhkakhlZjN3R3RaQ3l5S3Nr?= =?utf-8?B?UDZWS3dubWo1Uit6d1lLd3AxOUcxNmVIVjMwU00xNlNwV3psVkxNeWFmZTN2?= =?utf-8?B?TXh0V2xpWDNjYTVvVE51MEdoWkhQUGx4L2RmSGUyVHdldkswSU9hTFhNeEVF?= =?utf-8?B?a2ZZU0xJUlE5b3NsRHA3aVlsWGZpcUt1ZVBod0VSS2ZxdllkblZvZXVQb2o0?= =?utf-8?B?K1lmMll5cVdNL25BL0FyMWNnNGEyYWYwVFNxZTFrYUN0Q1JKcDBhdlk0a0Yw?= =?utf-8?B?dllVNFRpVDgvSU1sdzAySHJsc2xQL01KUS8wenhoTks3UUYvV3Q4cHBsQi8z?= =?utf-8?B?d0xaT0xxZUJrck0wRitZSUF5WHNucWt4RUYyYWp2eVRmVno5Y2pUTG1zcVN3?= =?utf-8?Q?z0uQmcB3yuOZf6Zu1Zs4dj1doOT?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0134;5:31ykyXu7Q6r6QpRz1XyeEZ2eL78C5DgTgQSrUzerdu36mmafyg38ViyeYRYd40clGyfc+vO+83cQHn+0u7QcBUjTsezcWBLOgJBNfUw7DnXjv6Xw/i7TK/fq/y9phW+O9FOJdDIBZU5dm1um0w8iug==;24:eImPPbTA4MB72p+r2YuyHrF5k3QYhwX+O7re0rYlcLMCe0IZgaqH++0kvfQX/q4+SQNgN+MzlwfTd6koKSeOG9Y1S0+hSjAq/jAVmbsM4qs=;20:S2NqZMcO4FLEtvUMbP+PfLcfCoT/VUTPVjB5f/2BNnKm7IhuSV4IRU3kWeeCcgZo8VzjkN+1MWpwLeOLI3jBqbXpBAKMCdf5xE7vxWoB0Y1hNpgtPnXSdjXc792Ttmz9XjBEwHtrWCdBPxfrjiMknzvxXwbcHU7y6hhM/QfAkuCHjeuxGes6uqIdTNMpGUaq7A8MR2cnneYXOMbt8s/r2NY7vAPggXNLuqNPqpawMcJhq3q70IsKGfSN0B/vMBR9 SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Feb 2016 13:36:06.8707 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR12MB0134 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org [Dropping CCing the individual people, but adding the dri-devel mailing list as well instead]. Am 29.02.2016 um 14:26 schrieb Michal Hocko: > From: Michal Hocko > > radeon_mn_get which is called during ioct path relies on mmap_sem for > write. If the waiting task gets killed by the oom killer it would block > oom_reaper from asynchronous address space reclaim and reduce the > chances of timely OOM resolving. Wait for the lock in the killable mode > and return with EINTR if the task got killed while waiting. > > Cc: Alex Deucher > Cc: "Christian König" > Cc: David Airlie > Signed-off-by: Michal Hocko This one and patch #18 in this series are Reviewed-by: Christian König . Nice to see some improvements on this side, Christian. > --- > drivers/gpu/drm/radeon/radeon_mn.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/radeon/radeon_mn.c b/drivers/gpu/drm/radeon/radeon_mn.c > index eef006c48584..896f2cf51e4e 100644 > --- a/drivers/gpu/drm/radeon/radeon_mn.c > +++ b/drivers/gpu/drm/radeon/radeon_mn.c > @@ -186,7 +186,9 @@ static struct radeon_mn *radeon_mn_get(struct radeon_device *rdev) > struct radeon_mn *rmn; > int r; > > - down_write(&mm->mmap_sem); > + if (down_write_killable(&mm->mmap_sem)) > + return ERR_PTR(-EINTR); > + > mutex_lock(&rdev->mn_lock); > > hash_for_each_possible(rdev->mn_hash, rmn, node, (unsigned long)mm)