Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp4653249ybl; Mon, 26 Aug 2019 13:49:08 -0700 (PDT) X-Google-Smtp-Source: APXvYqy8FL4cEGuyDmHRaz6xymLHLfHjYs/o79y3jwTOi7mlm7g/IS4jEDBelyOnSJKTjw5AaRgc X-Received: by 2002:aa7:9a5a:: with SMTP id x26mr21570810pfj.47.1566852548387; Mon, 26 Aug 2019 13:49:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1566852548; cv=none; d=google.com; s=arc-20160816; b=th3KdGBKAxN7cKFoemWyIAX9NARPbFshY5bbzMNlBigiWDykhwbUEcI7NnSpG03NFt RKHsU3+SGLvZS7RqisQgM9UuwXuVkQeyxEkYMYp1WvwYD3KPlyuDXoBcq+RqaQZzXFIU 2p9toTQjEi8C7p4L+/DcW7QxhCBUDYBa6rW/4BQ6MfQNIn0MHq8JtvRiqG3lKtiJNQuT bacU5vJw94B09e4KWVO2XukWANhuXTNe+a/Ft0vj1dn3aZ2m7mEJDI2LqtlpG60ProJ8 500I3LtBaotQLBLur4gP8wzfMSZN86zPCtmPuE3KPKykVQz3xUyc8VoQpwYxBTrXhnOI N+Dw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=bUhdeRpbg8gRloy4w33VnXTSeooO5sqpvDT0wx5DMzY=; b=nAsDVMGh+83ve5tMnEkZ/OBFoDBsziS9PsU1bGHYIbNup7dqT9MBuTS7w2a6xrTOUd PBpShCURrlDtWjZ6iAxoz9DHqzpUwNVxY0V4rTwvY6AY6pFgamPhUC1ffBdAKG9sl1KE wRLVr3JdhT+7Y1g7ACzSRnOh8mFCz6iGVY96lTTPVTpoIXRxWUu+P20bkGPOP8N0YTIA DW30lo87JOOU+btdBbNGN3DR0MijC5Y1JYtszqliGSKYRx+Pp3WVSwbCD/CwxrZz8uxl uAomJJqomD3altJ1mO+qQrUr8ZHiLpSikjJuR9g+FNr52j4lKKjHJnux7/gjHELE4Au3 2SzQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ffwll.ch header.s=google header.b=QViZPMOC; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v10si10388312plo.384.2019.08.26.13.48.52; Mon, 26 Aug 2019 13:49:08 -0700 (PDT) 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; dkim=pass header.i=@ffwll.ch header.s=google header.b=QViZPMOC; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388073AbfHZUOs (ORCPT + 99 others); Mon, 26 Aug 2019 16:14:48 -0400 Received: from mail-ed1-f67.google.com ([209.85.208.67]:41489 "EHLO mail-ed1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388031AbfHZUOk (ORCPT ); Mon, 26 Aug 2019 16:14:40 -0400 Received: by mail-ed1-f67.google.com with SMTP id w5so28140350edl.8 for ; Mon, 26 Aug 2019 13:14:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=bUhdeRpbg8gRloy4w33VnXTSeooO5sqpvDT0wx5DMzY=; b=QViZPMOCt4TCBDSlKAVCdrC+U37mohUaGpt7t54fKUAJnII/M30PJe3HVgsMvO32I/ JHmsQisAEo+uwv1GVmUHudMfC1x01ExLcWbO28gdRMZiZ/4jYiOIUrGZ6L9+5vRcVnku F9YxwgBgX7xnEA70Wp+hl/fz9/FJFtPM7Z4dQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=bUhdeRpbg8gRloy4w33VnXTSeooO5sqpvDT0wx5DMzY=; b=M4l1Ax+3+DTvfn2bx/o+hTJwZeqqfYhYnDXQBiL/2HFaPJdUdkO/kHvMxn4uNJQtBd dVwnH0EUWXtMGwVeubj1Z+K1goR0NesvkTlnw7dWwflFHFWlj+MwX0CdDCybeLwPTrmc FTJlFzDJRAKjLYO0iNF0kEaa1OS2U2SM/9QtlghRqI/PxrPI6Cfx+pATviqWcHTT9JNu W9w9x1aeVi89FwSUpnu/NzGjoG+++hJka3gKdI/P9wbc3lIPeyKRH8Bz3vD4cIcqMVKK IdTGuU/iA9a+RKdxfIBSvlB0d5EpzJuEFETUsB+Vrvzup78etFSDDBjIJnb3LtLh9UYo h5qw== X-Gm-Message-State: APjAAAWHmn5AMTzfuNxLQKbzsrwN6D+8+KMIDKkabOaCkcrEGnInd9p5 X5yEkbgPgKL1o5egD77ZiK1QZQxt8MtKoA== X-Received: by 2002:aa7:c552:: with SMTP id s18mr21104247edr.0.1566850478492; Mon, 26 Aug 2019 13:14:38 -0700 (PDT) Received: from phenom.ffwll.local (212-51-149-96.fiber7.init7.net. [212.51.149.96]) by smtp.gmail.com with ESMTPSA id j25sm3000780ejb.49.2019.08.26.13.14.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Aug 2019 13:14:37 -0700 (PDT) From: Daniel Vetter To: LKML Cc: Linux MM , DRI Development , Daniel Vetter , Jason Gunthorpe , Andrew Morton , Michal Hocko , David Rientjes , =?UTF-8?q?Christian=20K=C3=B6nig?= , =?UTF-8?q?J=C3=A9r=C3=B4me=20Glisse?= , Daniel Vetter Subject: [PATCH 5/5] mm, notifier: annotate with might_sleep() Date: Mon, 26 Aug 2019 22:14:25 +0200 Message-Id: <20190826201425.17547-6-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20190826201425.17547-1-daniel.vetter@ffwll.ch> References: <20190826201425.17547-1-daniel.vetter@ffwll.ch> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Since mmu notifiers don't exist for more processes, but could block in interesting places, add some annotations. This should help make sure core mm keeps up its end of the mmu notifier contract. The checks here are outside of all notifier checks because of that. They compile away without CONFIG_DEBUG_ATOMIC_SLEEP. Suggested by Jason. Cc: Jason Gunthorpe 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 --- include/linux/mmu_notifier.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/include/linux/mmu_notifier.h b/include/linux/mmu_notifier.h index 3f9829a1f32e..8b71813417e7 100644 --- a/include/linux/mmu_notifier.h +++ b/include/linux/mmu_notifier.h @@ -345,6 +345,8 @@ static inline void mmu_notifier_change_pte(struct mm_struct *mm, static inline void mmu_notifier_invalidate_range_start(struct mmu_notifier_range *range) { + might_sleep(); + lock_map_acquire(&__mmu_notifier_invalidate_range_start_map); if (mm_has_notifiers(range->mm)) { range->flags |= MMU_NOTIFIER_RANGE_BLOCKABLE; @@ -368,6 +370,9 @@ mmu_notifier_invalidate_range_start_nonblock(struct mmu_notifier_range *range) static inline void mmu_notifier_invalidate_range_end(struct mmu_notifier_range *range) { + if (mmu_notifier_range_blockable(range)) + might_sleep(); + if (mm_has_notifiers(range->mm)) __mmu_notifier_invalidate_range_end(range, false); } -- 2.23.0