Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp3221907imu; Sat, 24 Nov 2018 00:27:11 -0800 (PST) X-Google-Smtp-Source: AFSGD/UePPmrTThRbiuPCFjQKMT5sBcUGfIlfGJkstFmEPsrp4MI1lGXfDD1784SwhoSbNobR1oS X-Received: by 2002:a65:50c1:: with SMTP id s1mr16673059pgp.350.1543048031264; Sat, 24 Nov 2018 00:27:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543048031; cv=none; d=google.com; s=arc-20160816; b=xSgwK+vpQUV5BFpZkGyKOfDtHo83dx0lxeSklvCTyFJB8NGHY52vpADA/nFZsm/aW0 WnGGL8jHZmVcYC/+ecLaYHKSjG0WMxkLZIUKi8KsoyulNqG54CmcmyMFY+W4LKFWddA8 1Jr7GP9TeRy3D/aH+mCaQWLcgrgSJ/g6x6aA5E6m50rDHY/dIUxfDgANp7054cy7cJSx kLrZe/kZKnb/a3zNwgM7j/rPjKrWyIGauXCrZSu0VHrKddf6hJdGTIjBBCirqcTjGMpB zKRLg4up1yYcdy8vqeCzYyaeax5m1x9TzEIy9ucypWiUYwICzqjt893/SiB1MUUNA8jg /zEw== 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-transfer-encoding:content-disposition:mime-version :references:message-id:subject:cc:to:from:date; bh=Mb7BbcaKDW1AOpqykxHmVmyKAqYI39ZHr6uglMRpyfU=; b=h+3p4dXWIwkslA6yuL4SmfSb+lo3ZdP8MmFwNLjlq9qgUJaBrk8tV8hnIVprVjEwQL ZsPNGVwxKR242G6acp0JvO05KEiufRdgWZdvhge36jnfscIAuTIPfSULfZ0Q6z2onEEV hhBOHd/8SQg7w+CVu1ZQSh/moeeojT2l/gD/70/dTUQtKtlzDYol/TBInQwIrLE2vbYM iznLuG/6IHKZEjBCUoiTraOx/QWDgJQnSKGdP8W3Jceh+fkp1kE220p3VAt4Rwv+i14A wVDrljuc5UTVlI04wqS7t+aQjUOqCk1SImuWnZaZR1icXqiJQ/dEX+tPgyzDdu8ydBzR 6rBQ== 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 cb2si36796087plb.298.2018.11.24.00.26.56; Sat, 24 Nov 2018 00:27:11 -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 S2394198AbeKWV4a (ORCPT + 99 others); Fri, 23 Nov 2018 16:56:30 -0500 Received: from mx2.suse.de ([195.135.220.15]:52606 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2387941AbeKWV4a (ORCPT ); Fri, 23 Nov 2018 16:56:30 -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 BFC47AF11; Fri, 23 Nov 2018 11:12:38 +0000 (UTC) Date: Fri, 23 Nov 2018 12:12:37 +0100 From: Michal Hocko To: Daniel Vetter Cc: 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: <20181123111237.GE8625@dhcp22.suse.cz> References: <20181122165106.18238-1-daniel.vetter@ffwll.ch> <20181122165106.18238-3-daniel.vetter@ffwll.ch> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20181122165106.18238-3-daniel.vetter@ffwll.ch> 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 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? > Cc: Andrew Morton > Cc: Michal Hocko > Cc: David Rientjes > Cc: "Christian K?nig" > Cc: Daniel Vetter > Cc: "J?r?me Glisse" > Cc: linux-mm@kvack.org > Signed-off-by: Daniel Vetter > --- > mm/mmu_notifier.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/mm/mmu_notifier.c b/mm/mmu_notifier.c > index 59e102589a25..4d282cfb296e 100644 > --- a/mm/mmu_notifier.c > +++ b/mm/mmu_notifier.c > @@ -185,7 +185,13 @@ int __mmu_notifier_invalidate_range_start(struct mm_struct *mm, > id = srcu_read_lock(&srcu); > hlist_for_each_entry_rcu(mn, &mm->mmu_notifier_mm->list, hlist) { > if (mn->ops->invalidate_range_start) { > - int _ret = mn->ops->invalidate_range_start(mn, mm, start, end, blockable); > + int _ret; > + > + if (IS_ENABLED(CONFIG_DEBUG_ATOMIC_SLEEP) && !blockable) > + preempt_disable(); > + _ret = mn->ops->invalidate_range_start(mn, mm, start, end, blockable); > + if (IS_ENABLED(CONFIG_DEBUG_ATOMIC_SLEEP) && !blockable) > + preempt_enable(); > if (_ret) { > pr_info("%pS callback failed with %d in %sblockable context.\n", > mn->ops->invalidate_range_start, _ret, > -- > 2.19.1 > -- Michal Hocko SUSE Labs