From patchwork Fri Oct 12 16:09:53 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jerome Glisse X-Patchwork-Id: 10638829 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7AA861869 for ; Fri, 12 Oct 2018 16:10:13 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 68B302C163 for ; Fri, 12 Oct 2018 16:10:13 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5C6762C166; Fri, 12 Oct 2018 16:10:13 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 742C42C163 for ; Fri, 12 Oct 2018 16:10:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 54BD46B000A; Fri, 12 Oct 2018 12:10:11 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 4FA756B000C; Fri, 12 Oct 2018 12:10:11 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 413006B000D; Fri, 12 Oct 2018 12:10:11 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by kanga.kvack.org (Postfix) with ESMTP id 1A7806B000A for ; Fri, 12 Oct 2018 12:10:11 -0400 (EDT) Received: by mail-qt1-f199.google.com with SMTP id r53-v6so12666584qtc.0 for ; Fri, 12 Oct 2018 09:10:11 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:date:message-id:mime-version:content-transfer-encoding; bh=sfRpCvT7oBRLZTNAiKmvU3rA65o0h6TU/+TZtEDfzT4=; b=dQZNAqcQEqgso2U6oDt2S+V8pOxsZ0bJnjJL7uUuUJO2vuVg4Mats5dlkfxieNeK4n 3J8s9OIPRH/YMTyNaNrEy2+lV0r52ZVVouv1VUNbOtXvdnn5YkAMu6I5fTqtrd0Jhhqn 0zhJYN36bkI7Ea9OXj4z6WMZrj+WYCKwWg/lF7Qi2AJ2XbqCbHMor9CxQu+1SbeOEWC4 O/dc4H+tRaOx6UGXlBqIysR08oz7w/c/OvCkH+qRKZ6r5O0CPo9Ejdbq6P+55q7/rFLN TWfM5kmGRGIGJAzK5yNVs0FDKbP15ue1/HFhY1bPOxVFhhHHmWPMSynyQWqk2gAdsspU FjGA== X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of jglisse@redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=jglisse@redhat.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com X-Gm-Message-State: ABuFfogMz2L5SwUXJrDJSzgQUyqQjfu/dvgLGq9+RrDYOGEDaewWPUKZ eU89G83LXpjcqg2iL8/bpJUejMjv8q8YmH9xcPPBCeW+n5XIIMfhNTPwNqZ+AcEIgplVqHjKDld lt3UxEJ10rzceyE6JJOqFU1gMcmFgdmKmXkOGA3cTdXmpI2OyNPsVGq2/1wLoSxrpDg== X-Received: by 2002:a37:6a01:: with SMTP id f1-v6mr6313698qkc.8.1539360610896; Fri, 12 Oct 2018 09:10:10 -0700 (PDT) X-Google-Smtp-Source: ACcGV614ZKo4Pram3lZXzNIsxWtQL6fspSG6qMZwPenBaJwWKms6tDJN2orpeSXT/ff4iNDeWM+7 X-Received: by 2002:a37:6a01:: with SMTP id f1-v6mr6313672qkc.8.1539360610397; Fri, 12 Oct 2018 09:10:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1539360610; cv=none; d=google.com; s=arc-20160816; b=iPhXosrw4hQFntqBaMI621X6XRcIIbnr2o+aU31oExsJrTA01EX3URFY40LaH1TcAK jRsTtWYhzMTr23sa+Ef5RqH6dHZvjA0ew8SFJj1rNCX1ZOFFSLeEFdfrSdZ6Dt4o1aHv 1orXXq9DWNd6mlOk7Hi3wBgsrFoQjO2BRTDnFLkHJMpUor+kCP4339joMj3T+1+khCJF rS/bF5qcI7T1QnVrW+OoDdwRqhflBZWfvj23Brb0inx53knGgeE0s9+tJZnpsfPU6HQ3 2+I6UHWmUIzkG8MRSUWCsi1i+QmclaIcpPjA0wiSkPTt0QJWGodYEk/VqCWv/tx6lflu 1bYg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from; bh=sfRpCvT7oBRLZTNAiKmvU3rA65o0h6TU/+TZtEDfzT4=; b=t1QsurntYeL1t/qIwR+05S1SWNPkx+gjzfFGK4H8TgLgjK4St45yqeQCYiQNkJFqa2 hz+f7YKzTBn0ET7ZMGfs4I88Ok3m3W7SaSlwZqxetMkswWAoFAs8e0ib/v/nwlJr7+2J zifKhSBzMscobgxPAJkOo1K4CR60ReQW3Iv2PkiWeR1XV6y4uEavU4Z7GbEBmmM0D40o FW1C5qL+bdP93OGAFUSk2FNCgdCt8mtSayDh6mQHziuu7E3NmUC7T9gJhBVUjsV07wct 5IkB4AYyHuWqN31TWGadaXJY0djYOFjvP16vbcgQv+9a67P/92rS/HDw3yhS5b1B3bGZ fXqg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of jglisse@redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=jglisse@redhat.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from mx1.redhat.com (mx1.redhat.com. [209.132.183.28]) by mx.google.com with ESMTPS id m62-v6si1420341qkd.89.2018.10.12.09.10.10 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 Oct 2018 09:10:10 -0700 (PDT) Received-SPF: pass (google.com: domain of jglisse@redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; Authentication-Results: mx.google.com; spf=pass (google.com: domain of jglisse@redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=jglisse@redhat.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 1D11A309D39C; Fri, 12 Oct 2018 16:10:09 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-125-5.rdu2.redhat.com [10.10.125.5]) by smtp.corp.redhat.com (Postfix) with ESMTP id 848DA7ADDF; Fri, 12 Oct 2018 16:10:06 +0000 (UTC) From: jglisse@redhat.com To: linux-mm@kvack.org Cc: Andrew Morton , linux-kernel@vger.kernel.org, =?utf-8?b?SsOpcsO0bWUgR2xpc3Nl?= , Greg Kroah-Hartman , Zi Yan , "Kirill A . Shutemov" , "H. Peter Anvin" , Anshuman Khandual , Dave Hansen , David Nellans , Ingo Molnar , Mel Gorman , Minchan Kim , Naoya Horiguchi , Thomas Gleixner , Vlastimil Babka , Michal Hocko , Andrea Arcangeli Subject: [PATCH] mm/thp: fix call to mmu_notifier in set_pmd_migration_entry() Date: Fri, 12 Oct 2018 12:09:53 -0400 Message-Id: <20181012160953.5841-1-jglisse@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.46]); Fri, 12 Oct 2018 16:10:09 +0000 (UTC) X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP From: Jérôme Glisse Inside set_pmd_migration_entry() we are holding page table locks and thus we can not sleep so we can not call invalidate_range_start/end() So remove call to mmu_notifier_invalidate_range_start/end() and add call to mmu_notifier_invalidate_range(). Note that we are already calling mmu_notifier_invalidate_range_start/end() inside the function calling set_pmd_migration_entry() (see try_to_unmap_one()). Signed-off-by: Jérôme Glisse Reported-by: Andrea Arcangeli Cc: Andrew Morton Cc: Greg Kroah-Hartman Cc: Zi Yan Cc: Kirill A. Shutemov Cc: "H. Peter Anvin" Cc: Anshuman Khandual Cc: Dave Hansen Cc: David Nellans Cc: Ingo Molnar Cc: Mel Gorman Cc: Minchan Kim Cc: Naoya Horiguchi Cc: Thomas Gleixner Cc: Vlastimil Babka Cc: Michal Hocko Cc: Andrea Arcangeli Reviewed-by: Zi Yan Acked-by: Michal Hocko --- mm/huge_memory.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 533f9b00147d..93cb80fe12cb 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -2885,9 +2885,6 @@ void set_pmd_migration_entry(struct page_vma_mapped_walk *pvmw, if (!(pvmw->pmd && !pvmw->pte)) return; - mmu_notifier_invalidate_range_start(mm, address, - address + HPAGE_PMD_SIZE); - flush_cache_range(vma, address, address + HPAGE_PMD_SIZE); pmdval = *pvmw->pmd; pmdp_invalidate(vma, address, pvmw->pmd); @@ -2898,11 +2895,9 @@ void set_pmd_migration_entry(struct page_vma_mapped_walk *pvmw, if (pmd_soft_dirty(pmdval)) pmdswp = pmd_swp_mksoft_dirty(pmdswp); set_pmd_at(mm, address, pvmw->pmd, pmdswp); + mmu_notifier_invalidate_range(mm, address, address + HPAGE_PMD_SIZE); page_remove_rmap(page, true); put_page(page); - - mmu_notifier_invalidate_range_end(mm, address, - address + HPAGE_PMD_SIZE); } void remove_migration_pmd(struct page_vma_mapped_walk *pvmw, struct page *new)