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 91A02C7883F for ; Fri, 20 Sep 2024 13:35:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0B97A6B0085; Fri, 20 Sep 2024 09:35:45 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0421C6B0088; Fri, 20 Sep 2024 09:35:44 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DFDFD6B0089; Fri, 20 Sep 2024 09:35:44 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id BD9696B0085 for ; Fri, 20 Sep 2024 09:35:44 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 6FF8B14039C for ; Fri, 20 Sep 2024 13:35:44 +0000 (UTC) X-FDA: 82585214208.05.E31C5E4 Received: from mail-pg1-f173.google.com (mail-pg1-f173.google.com [209.85.215.173]) by imf28.hostedemail.com (Postfix) with ESMTP id 6A741C0018 for ; Fri, 20 Sep 2024 13:35:42 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=dGRpg5e5; dmarc=none; spf=pass (imf28.hostedemail.com: domain of groeck7@gmail.com designates 209.85.215.173 as permitted sender) smtp.mailfrom=groeck7@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1726839258; a=rsa-sha256; cv=none; b=woB0RRWPr6H+dW1wCGMGzaK1ttiNORKaVgiqOjTtEuEhy44SDXCglzZGaMQQD+cJi2ffNG LszsCI2VL6wVxtjgJ/sFI/Cc9mjEfsFwQ5+buHosTu2BTiifYJWSBCqNFa/3McjTaCUvPk 7oqsjxOiG4O0qZlcK1uU/NJVmeOl7kA= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=dGRpg5e5; dmarc=none; spf=pass (imf28.hostedemail.com: domain of groeck7@gmail.com designates 209.85.215.173 as permitted sender) smtp.mailfrom=groeck7@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1726839258; h=from:from:sender: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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=4WiT20VvGZEoLul+yBbb3XAfILOiLHoijWP26iP09Gk=; b=RzsraNawmp8xGgZiCpVIHTEoAEozjJbf1EMXLeZHJEJ9VRBJ+my+m6cA93JyPJccJcp1CG otwsTddpOeFtKkIT4QxpiTrXw9pAbZJKqMuE7/9JJ2abT1X9HvNbVhI4xRTGxU80PIr06J 5LqBsmUjTljLqoCI9whk+8Cg5HR4SmA= Received: by mail-pg1-f173.google.com with SMTP id 41be03b00d2f7-7db1f13b14aso1604227a12.1 for ; Fri, 20 Sep 2024 06:35:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1726839341; x=1727444141; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:sender:from:to:cc:subject:date:message-id :reply-to; bh=4WiT20VvGZEoLul+yBbb3XAfILOiLHoijWP26iP09Gk=; b=dGRpg5e58vqJsRk54nUACONXElFsxrT/fqLp6sQs1hhNSlZXLC1yYF4o8fA0y1i/at zfYKu0TscJ4QbYLAJQe+ZQR899oOLEVAY/gFMjrJMm1qEZT0k2zjt4V8+PZ65XuEEf4D r+FdgkRhouspUUG7xxwQRNg+EjQw3EUvAVU8v1XIBQnDNjJ48Ip055YzQsK3DmEgI8rA iQ/VMCpqDHj9bf+M6ZwVuZ6tdQkOnlYol+WfWQcRJyyv/5PNKiIs2hsO/34/EiOdyqYE J5518J1Iw8ew5welccPQyDvBD140mT5/Gcu4sG1XDZBtmJRqFh7xhYGLxaEn6Szl/aKG IL9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726839341; x=1727444141; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:sender:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4WiT20VvGZEoLul+yBbb3XAfILOiLHoijWP26iP09Gk=; b=XflieMPEZprG9tQqrieBh5FRqmh/VO9UiemSQug5Su8HXkA0B6OExgZDh0YFSPCaEr /1d44aKT5CGtO928kC4XV6pQZTc+evem126SSMCKtuL84f4x5DJ6ecCn51VU/IR1bSzN NJVJzsg/FsBeemygrW78tSvCxqiuwRVb67SOUMv880CSltc6rGDoemyN6s5uV/xjk0IF JuBGe3Uf5IE20ei2Af3s1zlN2KOIMTKkCohHKax5IHUp25XurGbkNY44Qq2TpWhc99u0 oLw8jqEhjTGNKG56OGMXIC6Q6lhoT31a3wWrfVmaFdEdbyyMOkYLNP84YAUgA68vhhMp 9BZA== X-Forwarded-Encrypted: i=1; AJvYcCX/ybyHtO8506XXrAg483ityXVuFGp8HulMq3JFDJHVoOmeyKQI2RWH+q0R1AJIMlXQ/mbqirhP3A==@kvack.org X-Gm-Message-State: AOJu0YxeQ05t7R5j7mL36CujNUTZngk52o4iP2LX6KLecBvtIf0napOQ 8iYas3Ls21orWkgKQvIiwtPFedVLTc9RwkbAkhEtY1U5IWw6j+1F X-Google-Smtp-Source: AGHT+IF9E6a541Mbjo9j50qxF9waC4QlIEoOI8U2Cwj3s1tGGsRGG27E/xRuctO2OBAGuNi0Wwiajg== X-Received: by 2002:a05:6a21:9216:b0:1cf:506a:cdcc with SMTP id adf61e73a8af0-1d30cb65dedmr4244909637.43.1726839340992; Fri, 20 Sep 2024 06:35:40 -0700 (PDT) Received: from server.roeck-us.net ([2600:1700:e321:62f0:329c:23ff:fee3:9d7c]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2079460110fsm95281375ad.96.2024.09.20.06.35.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Sep 2024 06:35:39 -0700 (PDT) Date: Fri, 20 Sep 2024 06:35:38 -0700 From: Guenter Roeck To: Vlastimil Babka Cc: "Paul E. McKenney" , Joel Fernandes , Josh Triplett , Boqun Feng , Christoph Lameter , David Rientjes , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , Julia Lawall , Jakub Kicinski , "Jason A. Donenfeld" , "Uladzislau Rezki (Sony)" , Andrew Morton , Roman Gushchin , Hyeonggon Yoo <42.hyeyoo@gmail.com>, linux-mm@kvack.org, linux-kernel@vger.kernel.org, rcu@vger.kernel.org, Alexander Potapenko , Marco Elver , Dmitry Vyukov , kasan-dev@googlegroups.com, Jann Horn , Mateusz Guzik Subject: Re: [PATCH v2 7/7] kunit, slub: add test_kfree_rcu() and test_leak_destroy() Message-ID: <6fcb1252-7990-4f0d-8027-5e83f0fb9409@roeck-us.net> References: <20240807-b4-slab-kfree_rcu-destroy-v2-0-ea79102f428c@suse.cz> <20240807-b4-slab-kfree_rcu-destroy-v2-7-ea79102f428c@suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240807-b4-slab-kfree_rcu-destroy-v2-7-ea79102f428c@suse.cz> X-Rspamd-Queue-Id: 6A741C0018 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: dqo1p9izcnxr831e388n6tg4rx3i35w6 X-HE-Tag: 1726839342-65255 X-HE-Meta: U2FsdGVkX19OAXgl/7HdfPHUQOx8oQeJ8UFTK2GtTKn/C2rwQGL6pV6EUFi4jCkWaWTBQ+Xos7+V9WZmKcnOIjWMtg5VCtf24yI69OtG04tDC1kYMs6ufpBboKi4vX9NmdOisuUOP3/qdc6euoF2tTRPD2UVGhBSqy1zCbAUcaHSiCZ1mDkdCgwEx6jKkgDe8rfpC1JouJB/5iOvLSgpp7aXYZMvlh0tGMiRmkTccAGLmFO++9EHcMAHbWIkCQcPEenzw20UghcF1aY9T93+rDKfmUpi0zI7KvFw7TQTXN5xchk0qZfmmJpAbXixroWxYObF/abnXKKUITFtK/IIrjbkxY04wO6AfFr4RMwt+FdAoZCl9ywzKxI0AyFKMDK4Uj0jcafBU8mh/UPa+1NWYOz/uqrYsfgOTVxeDVqe5zFONj0gb+VtFkefXXugcBEkn8qG2x//k2+ZAJBbNvu+J9oMZR2K7CuGh5eBdAFFg4yspXVfVwn9fymrw8f6XEnbHxZD0s5DvMMJ3qC1TRhEvcLfexVdcZC59ADM+ghn/PkSVlAFpGKU20KDLkaAs1ZYydRVgYDLQVXltG/JYVhN1f2nlmUyrQmdhvZjNKlHyIFL+7auSH8uUwqzqMq2iXmRecMWF5E/awQ8SeVT8Asjig1jTFxsWsPDukg9GMLl/x6rLEhBFMkaejqN/dKD738PPe4/hx5immezDqPjf+uUPdTdmmg0Nd048kbD9zLkghdBY56hBuAbqxbT4ZUVAxGJ6nNc78ZTphSrp9gWua3I2Z0C4VmgzahPpdGUNVEErLfPcRuWm8Ybdia+dldvxIOilBqzWiVGkrLiaJaYG6uBOR5mXEr1E4nj4UKGW9+VOYAumMEJZy/DsUvxj48HwpT5VH7jW9oiTtKEVD0xYKs/ionfXBcNBYeWUluEDHPdFVn0g9heFYJH8DVsTuNLzEWNbvdlirNAe4P+As9G/+r ELLwx8ET qOtpwjwG09alKUHZNtjdZGlzPXliuP56NDAHZCdMyiDiM49/I4OPgwXCRtFmsZ53NMV/OCTO/Bg1BjO3Z4UlSkVsRBtgXL+LRRXes17yEpOZNuJFs32vcGH2GIhFz0TKQKkVprj1S6I1FlAHXGJS8p8vzF1cZu0CNIocxdnTwJjxQvEzVzwTMAqHgzWlNvFzScXpJl36AGGtEnmGcgexKddAELqydoInFMGBHegtQk1ffja86WPjOnlnsH1yihcFHGkRKmsaJY8uHjQX8Fzl4eUWpG2erk22P7CWaIAcaaat+es9gU4dNoJYtzpNVT6MLdaxGGIPNYFOg0Un75+SEy/QOH8p4vWl92d1qHZgHDhG7Kx1EjBwWdqzvkzZvUoW7dWt1uxNJBwSqKb8s18cXzsA1rvOJ9lCS9wGMuFg6NHLd7VEkBiYGYoPABcXcZKQQMdJwyev/I0XNLgtsgqVb7z/XK4PfMtaA3t0iVBlevpzfv5+zPZ1u7yJCVad4Lq0POZ+aAd2nBPufDAnnC3syhP6eONeIa6HCGTYxCWRL+WhWtAL00O7MWp3kpvKDYZThjJOPRfHRke3utra94pdsTwJJk5cyX/wyfP7AC5dPDSk5ue0mv8oi+WL/JC7hnRgOzBWz2nuWWp1oOESQQoPZeUdUcjFp7nkX87O/DPHFJRhlCCa1eHEPJcyEMzji+6S50Y0XrrwEJFBLdnk= 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: Hi, On Wed, Aug 07, 2024 at 12:31:20PM +0200, Vlastimil Babka wrote: > Add a test that will create cache, allocate one object, kfree_rcu() it > and attempt to destroy it. As long as the usage of kvfree_rcu_barrier() > in kmem_cache_destroy() works correctly, there should be no warnings in > dmesg and the test should pass. > > Additionally add a test_leak_destroy() test that leaks an object on > purpose and verifies that kmem_cache_destroy() catches it. > > Signed-off-by: Vlastimil Babka This test case, when run, triggers a warning traceback. kmem_cache_destroy TestSlub_kfree_rcu: Slab cache still has objects when called from test_leak_destroy+0x70/0x11c WARNING: CPU: 0 PID: 715 at mm/slab_common.c:511 kmem_cache_destroy+0x1dc/0x1e4 That is, however, not the worst of it. It also causes boot stalls on several platforms and architectures (various arm platforms, arm64, loongarch, various ppc, and various x86_64). Reverting it fixes the problem. Bisect results are attached for reference. Guenter --- # bad: [baeb9a7d8b60b021d907127509c44507539c15e5] Merge tag 'sched-rt-2024-09-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip # good: [2f27fce67173bbb05d5a0ee03dae5c021202c912] Merge tag 'sound-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound git bisect start 'HEAD' '2f27fce67173' # good: [ae2c6d8b3b88c176dff92028941a4023f1b4cb91] Merge tag 'drm-xe-next-fixes-2024-09-12' of https://gitlab.freedesktop.org/drm/xe/kernel into drm-next git bisect good ae2c6d8b3b88c176dff92028941a4023f1b4cb91 # bad: [c8d8a35d094626808cd07ed0758e14c7e4cf61ac] Merge tag 'livepatching-for-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching git bisect bad c8d8a35d094626808cd07ed0758e14c7e4cf61ac # bad: [cc52dc2fe39ff5dee9916ac2d9381ec3cbf650c0] Merge tag 'pwm/for-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux git bisect bad cc52dc2fe39ff5dee9916ac2d9381ec3cbf650c0 # bad: [bdf56c7580d267a123cc71ca0f2459c797b76fde] Merge tag 'slab-for-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab git bisect bad bdf56c7580d267a123cc71ca0f2459c797b76fde # good: [355debb83bf79853cde43579f88eed16adb1da29] Merge branches 'context_tracking.15.08.24a', 'csd.lock.15.08.24a', 'nocb.09.09.24a', 'rcutorture.14.08.24a', 'rcustall.09.09.24a', 'srcu.12.08.24a', 'rcu.tasks.14.08.24a', 'rcu_scaling_tests.15.08.24a', 'fixes.12.08.24a' and 'misc.11.08.24a' into next.09.09.24a git bisect good 355debb83bf79853cde43579f88eed16adb1da29 # good: [067610ebaaec53809794807842a2fcf5f1f5b9eb] Merge tag 'rcu.release.v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux git bisect good 067610ebaaec53809794807842a2fcf5f1f5b9eb # good: [4b7ff9ab98af11a477d50f08382bcc4c2f899926] mm, slab: restore kerneldoc for kmem_cache_create() git bisect good 4b7ff9ab98af11a477d50f08382bcc4c2f899926 # bad: [a715e94dbda4ece41aac49b7b7ff8ddb55a7fe08] Merge branch 'slab/for-6.12/rcu_barriers' into slab/for-next git bisect bad a715e94dbda4ece41aac49b7b7ff8ddb55a7fe08 # bad: [b3c34245756adada8a50bdaedbb3965b071c7b0a] kasan: catch invalid free before SLUB reinitializes the object git bisect bad b3c34245756adada8a50bdaedbb3965b071c7b0a # good: [2eb14c1c2717396f2fb1e4a4c5a1ec87cdd174f6] mm, slab: reintroduce rcu_barrier() into kmem_cache_destroy() git bisect good 2eb14c1c2717396f2fb1e4a4c5a1ec87cdd174f6 # good: [6c6c47b063b593785202be158e61fe5c827d6677] mm, slab: call kvfree_rcu_barrier() from kmem_cache_destroy() git bisect good 6c6c47b063b593785202be158e61fe5c827d6677 # bad: [4e1c44b3db79ba910adec32e2e1b920a0e34890a] kunit, slub: add test_kfree_rcu() and test_leak_destroy() git bisect bad 4e1c44b3db79ba910adec32e2e1b920a0e34890a # first bad commit: [4e1c44b3db79ba910adec32e2e1b920a0e34890a] kunit, slub: add test_kfree_rcu() and test_leak_destroy()