From patchwork Thu Nov 8 18:11:58 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joel Fernandes X-Patchwork-Id: 10674839 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 3547E1751 for ; Thu, 8 Nov 2018 18:12:16 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 26CD02E09D for ; Thu, 8 Nov 2018 18:12:16 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 188462E0A2; Thu, 8 Nov 2018 18:12:16 +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=-3.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,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 D98852E09D for ; Thu, 8 Nov 2018 18:12:14 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CCD976B062A; Thu, 8 Nov 2018 13:12:13 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id CA42A6B062C; Thu, 8 Nov 2018 13:12:13 -0500 (EST) 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 B6D726B062D; Thu, 8 Nov 2018 13:12:13 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com [209.85.215.199]) by kanga.kvack.org (Postfix) with ESMTP id 735226B062A for ; Thu, 8 Nov 2018 13:12:13 -0500 (EST) Received: by mail-pg1-f199.google.com with SMTP id a18so5141483pga.16 for ; Thu, 08 Nov 2018 10:12:13 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:mime-version:content-transfer-encoding; bh=B0gA8LsXswfrIAmbtYisG71JTJmLmakfJ+ILccJByaU=; b=b1QvfNNjc6Po2EiR2gO3ucfVT1cFiVIhIm6ayc0Io4rIghs+wmlC4BhPTZAWTqunOm YTvj51EFLr9E45b9kjgtZfitagGtSGONtL160CzjFKZueUNS35qfs5rTDp8/lf2Bb+XK yBUhEd7cTnXRzeRnXr0RzjqDLFOyNc4AMgE4b/4t6UHlXlv2/Ho6Faz1TdtfygMjVt1n yeA0KCHhya6H6958J7vregn1B04b9zVXQnD/O+5glHMsKp0ylFUINHc0SlPYT6YA5vIa Peo8fKSHPEn60SpcEepfwtWRGlA53HQz/h9cjzmOvc8BA8+C8yPHT5SWaB1xpVW2RfQf /ynA== X-Gm-Message-State: AGRZ1gLL6eybjqK6QYAJuFMFY2MuNlaS/TKMRXNMuBuIo0qwvLkzUCvc NwzH9IEW2BEGFniIXZiFVlmo5DpAKM3aDmaBGErgEasv//r7zRgUOsXiQFrZWdp/97her0zyKYb gMzHTZbQCohFQ9qx9x63FVWkf43duMcumq7KuCSxiLpPyYLLX0RWeW7s8g5BH5fn3rwVFsC+cdP Lzb9DcKBfModnrBE+zX6mhypNPSeLZIQtfnk6RdxyXHPotkH+B56T/6Rp5/qgO34VlicdHxqsIM LP/vAHwA/H/UG/phga8QYMmNFxoNZVhX+H+q+LWIOYmR8KLoX8ZU2X6PM2jZbTNz8Iai9LzIcha K7Kq8Lnf/hpnGb9bQ8oCp+FWDDsdh/uGOd2PyjRYJ2ISqcpf2A6bSwEHhcBrzTAFIJzY3Z2NDSz / X-Received: by 2002:a65:47ca:: with SMTP id f10mr4755119pgs.166.1541700733114; Thu, 08 Nov 2018 10:12:13 -0800 (PST) X-Received: by 2002:a65:47ca:: with SMTP id f10mr4755064pgs.166.1541700732102; Thu, 08 Nov 2018 10:12:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1541700732; cv=none; d=google.com; s=arc-20160816; b=A3uesR18XmlChuw8KNnSwqTpCiap2CBsHSi2uzwHgOH1G0FJs4Eqsj6yQZZjQ+j2QT uZad4X8uYzWnjGa/tsREC+pCa6MQmlsR89sfa8ZxyOJYxwI4H/tK418k5djq2VlPO/oi K2EMSvLm9le2ay+oIbKK5Y1b6cn3CDjM8fn/uS2pZ6ZHBXDJRmnJ4SR9fYV59uPCAurj /a+4TxkOSG2Lu++Go+KrYtxK6ozRYSTeYb8pjhC3vwYiHgDzOz1CmeLlCNzEvnbArFK3 3Tge3I+dNpjb3EES1I+w6yXRwQ1HKqMwIIofHeXLGVw22mtkcjgZVW6SuhhLStNoKJmy KgBQ== 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:dkim-signature; bh=B0gA8LsXswfrIAmbtYisG71JTJmLmakfJ+ILccJByaU=; b=UVkZU//3VpxCSueLmJN32nx+j3O8eRafMHWb1ZxDfPzXv1U6OWOTj+qkBgMREY+f0X whWeDIITI+YOh8Fw3cdD6Cn7dy3vQKhVb1rOXG6GGuYxjzBMYG+qOq4HYqtm7TVEP/ma OgAPk2FM1ZMVyDa5TF4N0M6P/+ybe9A6ssC0F5nTWzYuBB1xBExM9R23UdNNDLQWMKr/ GlLvRTYmOjMfl3vpCb2pE2DruZSC/BWT/8GgegYRItfyr0d4q5f1539Xw+Enha/0Npok txQvU3snpqOGzow3RomqfJy/Wk5UiizEscX/JA/Fw/ifYsB+riR+hhqB9fdg+iO2vRZr n8wQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@joelfernandes.org header.s=google header.b=buc3UhoK; spf=pass (google.com: domain of joel@joelfernandes.org designates 209.85.220.65 as permitted sender) smtp.mailfrom=joel@joelfernandes.org Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id h4-v6sor5743783plk.55.2018.11.08.10.12.11 for (Google Transport Security); Thu, 08 Nov 2018 10:12:11 -0800 (PST) Received-SPF: pass (google.com: domain of joel@joelfernandes.org designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@joelfernandes.org header.s=google header.b=buc3UhoK; spf=pass (google.com: domain of joel@joelfernandes.org designates 209.85.220.65 as permitted sender) smtp.mailfrom=joel@joelfernandes.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=joelfernandes.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=B0gA8LsXswfrIAmbtYisG71JTJmLmakfJ+ILccJByaU=; b=buc3UhoKkeYLzhfy1LFvSgTevjKzuw+S/EPNcM7/J1DWFKB4AczvPH1MMD5Ak06Z9l 1Xlxhv1dwM8hMSb36qsqIYc3EEW/DmX/L4l/q+89z1P8aLicH26pXwnG2h8/KhPOVHe+ TvMvNwTMBp+zR1I4QvrRyuY93K0+fxHhDJoc8= X-Google-Smtp-Source: AJdET5dLCU23zzCHPNag7xR8IOaOFzKVkGtOPwTljtbBZ3ntwXCVtlPSlP8LPHJ3t2lbqbPj9+G8OQ== X-Received: by 2002:a17:902:4583:: with SMTP id n3-v6mr5496253pld.53.1541700730786; Thu, 08 Nov 2018 10:12:10 -0800 (PST) Received: from joelaf.mtv.corp.google.com ([2620:0:1000:1601:3aef:314f:b9ea:889f]) by smtp.gmail.com with ESMTPSA id 64-v6sm10028533pfa.120.2018.11.08.10.12.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 08 Nov 2018 10:12:09 -0800 (PST) From: Joel Fernandes X-Google-Original-From: Joel Fernandes To: linux-kernel@vger.kernel.org Cc: kernel-team@android.com, Joel Fernandes , akpm@linux-foundation.org, Andrey Ryabinin , Andy Lutomirski , anton.ivanov@kot-begemot.co.uk, Borislav Petkov , Catalin Marinas , Chris Zankel , dancol@google.com, Dave Hansen , "David S. Miller" , Fenghua Yu , Geert Uytterhoeven , Guan Xuetao , Helge Deller , hughd@google.com, Ingo Molnar , "James E.J. Bottomley" , Jeff Dike , Jonas Bonn , Julia Lawall , kasan-dev@googlegroups.com, "Kirill A. Shutemov" , kvmarm@lists.cs.columbia.edu, Ley Foon Tan , linux-alpha@vger.kernel.org, linux-hexagon@vger.kernel.org, linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org, linux-mips@linux-mips.org, linux-mm@kvack.org, linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, linux-snps-arc@lists.infradead.org, linux-um@lists.infradead.org, linux-xtensa@linux-xtensa.org, lokeshgidra@google.com, Max Filippov , Michal Hocko , minchan@kernel.org, nios2-dev@lists.rocketboards.org, pantin@google.com, Peter Zijlstra , Richard Weinberger , Rich Felker , Sam Creasey , sparclinux@vger.kernel.org, Stafford Horne , Stefan Kristiansson , Thomas Gleixner , Tony Luck , Will Deacon , x86@kernel.org (maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)), Yoshinori Sato Subject: [PATCH -next-akpm 0/3] Add support for fast mremap Date: Thu, 8 Nov 2018 10:11:58 -0800 Message-Id: <20181108181201.88826-1-joelaf@google.com> X-Mailer: git-send-email 2.19.1.930.g4563a0d9d0-goog MIME-Version: 1.0 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 Hi, Here is the "fast mremap" series. This just a repost with Kirill's Acked-bys added and William's Reviewed-by added. Also fixed a UML build error reported last week. I would like this to be considered for linux -next. The performance numbers in the series are for testing on x86. The config enablement patch for arm64 will be posted in the future after testing (see notes below). List of patches in series: (1) mm: select HAVE_MOVE_PMD in x86 for faster mremap (2) mm: speed up mremap by 20x on large regions (v5) v1->v2: Added support for per-arch enablement (Kirill Shutemov) v2->v3: Updated commit message to state the optimization may also run for non-thp type of systems (Daniel Col). v3->v4: Remove useless pmd_lock check (Kirill Shutemov) Rebased ontop of Linus's master, updated perf results based on x86 testing. Added Kirill's Acks. v4->v5: Added William's Reviewed-by. Fixed arch/um build error due to set_pmd_at not defined. Rebased on linux-next/akpm. (3) mm: treewide: remove unused address argument from pte_alloc functions (v2) v1->v2: fix arch/um/ prototype which was missed in v1 (Anton Ivanov) update changelog with manual fixups for m68k and microblaze. not included - (4) mm: select HAVE_MOVE_PMD in arm64 for faster mremap This patch is dropped since last posting pending further performance testing on arm64 with new TLB gather updates. See notes in patch titled "mm: speed up mremap by 500x on large regions" for more details. Joel Fernandes (Google) (3): mm: treewide: remove unused address argument from pte_alloc functions (v2) mm: speed up mremap by 20x on large regions (v5) mm: select HAVE_MOVE_PMD in x86 for faster mremap arch/Kconfig | 5 ++ arch/alpha/include/asm/pgalloc.h | 6 +- arch/arc/include/asm/pgalloc.h | 5 +- arch/arm/include/asm/pgalloc.h | 4 +- arch/arm64/include/asm/pgalloc.h | 4 +- arch/hexagon/include/asm/pgalloc.h | 6 +- arch/ia64/include/asm/pgalloc.h | 5 +- arch/m68k/include/asm/mcf_pgalloc.h | 8 +-- arch/m68k/include/asm/motorola_pgalloc.h | 4 +- arch/m68k/include/asm/sun3_pgalloc.h | 6 +- arch/microblaze/include/asm/pgalloc.h | 19 +----- arch/microblaze/mm/pgtable.c | 3 +- arch/mips/include/asm/pgalloc.h | 6 +- arch/nds32/include/asm/pgalloc.h | 5 +- arch/nios2/include/asm/pgalloc.h | 6 +- arch/openrisc/include/asm/pgalloc.h | 5 +- arch/openrisc/mm/ioremap.c | 3 +- arch/parisc/include/asm/pgalloc.h | 4 +- arch/powerpc/include/asm/book3s/32/pgalloc.h | 4 +- arch/powerpc/include/asm/book3s/64/pgalloc.h | 12 ++-- arch/powerpc/include/asm/nohash/32/pgalloc.h | 4 +- arch/powerpc/include/asm/nohash/64/pgalloc.h | 6 +- arch/powerpc/mm/pgtable-book3s64.c | 2 +- arch/powerpc/mm/pgtable_32.c | 4 +- arch/riscv/include/asm/pgalloc.h | 6 +- arch/s390/include/asm/pgalloc.h | 4 +- arch/sh/include/asm/pgalloc.h | 6 +- arch/sparc/include/asm/pgalloc_32.h | 5 +- arch/sparc/include/asm/pgalloc_64.h | 6 +- arch/sparc/mm/init_64.c | 6 +- arch/sparc/mm/srmmu.c | 4 +- arch/um/include/asm/pgalloc.h | 4 +- arch/um/kernel/mem.c | 4 +- arch/unicore32/include/asm/pgalloc.h | 4 +- arch/x86/Kconfig | 1 + arch/x86/include/asm/pgalloc.h | 4 +- arch/x86/mm/pgtable.c | 4 +- arch/xtensa/include/asm/pgalloc.h | 8 +-- include/linux/mm.h | 13 ++-- mm/huge_memory.c | 8 +-- mm/kasan/kasan_init.c | 2 +- mm/memory.c | 17 +++--- mm/migrate.c | 2 +- mm/mremap.c | 64 +++++++++++++++++++- mm/userfaultfd.c | 2 +- virt/kvm/arm/mmu.c | 2 +- 46 files changed, 165 insertions(+), 147 deletions(-) --- 2.19.1.930.g4563a0d9d0-goog