From patchwork Sat Feb 10 08:11:34 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 871639 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zdl8116wLz9s4q for ; Sat, 10 Feb 2018 19:14:09 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="E6+1z0eu"; dkim-atps=neutral Received: from bilbo.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 3zdl8069FwzF0gL for ; Sat, 10 Feb 2018 19:14:08 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="E6+1z0eu"; dkim-atps=neutral X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gmail.com (client-ip=2607:f8b0:400e:c00::242; helo=mail-pf0-x242.google.com; envelope-from=npiggin@gmail.com; receiver=) Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="E6+1z0eu"; dkim-atps=neutral Received: from mail-pf0-x242.google.com (mail-pf0-x242.google.com [IPv6:2607:f8b0:400e:c00::242]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 3zdl5R0M2TzF0dt for ; Sat, 10 Feb 2018 19:11:51 +1100 (AEDT) Received: by mail-pf0-x242.google.com with SMTP id u15so2235935pfa.0 for ; Sat, 10 Feb 2018 00:11:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=dmWCoPW3NdtLobwVLadpU1PgN2VdenTYNxqjWAKe/XI=; b=E6+1z0euLdzTMWo7IrCuU6QhiZIsSSA3ZtXkMehlXeMC+AvgJM8wr2M93NvN62RGWy 1VC06VhcJtiWDLs9vXPxhGHjarD9E9Q2sVju4zlRFXVjVpvOJOyvLjdI0cZvP0I1Z7Uf 7noyq+YUkypSfacDoarhAVIe5EsDSNuwyzLlRUANI3pMZjZzSyj1VEspGeHXQnMQuWQ4 BuaFEffoN6dilDx/iXxiCuocK/ckNTNGVtnTnDmX7/b1Q/itkEQ/EWWs1tIB9x6yz+8Q lxt6FjRyERVX5JOzdYde/xTHdlzifKYtIkBMchMPSCSOZLB43R3NF3pd2S+SG/dkZGry Darg== 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; bh=dmWCoPW3NdtLobwVLadpU1PgN2VdenTYNxqjWAKe/XI=; b=eVxXJOaJb+tLRAwA0Hxh93BX0J4O7BQ8E2T6FnOZx2IaXzg4F98q9lSMuueJT+VMR+ UJQE+z8vyxB306plXhCoSs8HDgP+D/30/nQ0aP/4fMFfWHYSdgnmzJrswOQMu2jL66y5 mERs+kiE7eJq+XtMArES8obqaA3aEbQAiEiP8LhlNrbokHh7Dr/mm41lDoMv0yc/Xp+5 2Ez6ffjEVGU+RG+4ltCWuPPzZiMlQhIztI6gUsuz9+Zliqq5dgCt6YQqei30Orerm1zT xvih44L6LavzgaHHx+VOLbPs4jr0gQat/pJPxjbR8cQ1MY1Waj162lo66QNwUroS4p2y sUvA== X-Gm-Message-State: APf1xPBncW9cW8Tz6wiNbsDHRequTD1VdtbspClgtBjCDrBPsnTyZzmm 45MU0Grs+K/KNn5tf6th5VKKxg== X-Google-Smtp-Source: AH8x226J21W5EmOyCnxfd23LDKErBgjlMNqMxdTFi6pBbCPipLzUFt+HtLtW28Wj7rHDym+YzB0AYA== X-Received: by 10.101.99.203 with SMTP id n11mr4522064pgv.22.1518250309085; Sat, 10 Feb 2018 00:11:49 -0800 (PST) Received: from roar.au.ibm.com ([202.7.219.42]) by smtp.gmail.com with ESMTPSA id e67sm10776388pfd.23.2018.02.10.00.11.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 10 Feb 2018 00:11:47 -0800 (PST) From: Nicholas Piggin To: linuxppc-dev@lists.ozlabs.org Subject: [RFC PATCH 0/5] powerpc/mm/slice: improve slice speed and stack use Date: Sat, 10 Feb 2018 18:11:34 +1000 Message-Id: <20180210081139.27236-1-npiggin@gmail.com> X-Mailer: git-send-email 2.15.1 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Aneesh Kumar K . V" , Nicholas Piggin Errors-To: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" This series intends to improve performance and reduce stack consumption in the slice allocation code. It does it by keeping slice masks in the mm_context rather than compute them for each allocation, and by reducing bitmaps and slice_masks from stacks, using pointers instead where possible. checkstack.pl gives, before: 0x00000de4 slice_get_unmapped_area [slice.o]: 656 0x00001b4c is_hugepage_only_range [slice.o]: 512 0x0000075c slice_find_area_topdown [slice.o]: 416 0x000004c8 slice_find_area_bottomup.isra.1 [slice.o]: 272 0x00001aa0 slice_set_range_psize [slice.o]: 240 0x00000a64 slice_find_area [slice.o]: 176 0x00000174 slice_check_fit [slice.o]: 112 after: 0x00000d70 slice_get_unmapped_area [slice.o]: 320 0x000008f8 slice_find_area [slice.o]: 144 0x00001860 slice_set_range_psize [slice.o]: 144 0x000018ec is_hugepage_only_range [slice.o]: 144 0x00000750 slice_find_area_bottomup.isra.4 [slice.o]: 128 The benchmark in https://github.com/linuxppc/linux/issues/49 gives, before: $ time ./slicemask real 0m20.712s user 0m5.830s sys 0m15.105s after: $ time ./slicemask real 0m13.197s user 0m5.409s sys 0m7.779s Thanks, Nick Nicholas Piggin (5): powerpc/mm/slice: pass pointers to struct slice_mask where possible powerpc/mm/slice: implement a slice mask cache powerpc/mm/slice: implement slice_check_range_fits powerpc/mm/slice: Use const pointers to cached slice masks where possible powerpc/mm/slice: use the dynamic high slice size to limit bitmap operations arch/powerpc/include/asm/book3s/64/mmu.h | 20 +- arch/powerpc/mm/slice.c | 302 +++++++++++++++++++------------ 2 files changed, 204 insertions(+), 118 deletions(-)