From patchwork Thu Jun 28 06:28:55 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Baoquan He X-Patchwork-Id: 10493149 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 1570B601BE for ; Thu, 28 Jun 2018 06:29:24 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0371729D95 for ; Thu, 28 Jun 2018 06:29:24 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id EA19329DA1; Thu, 28 Jun 2018 06:29:23 +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 7B0EC29D95 for ; Thu, 28 Jun 2018 06:29:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8EE3C6B026B; Thu, 28 Jun 2018 02:29:22 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 875196B026C; Thu, 28 Jun 2018 02:29:22 -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 741016B026D; Thu, 28 Jun 2018 02:29:22 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-qt0-f200.google.com (mail-qt0-f200.google.com [209.85.216.200]) by kanga.kvack.org (Postfix) with ESMTP id 4672A6B026B for ; Thu, 28 Jun 2018 02:29:22 -0400 (EDT) Received: by mail-qt0-f200.google.com with SMTP id f8-v6so4476332qth.9 for ; Wed, 27 Jun 2018 23:29:22 -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:in-reply-to:references; bh=0wgH1vdCIr1xYdl6AvWHVC7w60xQ7DVrqM88bcHH/eo=; b=NdOvWIpPvjCrAiIKFrtCrophLChe6HzFvBxtFlHZJdnphKkeh1g9CyEakggU+WR2uQ xD5z6Y9Akge2XVvjlWcHArNfPoC77w3Zly6fod7FB7SEz9pu1jyXad55cqY3Z6MtMmAe Db/vTw3kUJNzjT5tBRobCXMeAImNrTbN4YrRRSK1PF3xiNbbKuQI1IpFrOkn7qnqnrkX TAv5qFDsfA08M4WLmlybCHtl0oQI7AhG5NhEZIr5pZfc+jM5BVOVGoCg8P7fMlGjCwYh H27HcP9qmuWb4h3Uozduw1+QqscpirQ8Z9NBzucE9loT/GFjqSQKd8RalfPy0x/ja/sw 7xbw== X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of bhe@redhat.com designates 66.187.233.73 as permitted sender) smtp.mailfrom=bhe@redhat.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com X-Gm-Message-State: APt69E2/UVXFNc7ctdGEY/vEl9dzehAnfW/SBekxcKzfudvl4E6LvNdE Xsr+kj+uxJ59dEOeFphar6BPQQGZ+VBqwnNsz9eEkKu3sHz8v85da82TgWVmDvQpsGACjkIaYbG Cw5WIIJKxaclaD5NDp2XKQr4yMHHF7XYBOIFDCNnq0Yg/vlnghYx4xe8bTD42OiaCcA== X-Received: by 2002:a37:16c3:: with SMTP id 64-v6mr7889388qkw.381.1530167362066; Wed, 27 Jun 2018 23:29:22 -0700 (PDT) X-Google-Smtp-Source: AAOMgpf0QnG/BUUzWi2XcaP7rt7zYev2bqciu3/v/Vb8iQw2h1Z7hMWfr/0DkTBpFHGfihGMJCIy X-Received: by 2002:a37:16c3:: with SMTP id 64-v6mr7889361qkw.381.1530167361069; Wed, 27 Jun 2018 23:29:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1530167361; cv=none; d=google.com; s=arc-20160816; b=HgR6HRo3SQfxVPuJoS3aVV3ISHPGBrwrlfmetr3qUk3TE0d0+pEll6bHjHk3Wh7Mhj 0e03oippNDOalPCS91xLcztDJRx/v7dncdy6fiTyuTqp+HEl38ZbnQ+oZrVLk1sCzeK/ 5mZnY4CeYNo93nneRb41riirCkXYrcnr81g6QhVqOf+BD35TjVVBjVeMCnU32Nb8rQDS DFLHdhB4G6NOIxBxaIsNePhDYFVQhdVDc+zUXSV4+hRkveLdGardxiOa6Xd+isv3umu2 US1ISd06Ys8e4nA/6XOfZn37cl/14Zik4dj3dCT0ek9KwMcKAaDLc7N3ZtTgjev1ZUb+ suTw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=0wgH1vdCIr1xYdl6AvWHVC7w60xQ7DVrqM88bcHH/eo=; b=ABevcuzpZBEIv9nYMfud3GbwJa7QQWj6/kidHkjQTRNLFEqwQaIcTomxe/IV6ttNUH 0yj1xs3TE6y7tj7i7gd0WkeYOPISnYAeb/fr791WNaxPTAKHd7L2rKyd4LVOkSzt8x/X oQin1OTN45ld+SeVuMF7G0tjqe8RMW/wSdjGGOINmHLZsQn4wylo5I7tY0qA9cBivTd4 sh5MDTa5EPW+IZv9W5IyEhB4UyKdmn/DsbBvGzkxtMe7MtuJrdlehZnlTyqv4rDB8AFt GWTLy+hPSKSnXK6XOak79VNqqRtMihJRi1Ry4BlQ8owUoDHe13x32Rtoh2gX+6KzD9f2 cihw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of bhe@redhat.com designates 66.187.233.73 as permitted sender) smtp.mailfrom=bhe@redhat.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from mx1.redhat.com (mx3-rdu2.redhat.com. [66.187.233.73]) by mx.google.com with ESMTPS id l10-v6si758515qvk.121.2018.06.27.23.29.20 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 27 Jun 2018 23:29:21 -0700 (PDT) Received-SPF: pass (google.com: domain of bhe@redhat.com designates 66.187.233.73 as permitted sender) client-ip=66.187.233.73; Authentication-Results: mx.google.com; spf=pass (google.com: domain of bhe@redhat.com designates 66.187.233.73 as permitted sender) smtp.mailfrom=bhe@redhat.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id B5509A5002; Thu, 28 Jun 2018 06:29:20 +0000 (UTC) Received: from MiWiFi-R3L-srv.redhat.com (ovpn-8-16.pek2.redhat.com [10.72.8.16]) by smtp.corp.redhat.com (Postfix) with ESMTP id 40A412156880; Thu, 28 Jun 2018 06:29:15 +0000 (UTC) From: Baoquan He To: linux-kernel@vger.kernel.org, akpm@linux-foundation.org, dave.hansen@intel.com, pagupta@redhat.com, Pavel Tatashin , Oscar Salvador Cc: linux-mm@kvack.org, kirill.shutemov@linux.intel.com, Baoquan He Subject: [PATCH v6 3/5] mm/sparse: Add a new parameter 'data_unit_size' for alloc_usemap_and_memmap Date: Thu, 28 Jun 2018 14:28:55 +0800 Message-Id: <20180628062857.29658-4-bhe@redhat.com> In-Reply-To: <20180628062857.29658-1-bhe@redhat.com> References: <20180628062857.29658-1-bhe@redhat.com> X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.2]); Thu, 28 Jun 2018 06:29:20 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.2]); Thu, 28 Jun 2018 06:29:20 +0000 (UTC) for IP:'10.11.54.6' DOMAIN:'int-mx06.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'bhe@redhat.com' RCPT:'' 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 alloc_usemap_and_memmap() is passing in a "void *" that points to usemap_map or memmap_map. In next patch we will change both of the map allocation from taking 'NR_MEM_SECTIONS' as the length to taking 'nr_present_sections' as the length. After that, the passed in 'void*' needs to update as things get consumed. But, it knows only the quantity of objects consumed and not the type. This effectively tells it enough about the type to let it update the pointer as objects are consumed. Signed-off-by: Baoquan He Reviewed-by: Pavel Tatashin Reviewed-by: Oscar Salvador --- mm/sparse.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/mm/sparse.c b/mm/sparse.c index 6a706093307d..4458a23e5293 100644 --- a/mm/sparse.c +++ b/mm/sparse.c @@ -486,10 +486,12 @@ void __weak __meminit vmemmap_populate_print_last(void) /** * alloc_usemap_and_memmap - memory alloction for pageblock flags and vmemmap * @map: usemap_map for pageblock flags or mmap_map for vmemmap + * @unit_size: size of map unit */ static void __init alloc_usemap_and_memmap(void (*alloc_func) (void *, unsigned long, unsigned long, - unsigned long, int), void *data) + unsigned long, int), void *data, + int data_unit_size) { unsigned long pnum; unsigned long map_count; @@ -566,7 +568,8 @@ void __init sparse_init(void) if (!usemap_map) panic("can not allocate usemap_map\n"); alloc_usemap_and_memmap(sparse_early_usemaps_alloc_node, - (void *)usemap_map); + (void *)usemap_map, + sizeof(usemap_map[0])); #ifdef CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER size2 = sizeof(struct page *) * NR_MEM_SECTIONS; @@ -574,7 +577,8 @@ void __init sparse_init(void) if (!map_map) panic("can not allocate map_map\n"); alloc_usemap_and_memmap(sparse_early_mem_maps_alloc_node, - (void *)map_map); + (void *)map_map, + sizeof(map_map[0])); #endif for_each_present_section_nr(0, pnum) {