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 C1ABEC25B76 for ; Sat, 1 Jun 2024 20:53:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5406E6B009A; Sat, 1 Jun 2024 16:53:55 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4F0496B009E; Sat, 1 Jun 2024 16:53:55 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3904C6B00A0; Sat, 1 Jun 2024 16:53:55 -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 1720C6B009A for ; Sat, 1 Jun 2024 16:53:55 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 83F52A1B25 for ; Sat, 1 Jun 2024 20:53:54 +0000 (UTC) X-FDA: 82183521588.15.DA55C0F Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by imf10.hostedemail.com (Postfix) with ESMTP id 3884AC000C for ; Sat, 1 Jun 2024 20:53:51 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=Cxib2fJx; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=b3SFhczq; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=xeC6hnOL; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=nZaSFi5Q; spf=pass (imf10.hostedemail.com: domain of vbabka@suse.cz designates 195.135.223.131 as permitted sender) smtp.mailfrom=vbabka@suse.cz; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1717275232; a=rsa-sha256; cv=none; b=hgkvI2qdTcRWs4/bCEesHwI3gdaenCJRJeYMvbIZAIqzUXptb0r9MIXlYqgz62S8YRCsgZ oJJutJ9hiRHPYsbX0Pm/AEmnBSjKmH/VHibPxNA7L/VUEZ7kIlvMEBvfJ89d5QWhOC1ArI 825Ovy1DcKMZWXYURvohtfY+GX78bAw= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=Cxib2fJx; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=b3SFhczq; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=xeC6hnOL; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=nZaSFi5Q; spf=pass (imf10.hostedemail.com: domain of vbabka@suse.cz designates 195.135.223.131 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=1717275232; 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=Ptk5drCFwpLg9lSfuRWyk/LcrEFvlG2GrYpochrY8dI=; b=LU5pG4OlKfFFkGPZJLApmA2GOkpqBD3rN2TedekPSO9cAFiqCr4lt9pVXv2OTzNhLVOCp4 7rDAn5GqQBmhXSFeB3z3kdjc1+cooGhIbeafJv03MbU3eeR1JUt9m15S1nCuU+Xuamh52m kDv3WaUQI8jDuqrETpQnhdR5NktvknE= Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104: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-out2.suse.de (Postfix) with ESMTPS id 2DC011FEEA; Sat, 1 Jun 2024 20:53:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1717275230; 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=Ptk5drCFwpLg9lSfuRWyk/LcrEFvlG2GrYpochrY8dI=; b=Cxib2fJxW3mQLOJyDR61T/AV5YjYePMYW4dM4RG4F7Ws1ua7vgcPa4IDp75RvDJzhuD3I1 PeSHr6Zbe5Ls8BJ3ngiY3E6wxz5bU1uNut9TrS9DhmAWvrUtTJj85JtQzm8EyZYIao4hve uMfvu6C3g1ns93ZKDCseCM/2bKuO7qM= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1717275230; 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=Ptk5drCFwpLg9lSfuRWyk/LcrEFvlG2GrYpochrY8dI=; b=b3SFhczqu64YCnft+yeg/FAGAvRPe41JtA4uWd0JIZKAb4nxe2LjK61hn1AVwuhI87XGoX AqpoT1GZe+zpWCBg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1717275229; 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=Ptk5drCFwpLg9lSfuRWyk/LcrEFvlG2GrYpochrY8dI=; b=xeC6hnOL2V/vTOwe6k9v+h5jymBx+6wyIzOREynZrvgekCTdC0OLjIXltJDNXWPOUy5cJI lF+nsL+YbAJDyKfz3IE2sHA+dATkcV0TS/+SzJK3gzbob2RAFFdtdr4Xu5g+ysNwC//1FT krLPxOVd7JptBgmhNLhxDZRdBs7TL60= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1717275229; 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=Ptk5drCFwpLg9lSfuRWyk/LcrEFvlG2GrYpochrY8dI=; b=nZaSFi5QMELda2Ux4+mKWF/vp7oiuqDoEf8xfpiBOKs3Y3ljnLu4ZNkl2HDXXJOxPR444l VO40tm2RM/YBj/AQ== 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 01789137C3; Sat, 1 Jun 2024 20:53:48 +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 VNc9O1yKW2bYTgAAD6G6ig (envelope-from ); Sat, 01 Jun 2024 20:53:48 +0000 Message-ID: <718071ea-e39f-473a-ad84-10dba436815f@suse.cz> Date: Sat, 1 Jun 2024 22:53:48 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH RFC 0/4] static key support for error injection functions Content-Language: en-US To: Roman Gushchin Cc: Akinobu Mita , Christoph Lameter , David Rientjes , Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , "Naveen N. Rao" , Anil S Keshavamurthy , "David S. Miller" , Masami Hiramatsu , Steven Rostedt , Mark Rutland , Jiri Olsa , Hyeonggon Yoo <42.hyeyoo@gmail.com>, linux-kernel@vger.kernel.org, linux-mm@kvack.org, bpf@vger.kernel.org, linux-trace-kernel@vger.kernel.org References: <20240531-fault-injection-statickeys-v1-0-a513fd0a9614@suse.cz> From: Vlastimil Babka Autocrypt: addr=vbabka@suse.cz; keydata= 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 EP+ylKVEKb0Q2A== In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Action: no action X-Rspamd-Queue-Id: 3884AC000C X-Rspam-User: X-Rspamd-Server: rspam12 X-Stat-Signature: efr6y7tpm961zdn1rb15bn7i86pmjndm X-HE-Tag: 1717275231-970850 X-HE-Meta: U2FsdGVkX19rym6AXwRM37BlESLUnIeEmLzwhyCY94GzybGvUm/oPNERp8e0I4nkpTU4KeqcHQXaMgF6jfdwCNowXCuPWlB6zgxoX8A7QdqVvuxPiJEr9V6xNbrVGjGd9P7VtDlGpD4EerHAvtBNzb+VtTJ6meNIWVZJL//bv7Ahwg+BV64V3CgAHFSO2SfZ/WOwOqk0d1SOv6zQB32+niQMVoOSqoVTHzYpclCIHgdoVaHD7fRMu9MQdpa18Mbrf0ewUAQ6ooTmOvGvoZP3PV9R7jlTdVe3Hjx59d8dIltseqM25L33Ar5+bCMfpGhwtMJFqEZBGVcvAzWqFVj0Lg8qEgVNhHEvieW6SKqNqbnXav2Ipog0st31v5Linrs77WgONCqPEfzvPtA81NXt/f1nW8/6yOvlC8ds/nBHZGZh3a6MhCOI4Z/FORBAqokGY0qhpRlBsRWK3/nkLMwOOrp/JiWtV36pUTWhn4/oGnXdCTDP5juoILQeu92nWviav9hpIgKDY6BdzyQJmpwNGh/uWXhpB6anYahPgzEKHUvWi2oA/EIKogupxkIS0BpKAEcAiRkRxkWZCeGmGsLVZEVCx5Xw3J2emMLF+hDxAGXsMGkrsgK2w/EzOs9pkkkVr0vGMueylufvHnpRrCQDiZtCPZZ+Q92l70b+As4DmSYWydd+EXa/lwMvICy8gwOZNhfI/5BBNWjIbPcy4l8pqDxs4vJfEzfSPCQ8uyK63cXQ0PTvP3Ru2mPjPG4S9PeEb2OMWBqPL51ghjwjl3zWBAwefxRfXfUrcYv8ON+VWAXnNGHwPaHzQ6W30TyRVa48jqcnI89jrpBrQkco7fn9pPsTzODdRKvEzSollmFneI0s9JOPXJjIRoey6LvE/MZsaq45c99dlpCgd1OrEPtPneN+cPx5GQKcGKesYujKMjMd68/BDLpMdfqwlgVmXi19br4I35279wa6o53zPAq aKxWWNXz YH178NJUv9dRus5jPRe7YcJIW37LMbYf6sCr7GelE6VvXrJODDuyWt8XZHAQIq/1Hrzov9RrCygJNK4hLhqWdo8gtPBXEEfKpemAQmVEjUnqSDyyDpDifrCRwND/HL0e6ziP5x1n9RQcKMRKOwdyFz4+uhAejqwe5uy4/aeQZUFSOBeKlUwhb725ahSHDiign2wGQJNX4CqvufxBvYRp/QLVqwgXZb4/fqIymmmt1I9K5wy22q5d2b8C5nz9nCXr0Y1DM7U2JHOTU42p3O+hJ1calj/g/1mvbI+FlJ1MSxEgMGOOSNhbUPRJGanuSp1iPIouN0CURAnGAJxXxvUW92018cRSUcGk4utU5/e5YM+dw26Q= 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 6/1/24 1:39 AM, Roman Gushchin wrote: > On Fri, May 31, 2024 at 11:33:31AM +0200, Vlastimil Babka wrote: >> Incomplete, help needed from ftrace/kprobe and bpf folks. >> >> As previously mentioned by myself [1] and others [2] the functions >> designed for error injection can bring visible overhead in fastpaths >> such as slab or page allocation, because even if nothing hooks into them >> at a given moment, they are noninline function calls regardless of >> CONFIG_ options since commits 4f6923fbb352 ("mm: make should_failslab >> always available for fault injection") and af3b854492f3 >> ("mm/page_alloc.c: allow error injection"). >> >> Live patching their callsites has been also suggested in both [1] and >> [2] threads, and this is an attempt to do that with static keys that >> guard the call sites. When disabled, the error injection functions still >> exist and are noinline, but are not being called. Any of the existing >> mechanisms that can inject errors should make sure to enable the >> respective static key. I have added that support to some of them but >> need help with the others. > > I think it's a clever idea and makes total sense! Thanks! >> >> Patches 3 and 4 implement the static keys for the two mm fault injection >> sites in slab and page allocators. For a quick demonstration I've run a >> VM and the simple test from [1] that stresses the slab allocator and got >> this time before the series: >> >> real 0m8.349s >> user 0m0.694s >> sys 0m7.648s >> >> with perf showing >> >> 0.61% nonexistent [kernel.kallsyms] [k] should_failslab.constprop.0 >> 0.00% nonexistent [kernel.kallsyms] [k] should_fail_alloc_page ▒ >> >> And after the series >> >> real 0m7.924s >> user 0m0.727s >> sys 0m7.191s > > Is "user" increase a measurement error or it's real? Hm interesting, I have actually did the measurement 3 times even though I pasted just one, and it's consistent. But could be just artifact of where things landed in the cache, and might change a bit with every kernel build/boot. Will see. There's no reason why this should affect user time. > Otherwise, nice savings!