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 91ECFCF31AF for ; Wed, 2 Oct 2024 10:42:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E0B246B0356; Wed, 2 Oct 2024 06:42:41 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DB94C6B0359; Wed, 2 Oct 2024 06:42:41 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BBEF26B0357; Wed, 2 Oct 2024 06:42:41 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 917D66B030A for ; Wed, 2 Oct 2024 06:42:41 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 294EF1418BE for ; Wed, 2 Oct 2024 10:42:41 +0000 (UTC) X-FDA: 82628323722.27.47C227B Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) by imf18.hostedemail.com (Postfix) with ESMTP id A458E1C0003 for ; Wed, 2 Oct 2024 10:42:38 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=D3HHB9Aj; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=GHdgaA3K; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=n+nX3td7; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=zXY3otUj; spf=pass (imf18.hostedemail.com: domain of vbabka@suse.cz designates 195.135.223.130 as permitted sender) smtp.mailfrom=vbabka@suse.cz; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1727865719; 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=i8E6YBx9IYbiLWKiah4rdepV2BvjUAiHQI2nwFPWPZ0=; b=rxYYCzO415iQdfd7pLXrgmry4xAXuLydJcnKw9nrytiw2k8pRCQJ/SubzZBjuEDzgde1if EWvHwDzHAbqHyAFBAYDS9FEso+4EynirG5OVksGlp4VtaG+j7gHzn6HdoKvCaCFotIJaw3 INBQxgO2FzItX23HyTqWmHb4fcnlk9Y= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=D3HHB9Aj; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=GHdgaA3K; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=n+nX3td7; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=zXY3otUj; spf=pass (imf18.hostedemail.com: domain of vbabka@suse.cz designates 195.135.223.130 as permitted sender) smtp.mailfrom=vbabka@suse.cz; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1727865719; a=rsa-sha256; cv=none; b=SeqS6h0KIwGFC6NpbKAt9HN+ZoOUBeKupFMu+mrVr418ddxrZtdmD4YAEoaWuqp1dmQVA/ weCqOiBmP0v/IM/7Vgchm0Ze6yshVB03r4kl299Fx3HqNZqzJhAt50o/Z4JPZk3KKDWQHR uhz7WtMJo3JUquHp7OpyzfQXDE2+Ios= Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 01C1E21B6B; Wed, 2 Oct 2024 10:42:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1727865757; h=from:from:reply-to: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=i8E6YBx9IYbiLWKiah4rdepV2BvjUAiHQI2nwFPWPZ0=; b=D3HHB9AjNwYgMc3VhVPiIJD2izvWdgar//7BYL3WPawh2Tuk39sF6SonERKMWs9oaUUc4Q WgZDTJc7WbbAicicCNkJqpy0Ocs5bjSGw6Zmhp8tJcbK8w7YeznFgXJBSlvCM5hJ+FFbbG 1rTxyDQzN71xhZkPIZC5R44asQPStB0= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1727865757; h=from:from:reply-to: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=i8E6YBx9IYbiLWKiah4rdepV2BvjUAiHQI2nwFPWPZ0=; b=GHdgaA3KZClH+zMENSiK3N87gGMuNLuJ2ghsVmrv2OngDZCpVfOJFcFrYEixo99ZQHYwYr 19SkNSK72dfxDDBA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1727865756; h=from:from:reply-to: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=i8E6YBx9IYbiLWKiah4rdepV2BvjUAiHQI2nwFPWPZ0=; b=n+nX3td72Pmug+iRGp07qqXmza7HUvjKeZ+MqyVx9xAngA8TLENe1a3yiQly+5wb4nJlmI +gdUVfFqf8+t2FtHmVqHVMd7fzs+bVMAHIFsCC8Nq6GIKP08k1NY2cGMJ5thqWaojyVHgG Mn0qGmbJuPusLGzBv+5GCX6bHkOvJUs= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1727865756; h=from:from:reply-to: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=i8E6YBx9IYbiLWKiah4rdepV2BvjUAiHQI2nwFPWPZ0=; b=zXY3otUjihty6GUnBScB+KdawB30wGXPGnzT4KHOD744wkXeODX5x70FabX3nE+nsLr/fi YNlc3alxFfeS+rDQ== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id CD31713A6E; Wed, 2 Oct 2024 10:42:35 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id lrrFMZsj/WbFZgAAD6G6ig (envelope-from ); Wed, 02 Oct 2024 10:42:35 +0000 Message-ID: Date: Wed, 2 Oct 2024 12:42:35 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 0/5] mm/slub: Improve data handling of krealloc() when orig_size is enabled Content-Language: en-US To: Feng Tang , Andrew Morton , Christoph Lameter , Pekka Enberg , David Rientjes , Joonsoo Kim , Roman Gushchin , Hyeonggon Yoo <42.hyeyoo@gmail.com>, Andrey Konovalov , Marco Elver , Shuah Khan , David Gow , Danilo Krummrich , Alexander Potapenko , Andrey Ryabinin , Dmitry Vyukov , Vincenzo Frascino Cc: linux-mm@kvack.org, kasan-dev@googlegroups.com, linux-kernel@vger.kernel.org References: <20240911064535.557650-1-feng.tang@intel.com> From: Vlastimil Babka Autocrypt: addr=vbabka@suse.cz; keydata= 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 EP+ylKVEKb0Q2A== In-Reply-To: <20240911064535.557650-1-feng.tang@intel.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspam-User: X-Stat-Signature: jru8j86874yu16c89y8zc1cdeez8w4nt X-Rspamd-Queue-Id: A458E1C0003 X-Rspamd-Server: rspam11 X-HE-Tag: 1727865758-355923 X-HE-Meta: U2FsdGVkX1/BSeRxB+wwE27SHyOqFZfyKhZRVR3ORY2CyKmfEeDcxZuMdK8wuv4mVh1JSGxNZcBOfipHIpRLm2Rkqj2kEvzkC2uzQchNqlvuF0QL4fTsmqI50xxmq9TeIUIF1yu4JxeSuVzQuBk3JOx0/QxrsZ7JlZtw+OPJKrDeb7ARz7orTqOha7KkMug8DxjZHhxwRDm38fycysqeXRPhrgPw+CdARRY2lV47sPA/93t0kdhVCZMIMfEL9zXekUlorS7lsy+s3Wp3GY5koHVuaKHaltietPYw1Fd/cno25cE/nU54hGX/b0CF1gSktkLiv5vNQ9oi7rhJv0w+5VlTDv/RRFOFxZMjt9/uuNSbhAydw3QvgOU8hg5GtRh7P4X3G/mWnGKjVYqQ26xtdEId6hqiXTTe3YG8tXOkMCTrghQD7zFA9AmiY0bdiuNikwj7jaNBsIhxrOKqei/OFGlK3wHLmfmybeMvJRcoZprhtiadl2kM1JplkF/TBu1XCtJh1b4hxtBRsAEvsWRoQHxuI7eJfPxsYBeNDKgz+Gydan/yttLIQ2Ii5p2J5sHElt/ri5ye5A4AQJURZBRkKRK+89Y27xCrU21Z/pakegmwrhcHvH6daWCK4SdxVsdgRnJJWE9rIVE14KJjFWcO6sNuxJMLS66SNPcH/8Lpj9ZEa7je/qXddCYbFf77Z9nGmYehDuY7BjvQe9brUgLFtBA6wzAEtFsWyE0WH4W05lE+4O2m8N5jFb8cAtbGiVFbHoaPzrDc49OO/F9QNs0flr+URyDp45cboqjp+blMioWbMlp7HK6fFfO92rZzWFbrQ48uo4XrH0AJGpOl2MYJVh7KpR95KsOV5q00YL2Ik/HM7uPTm2BF7exi+SDv3CDdu9slpedKcg8f5kf4tmbh2UmQoXXILCAIOpT4PCStJmTJXUOmc01MOVkm3eMd1fDrTfwLflxrTjzc1ZG5lnw jHI9CfQs bON3YO7HQPZy1dsCR+qF1ORRxKq2ZfWUtRtmzsNIb6eK/ZLxfQjJ1wxJLXOdVY34dximntZp/2tPOaTIKuUuIHAEM2o0/aezm+O1VNmtATYsFOoViBF4KOP6TLbjenw16HI2hnobILfjDMv5NBTExaoEqe3UO7zx4UTpkx8s5Zr7O83ONon0N1y+J56ukORDK7fFavoSZVoIiVaGRB8c5rMxosV5B2jtLG1uq5RCxTlEcndUyIdcGilym/PER9U8EV7CSYo/lIbZNJzVAWACsu5/1a6bCKbLhowjb9RycFTdnVNEuTssepJpxFFCGCdVmMN3MF6kiQeGAjwlpe3/mVozkTISgOmxglATvEnlsjuhTj7omWEeMo5ba1WEmucN3aBn5Ylk+l6FjTegYRxpFWSBywnbrfhTY+4DTgq3HE/wpesz5Y3/IOvIlWA== 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 9/11/24 08:45, Feng Tang wrote: > Danilo Krummrich's patch [1] raised one problem about krealloc() that > its caller doesn't pass the old request size, say the object is 64 > bytes kmalloc one, but caller originally only requested 48 bytes. Then > when krealloc() shrinks or grows in the same object, or allocate a new > bigger object, it lacks this 'original size' information to do accurate > data preserving or zeroing (when __GFP_ZERO is set). > > Thus with slub debug redzone and object tracking enabled, parts of the > object after krealloc() might contain redzone data instead of zeroes, > which is violating the __GFP_ZERO guarantees. Good thing is in this > case, kmalloc caches do have this 'orig_size' feature, which could be > used to improve the situation here. > > To make the 'orig_size' accurate, we adjust some kasan/slub meta data > handling. Also add a slub kunit test case for krealloc(). > > This patchset has dependency over patches in both -mm tree and -slab > trees, so it is written based on linux-next tree '20240910' version. > > [1]. https://lore.kernel.org/lkml/20240812223707.32049-1-dakr@kernel.org/ Thanks, added to slab/for-next > > Thanks, > Feng > > Changelog: > > Since v1: > * Drop the patch changing generic kunit code from this patchset, > and will send it separately. > * Separate the krealloc moving form slab_common.c to slub.c to a > new patch for better review (Danilo/Vlastimil) > * Improve commit log and comments (Vlastimil/Danilo) > * Rework the kunit test case to remove its dependency over > slub_debug (which is incomplete in v1) (Vlastimil) > * Add ack and review tag from developers. > > Feng Tang (5): > mm/kasan: Don't store metadata inside kmalloc object when > slub_debug_orig_size is on > mm/slub: Consider kfence case for get_orig_size() > mm/slub: Move krealloc() and related code to slub.c > mm/slub: Improve redzone check and zeroing for krealloc() > mm/slub, kunit: Add testcase for krealloc redzone and zeroing > > lib/slub_kunit.c | 42 +++++++++++++++ > mm/kasan/generic.c | 7 ++- > mm/slab.h | 6 +++ > mm/slab_common.c | 84 ------------------------------ > mm/slub.c | 125 ++++++++++++++++++++++++++++++++++++++------- > 5 files changed, 160 insertions(+), 104 deletions(-) >