From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id A595AC4345F for ; Thu, 25 Apr 2024 01:38:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 04C1D6B0087; Wed, 24 Apr 2024 21:38:20 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id F17266B0089; Wed, 24 Apr 2024 21:38:19 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DB9516B008C; Wed, 24 Apr 2024 21:38:19 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id B9ADB6B0087 for ; Wed, 24 Apr 2024 21:38:19 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 4D3A3160A6A for ; Thu, 25 Apr 2024 01:38:19 +0000 (UTC) X-FDA: 82046343918.23.CFEEB46 Received: from mail-ej1-f49.google.com (mail-ej1-f49.google.com [209.85.218.49]) by imf01.hostedemail.com (Postfix) with ESMTP id BD5DF40006 for ; Thu, 25 Apr 2024 01:38:14 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=ErAFnDGi; spf=pass (imf01.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.49 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1714009094; h=from:from:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=MpPmxWqzaW+Htd8gIM8qPf9NKV7g9Ims8LprqDbJ2wY=; b=DKuSeVYkQerUzJdl4RbhkhEsDUUulYAkrGHERVkNmBvP8sOal4DB8qYHGL5dZvihkIzFH0 +rOMT2kGCBejYzFlHgA8vWdh9KkuqRkQC+XSnkB05iA2FQj2SHCtRYGQx/GtLf6Pq4xkAl CZjTul3XO0FFfLFPlGcYeW0GW1oAolE= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=ErAFnDGi; spf=pass (imf01.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.49 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1714009094; a=rsa-sha256; cv=none; b=qp03MdqNzUoi3sqvH4cuoLejkQhPgE5d29eGwWdmfbYngZqmYX0IqfxM2uTEhiZdsd7TiF ismNbgFhx5etur1wAOVzPiTuQ72hOcaPJXjZLKF2o8fXrup3eWKtGhw6Lb9zOYAmqcsqXJ W4h2nw3qwuJkZbXCyhsMKiHzRqd9CpU= Received: by mail-ej1-f49.google.com with SMTP id a640c23a62f3a-a519e1b0e2dso58652166b.2 for ; Wed, 24 Apr 2024 18:38:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1714009093; x=1714613893; darn=kvack.org; h=user-agent:in-reply-to:content-disposition:mime-version:references :reply-to:message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=MpPmxWqzaW+Htd8gIM8qPf9NKV7g9Ims8LprqDbJ2wY=; b=ErAFnDGifTBf5xogL8y1GNpsrtIheA1m2bwUP1jChhq7S2qSagmK3fJgysLJ/y8oMf 44Pf08gQmB+ViZmb+cpa1/SCs7Sa2F2XHbrpnNywO206ifXbbPmP8T+fgxMPqBy1+RNn GSMewhTHqQrDT0AUkYcJBmto1sFzrIVl+4khvclEOv1kT8/oLXqaTGej4opLGPJBI4q8 yCV7RxkJ0GElPmgT5q5csNY1OoI0aQeCKDsCHlsQH/NEQ5B3SHMGaTK5TXuaSEHIoIHU /JB+AGdrLrEkrJFPAc1Ar4jJPURm4NUvW/8yck6CxR1Rez2aL+aQsNmODVJ0zOAUtrZ7 RHQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714009093; x=1714613893; h=user-agent:in-reply-to:content-disposition:mime-version:references :reply-to:message-id:subject:cc:to:from:date:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=MpPmxWqzaW+Htd8gIM8qPf9NKV7g9Ims8LprqDbJ2wY=; b=YHDIlPhmXw9BDkH/VhiwHUy91FLTRc66g/uv2rtnYeBPWZ+Q4H9cusgbIA7pjMcH4G jPNB5w42biSmJhKfEup+9qB/qDkwy7992GhhnO/Xd/FI8+DOhX9HjNZvktc1pa9Tbqlc RzdEXmLpmDAyzP94FPWrGKEi/SHxGzTGjKu8CIQzgZqXMzcGUxl7w98J+1bxDXt3RcTB 3SoQ82DCLEpN5zOxml+cJyY9hZROCvhC0w+KNDYEtconITTHLfsKJNlZUT43aX0rI8sC e3gPYSOhxe/FG5YBXG5rCV/pV9JsdCIFOn9+uVeYzHrE6RNMfrlPwP4FVnmcQJsRu73u XJbQ== X-Forwarded-Encrypted: i=1; AJvYcCXWwUgdjv9p4AEEbcaenbxLmZPX+9KYku3FWKWirlKsbQWRCe266n48ufK9WNi7usm+ri7KKQmFiA5/QCT0AAZeHfY= X-Gm-Message-State: AOJu0YxXO97DvvrCq1jSavbbznirUz3KRTfk0RAqXqcWkYguRPFqr738 NaVxoDIhhJEIftRjGzQrO/QE58a13DLicDJts3OZKoIKHNjIWbzk X-Google-Smtp-Source: AGHT+IGZUlSwOFDQA37f209/cCzvny4nUVLEuilljHzqJrHXFwK8JG+42HmO/a1qhdPSC9q/j6JOSA== X-Received: by 2002:a17:906:6b8a:b0:a55:b290:cd8d with SMTP id l10-20020a1709066b8a00b00a55b290cd8dmr2861970ejr.75.1714009092960; Wed, 24 Apr 2024 18:38:12 -0700 (PDT) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id dq16-20020a170907735000b00a524318c380sm8958070ejc.80.2024.04.24.18.38.12 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 24 Apr 2024 18:38:12 -0700 (PDT) Date: Thu, 25 Apr 2024 01:38:11 +0000 From: Wei Yang To: Mike Rapoport Cc: Wei Yang , akpm@linux-foundation.org, linux-mm@kvack.org, Jinyu Tang , Peng Zhang Subject: Re: [PATCH 1/6] mm/memblock: reduce the two round insertion of memblock_add_range() Message-ID: <20240425013811.r6ohfz2qv2fs6jrk@master> Reply-To: Wei Yang References: <20240414004531.6601-1-richard.weiyang@gmail.com> <20240422025500.n5542xmrc3zy4qgb@master> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20170113 (1.7.2) X-Rspamd-Queue-Id: BD5DF40006 X-Stat-Signature: gtu6zyyfarp88w1hzmgpdnsxquf6mnrw X-Rspam-User: X-Rspamd-Server: rspam07 X-HE-Tag: 1714009094-517782 X-HE-Meta: U2FsdGVkX18QVuwCtNfPfNOZvtl8T+vyUc0VBNg9ROm/x3ZZKnRymoFqJNJjaC3YWBn1yLrqeJlYDtg9QQizG5XoSnVofxPN8GZy3UXK8RnuD/P8ZdxKZnKLFvrf0p529f4yElRVGi5DwsX64L+RRYBT59F7DyBvvcamA3PN9E7G/x7Xuwv1coXPe04XCd+io8zz4TwHWfiFmF1pQWu3Ps0EPRCGA1cwAl5C6njl+lzLZRGbed/AJtirfEU3okaSrv/L5OGBzp2R1d1/PEqGP8wq0FqyzhNAC/WXfDClp4zoEbXvQ6tRkz8QBaL+lVTNMDfCC3Dg7sy5wEhITYoaQHhackguWet697A575XHwyIGp6aJQscGIP7o/0c7U3vFMTW+a9iWR1OAQbHeXc8nnMPMLqa8Ts49debfZgYfvnYUZv2DGx7zWR9f6O9rFpQGK40+1qVrGAAHsnJ9dXPHWODnPtbuHMXIFm4AdaWxB41DLAUqImSEIuDaJBNxoo6eQakp8WXEoAumEWEEYt/UgPxjEm5e963zd0qc7OeYNx6IohK/+AYXC00Y9QZ2C9ACHb312U2zjR5s3GPSdGosWYhNMrZbpCzxZoqMAQIyDMbGUlQzQ8QtQubI6P/qyJVw2ERCo2s8yLSz5lHHGFJf2ATKUZ1E1oC++Hx4HLbyCYbGPhzaSc9HlFIuqm6Ac8K15qHIq2QQ70VV3Fa/CFjU9dCW+4bgQx7xfVHQuDI7D8L+XCjbLvN8WvD0nWTMdWGADS4IUbJb2Dkx9ZZ86a7PtRapu722KWmEWHpYLlxpxMp6zoWwQlKomi5g936/YnMpChObktR4UFjkb4puB1MLIfrGYLCoWN1sL8Gh3dedKlPADxBlpQCKdOLJIA0xDQ1wyGJWLz/Kw/gKJzYhLbq+grcaKL58ozKbdJaToCXGToHHiNstnTcVpIVYu0F0JXaMdgegcnb35f5qH0bCifK r8lDRzRN bNxY2xn6lsUa1ihzvyQfJHrKPW7twkrySXi9yO1akvjErigZaz9eRr2XHr2cK3dr+KCL8+sfOfbKtUrFt76q63gAeYCUk++Ylp0+SWExhCG0UH1iI+OGDvRp6QmpD5wDl9JxfUbpcu89iGb9dLx147UWPmNWzH7vRaR3YVTMFAIwSFFFeHkVoxGtcGjwQ1tri7bdIim2surnvLlJ8LROsqLode6qeqDCaZ7UCxuMlVlOUSXydsAi9UXFFpfA1n8pQIppuoWHNpZMYdPI/oK6X87hbNcTSBpmjGIhEjkOWewnyw7Z+POJ3Ec3OWUnXI/n04vA1vO+Bd4mvTv5LHakHFG8sfiT0BKrmGXXvYsRka8ZB9WGblxtFpyxVuJxeHa7us0FYiP75u6ZIw0sTmDWOi8uMJf/1Xe+IyPKQHyt5gJ962LmL5R5p9FYAyRTWcM6hZsWYzq++7MrVItlQutGsohm46rKn6TQgBPYG/0c+TPeFCxjl71UKfRlv2H1xxs06id4NrF1+xUW+aV6xwwRRYaqDjWsIHhG5rg/1MpzUjlCNSWOJtNXsvJibwRxQo8mdibuhzrUFYw/XXw/u8lhPSGb42K8LZZozDHPIEiM8p6V11P6wtGahmxNvwSiQ+wO92veIdDqglG1bdxa0Ib6lCbUYpqlB4hHzzvATauUgq1Hi413YtUCqNQsN7Uh4IYmXIIm7D2CFsiqyDOt8GzYuZAPXY9nt6Ib7D+0NaE6EJ2n28IttHqpnHXpMLudx1yPWHey7xMs6Z133fz8hDRi7lSIRKQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.025684, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Wed, Apr 24, 2024 at 04:15:30PM +0300, Mike Rapoport wrote: >On Mon, Apr 22, 2024 at 02:55:00AM +0000, Wei Yang wrote: >> On Mon, Apr 15, 2024 at 06:17:56PM +0300, Mike Rapoport wrote: >> >On Sun, Apr 14, 2024 at 12:45:26AM +0000, Wei Yang wrote: >> >> Current memblock_add_range() does the insertion with two round >> >> iteration. >> >> >> >> First round does the calculation of new region required, and second >> >> round does the actual insertion. Between them, if current max can't meet >> >> new region requirement, it is expanded. >> >> >> >> The worst case is: >> >> >> >> 1. cnt == max >> >> 2. new range overlaps all existing region >> >> >> >> This means the final cnt should be (2 * max + 1). Since we always double >> >> the array size, this means we only need to double the array twice at the >> >> worst case, which is fairly rare. For other cases, only once array >> >> double is enough. >> >> >> >> Let's double the array immediately when there is no room for new region. >> >> This simplify the code a little. >> > >> >Very similar patch was posted a while ago: >> >https://lore.kernel.org/all/20221025070943.363578-1-yajun.deng@linux.dev >> > >> >and it caused boot regression: >> >https://lore.kernel.org/linux-mm/Y2oLYB7Tu7J91tVm@linux.ibm.com >> > >> >> Got the reason for the error. >> >> When we add range to reserved and need double array, following call happends: >> >> memblock_add_range() >> idx <- where we want to insert new range >> memblock_double_array() >> find available range for new regions >> memblock_reserve() available range >> memblock_insert_region() at idx >> >> The error case happens when find available range below what we want to add, >> the idx may change after memblock_reserve(). >> >> The following change looks could fix it. > >I don't think the micro-optimization of the second loop in >memblock_add_range() worth the churn and potential bugs. > Sure, would drop this one. -- Wei Yang Help you, Help me