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 7DEA5C4332F for ; Tue, 14 Nov 2023 18:22:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 076FE80011; Tue, 14 Nov 2023 13:22:41 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 026FA80010; Tue, 14 Nov 2023 13:22:40 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DE36980011; Tue, 14 Nov 2023 13:22:40 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id C624080010 for ; Tue, 14 Nov 2023 13:22:40 -0500 (EST) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 9C0611CABE4 for ; Tue, 14 Nov 2023 18:22:40 +0000 (UTC) X-FDA: 81457380480.12.1522002 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf08.hostedemail.com (Postfix) with ESMTP id 4B621160009 for ; Tue, 14 Nov 2023 18:22:38 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=LZd6BTAU; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf08.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1699986158; h=from:from:sender: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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=JrgxpS9b6RH/dIRyuh67+QVxOU1qulfPt53kMoouXlk=; b=Um+jgmScU1MgmWk4RaphdqpKaPTx00p4jvs9yFwJtr/uZ/4zerZqfk4YWGV8ypMYpH4hw7 KTN9dseaEBL/Jn5VJB4xkh1wqZmGXUqyk4LAIK8E2D1/KRsOwYMy28IRFEgv8NnJW7vFdW ByzGXG+LkuM65KN7KGEYfX+EtJkxDsU= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=LZd6BTAU; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf08.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1699986158; a=rsa-sha256; cv=none; b=n1ibSkFADmAK7jghNBYO63wK95vfHf18MSvok39M89gyWHoSAHPEBhXe9dqg0P+7NlH65V MnE3IpG05hQ1s7uPBMN09mkTTeGp4VvqtEKkRU0ycJX73qy/NEYJxPYegI9a+1V1HPHJDK HIKP9V69wLX3iLcfJ7JugkXLd1N1O1g= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1699986157; h=from:from: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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=JrgxpS9b6RH/dIRyuh67+QVxOU1qulfPt53kMoouXlk=; b=LZd6BTAU275HOZSpa693UppKjtR24VuA/+z2sSDzagPMKIpX8g+8FpIZytc9CxwCoXCYNa mGJGe3fC2OFrsRwOnJy0pf0JVBC+XSeKrlr5GM7lSUx8Wl57bvpej8v4PTozYj+qWujhZl hmlbCRfYSsRqSCbXUB8ePa85pSK6urI= Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-61-7g95CmwOPP6SJsdi3099TQ-1; Tue, 14 Nov 2023 13:22:36 -0500 X-MC-Unique: 7g95CmwOPP6SJsdi3099TQ-1 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-407d3e55927so37675665e9.1 for ; Tue, 14 Nov 2023 10:22:36 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699986155; x=1700590955; h=content-transfer-encoding:in-reply-to:organization:autocrypt:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=JrgxpS9b6RH/dIRyuh67+QVxOU1qulfPt53kMoouXlk=; b=SDjfkMvg4l6kOgzRCmeYlRWF1wQQjx+rW1a5KhBaMXGdgAYvZ/jwx1YHlfzXy+bzVm bTsCKIeuKobE4D5MNGX8AdE0Z1jaWEUOn/drDZfyPGz2+e4j+2KALW1KJUXT+XQvMq8a j8XQJPv2apOow2Axbb4jP2A6Lev2AKHkaJXfpuab4kZVRv6sv5tw0rY6p+uDRRLzQeTR ge22NgY+Bwvme9PBn+UAjsEZZnea74Ey0ED77vZRmZg1ejbOveYZgs4nzm9moce19R/5 t8AljdJ2UHrlqxvKBZ9y4dd3k3aA9QHM3OI35tX/Q1go9mYUe2izfnK7swckFCXQRq8e l5BA== X-Gm-Message-State: AOJu0YwB15YXwlkglauDwUqG9gwXfyyGHgrwMmmQzgChVrnw6AvRW+tA W/sqmJDnB010rH4PkR58rRPpsaiUKpTbGvh2uhoxFbKPhWJBJIsSdLaG1UDaX0cDgD5+d8fUiDK ruR57Ysgwbw0= X-Received: by 2002:a05:600c:4715:b0:40a:42dd:c82c with SMTP id v21-20020a05600c471500b0040a42ddc82cmr8263500wmo.27.1699986155159; Tue, 14 Nov 2023 10:22:35 -0800 (PST) X-Google-Smtp-Source: AGHT+IFn/GeMx7sBAgFV3p8wQXfRgUF2SWBFj/UeA4oLtE0jb5nkAdUsv27yq7SwbP4ZK++6gN0n4w== X-Received: by 2002:a05:600c:4715:b0:40a:42dd:c82c with SMTP id v21-20020a05600c471500b0040a42ddc82cmr8263482wmo.27.1699986154681; Tue, 14 Nov 2023 10:22:34 -0800 (PST) Received: from ?IPV6:2003:cb:c73e:8900:2d8:c9f0:f3fb:d4fd? (p200300cbc73e890002d8c9f0f3fbd4fd.dip0.t-ipconnect.de. [2003:cb:c73e:8900:2d8:c9f0:f3fb:d4fd]) by smtp.gmail.com with ESMTPSA id n40-20020a05600c3ba800b004094c5d929asm12490539wms.10.2023.11.14.10.22.33 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 14 Nov 2023 10:22:34 -0800 (PST) Message-ID: Date: Tue, 14 Nov 2023 19:22:33 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 1/8] mm/memory_hotplug: fix memory hotplug locking order To: Sumanth Korikkar , linux-mm , Andrew Morton Cc: Oscar Salvador , Michal Hocko , "Aneesh Kumar K.V" , Anshuman Khandual , Gerald Schaefer , Alexander Gordeev , Heiko Carstens , Vasily Gorbik , linux-s390 , LKML References: <20231114180238.1522782-1-sumanthk@linux.ibm.com> <20231114180238.1522782-2-sumanthk@linux.ibm.com> From: David Hildenbrand Autocrypt: addr=david@redhat.com; keydata= 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 WNyWQQ== Organization: Red Hat In-Reply-To: <20231114180238.1522782-2-sumanthk@linux.ibm.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 4B621160009 X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: odkq37znhctmipq9op55ojfuicnqqr3i X-HE-Tag: 1699986158-589068 X-HE-Meta: U2FsdGVkX19eWqCuuFvIsVmwabbBGZR3Ak76tHCplP9Wp2Mt1r9HZcsnddgb29M1n/7pzWBodURGzxXjf1glBBzMfmKfvfv8VPiwoPrgbpezYQRwBJa8sqy8WxcwUeHBNdhkxxn5R23KDmZ4U+8OGDMqlfAd4wtF/QaWF6Mx8Cz7P3yMzTwmUu9gB5EMcqWkEZYH58BeEyL7Wq037DKRAVV0Tg4jYRoaA1FpjIIeXLXizneU6q/wSrDDHsfDHB337TqWJDcPE1iGFKZp3TFZ+JFl3qgD4mhiupEhAIgjb6Xelj2lr4WOl6mwcAWZqpvIEofzE8UXh3PiuRUNNTjXLBKVNcSb2Xm5DOH7DL68m8s0KsHgxG/oeNra0jkCZB5OYG7LpTe1JpKllwYAznIwgMF/g5Cbwvchhnfc4nsq5TCgb6lgpax9KWn8pobKmpXxsLcZ363zimWdagSqfNUKb8EijBIMU7z7DcXYC9W+tfq+7caG0iAkuY5J0Ukt5oT/t21Pw2XpaEHTArjZWVuXCPCFeRq4v6J/BdANTM/299rrdZckPlxeNgyblfcRimblKKIMnNH6bSMYWLCvWbMfzwJcQ24tn04GiPy4C3khQktVWEVaSHEK5s1aabq6rqS8ixftzsrfu7WBf0l1Yd2WUznupTKXBzw+cjj8EB5VNRGTNThIvYavTTvSFE5dvoxPz1ZaQlDOg1wdZXi44YzWy8LForBfW9UJYk84NNm/7m85/B7nJ/sLxhf/QcgUnsw9l4o7suhfy3R/o6JciphJIJmz7lW5X7kFgofxQ3oGO8R0zEYYNUJBrPP72uINUb/LYHUmQ3RrhExiXLLzeo7GhjuUhOZ6rrKh8SMnl01X/u56P97xUn0HUDyPSgp0QmsfWnuG5NxESDbDfBVFaxZ6t1HN5yC2BV4dgOuJW0WCPB5dV/3bxl2QMD6IxRt4wTw3IHrnGDDV2KcXqCrFsRC C2+1bXTz 0F13FP6cMQYoJwet8U6F1I6iZ41i4lFLueA+ar3rxl7t6uULn1Lk/vjWOmRf2ZthK7zIegAwEjG0sKxmhky+jCOW/DHBMt3K4G4V+dCnXchPzsJTpHDr7eiJzshfGHcYst6quSuwVwrt+bNrJQPcWV6O6olDB99NujBKGj7aHPAPFr16pqnt1Nj0VfjoKB9R8uXYBMZa/yzZtgjyGUO8rcFU8oLkWQZ0nJefl96sLe4qltt+7LaJflKd6g5N4ww1c8J5Pkr9KcMsNSnAVvV+GdMbbgkIEHdtfF5zoNdffGXZJnar66JsvlGdJXvK4kX2W/j/1J9AdrbFRTlfWYuLeGHlRlXlgLUri598c7RUEEb1NV8GteZh4G/VmejYbngU9ikttbm3SEFvOIQhpd+cZrpE3Rze5N1RsWFPA2lsvjrBicK6Zxnw59/bP4oX96nm1GRLz3c2wKLTZm7wbBnByZ/+FFQ== 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: List-Subscribe: List-Unsubscribe: On 14.11.23 19:02, Sumanth Korikkar wrote: The patch subject talks about "fixing locking order", but it's actually missing locking, no? > From Documentation/core-api/memory-hotplug.rst: > When adding/removing/onlining/offlining memory or adding/removing > heterogeneous/device memory, we should always hold the mem_hotplug_lock > in write mode to serialise memory hotplug (e.g. access to global/zone > variables). > > mhp_(de)init_memmap_on_memory() functions can change zone stats and > struct page content, but they are currently called w/o the > mem_hotplug_lock. > > When memory block is being offlined and when kmemleak goes through each > populated zone, the following theoretical race conditions could occur: > CPU 0: | CPU 1: > memory_offline() | > -> offline_pages() | > -> mem_hotplug_begin() | > ... | > -> mem_hotplug_done() | > | kmemleak_scan() > | -> get_online_mems() > | ... > -> mhp_deinit_memmap_on_memory() | > [not protected by mem_hotplug_begin/done()]| > Marks memory section as offline, | Retrieves zone_start_pfn > poisons vmemmap struct pages and updates | and struct page members. > the zone related data | > | ... > | -> put_online_mems() > > Fix this by ensuring mem_hotplug_lock is taken before performing > mhp_init_memmap_on_memory(). Also ensure that > mhp_deinit_memmap_on_memory() holds the lock. What speaks against grabbing that lock in these functions? -- Cheers, David / dhildenb