Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp3226291imu; Sat, 24 Nov 2018 00:32:44 -0800 (PST) X-Google-Smtp-Source: AFSGD/UBBR9ehu0yaE2ruu5dOwY1n4gPsWFWIRtEqVuW9CvIVQNvHp5VtWQRMnDEN5YjgrGL+RDU X-Received: by 2002:a63:e915:: with SMTP id i21mr16810615pgh.409.1543048364270; Sat, 24 Nov 2018 00:32:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543048364; cv=none; d=google.com; s=arc-20160816; b=YqRluQfbNAcTNofKAH86/JJ2i3npAwFr0W1El2c0JLOzoLvwMs71c0CoHPT7jymb6j OjqJDeMYwZIWcWlNASEaFaV4a31Jeg3D1DHCF02eE9ldAkA5rvGYuh92FQKLC6H9s4D5 o9nzN7xvr/1P2UUo9uqbFoM/WZ1WpAkuC4lT1AN1Qg8ZmrhL3FbnEfNFdPiAiCyV5wIg rFCR34jaA+GutRuoaX9YB1hD34gfP80tCbl5TgsNzboWf4cBiwYpI4BzNM7LKc4iM1NB 1SrDdf27Zt3kAqYtWWYOm7mGgcF8hDvzIdrJHMOmd24Ur71HEq/2NP0SDjeg02CJIHho 2RUg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=bDFtH0gEMcVhO5wYRVLRKRk40pmeyGoYD4zy9Y5rkbs=; b=q0X34nf66Qjeoajpj0JL7QY+hDWMCHVGcyyU9sajhLLQD1nJDAMhEyBDybxGtcIrsx hdYU8UEFy7l6mzisDhSknFu/SGii9c4Zv9De10XUPur4CmUVLvJUAqzRmABte4Dc1sAn kH/JSKNYzxfy9qrOPHpuqsUg+8HbvjnSYJZDSYYVOxllcWjTs5wSVces5exUbD4YwCMA nM/wPOiDADmtwyjxBoQILYUa2CJr9yIiZEgoKDCWaHMkrOR10r4aJ5LmRfG4efh1YYWx 0R9tp47kjiT6KElazA0Q5IOr/kGEV7RSzXV2+ERudriZmriAHDoX3XPUGUtiBR1bX+WY QSvA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a17-v6si14453149pfa.227.2018.11.24.00.32.29; Sat, 24 Nov 2018 00:32:44 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2394682AbeKWXat (ORCPT + 99 others); Fri, 23 Nov 2018 18:30:49 -0500 Received: from mx2.suse.de ([195.135.220.15]:38460 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2390833AbeKWXat (ORCPT ); Fri, 23 Nov 2018 18:30:49 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 1F275AEC0; Fri, 23 Nov 2018 12:46:44 +0000 (UTC) Date: Fri, 23 Nov 2018 13:46:43 +0100 From: Michal Hocko To: Daniel Vetter Cc: Daniel Vetter , LKML , Linux MM , Intel Graphics Development , DRI Development , Andrew Morton , David Rientjes , Christian =?iso-8859-1?Q?K=F6nig?= , =?iso-8859-1?B?Suly9G1l?= Glisse , Daniel Vetter Subject: Re: [PATCH 2/3] mm, notifier: Catch sleeping/blocking for !blockable Message-ID: <20181123124643.GK8625@dhcp22.suse.cz> References: <20181122165106.18238-1-daniel.vetter@ffwll.ch> <20181122165106.18238-3-daniel.vetter@ffwll.ch> <20181123111237.GE8625@dhcp22.suse.cz> <20181123123838.GL4266@phenom.ffwll.local> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20181123123838.GL4266@phenom.ffwll.local> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri 23-11-18 13:38:38, Daniel Vetter wrote: > On Fri, Nov 23, 2018 at 12:12:37PM +0100, Michal Hocko wrote: > > On Thu 22-11-18 17:51:05, Daniel Vetter wrote: > > > We need to make sure implementations don't cheat and don't have a > > > possible schedule/blocking point deeply burried where review can't > > > catch it. > > > > > > I'm not sure whether this is the best way to make sure all the > > > might_sleep() callsites trigger, and it's a bit ugly in the code flow. > > > But it gets the job done. > > > > Yeah, it is quite ugly. Especially because it makes DEBUG config > > bahavior much different. So is this really worth it? Has this already > > discovered any existing bug? > > Given that we need an oom trigger to hit this we're not hitting this in CI > (oom is just way to unpredictable to even try). I'd kinda like to also add > some debug interface so I can provoke an oom kill of a specially prepared > process, to make sure we can reliably exercise this path without killing > the kernel accidentally. We do similar tricks for our shrinker already. Create a task with oom_score_adj = 1000 and trigger the oom killer via sysrq and you should get a predictable oom invocation and execution. [...] > Wrt the behavior difference: I guess we could put another counter into the > task struct, and change might_sleep() to check it. All under > CONFIG_DEBUG_ATOMIC_SLEEP only ofc. That would avoid the preempt-disable > sideeffect. My worry with that is that people will spot it, and abuse it > in creative ways that do affect semantics. See horrors like > drm_can_sleep() (and I'm sure gfx folks are not the only ones who > seriously lacked taste here). > > Up to the experts really how to best paint this shed I think. Actually I like a way to say non_block_{begin,end} and might_sleep firing inside that context. -- Michal Hocko SUSE Labs