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 5BC59C83F1A for ; Fri, 11 Jul 2025 17:59:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F21EB6B0096; Fri, 11 Jul 2025 13:59:17 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EF8846B009A; Fri, 11 Jul 2025 13:59:17 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E357D6B00A3; Fri, 11 Jul 2025 13:59:17 -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 D2FBA6B0096 for ; Fri, 11 Jul 2025 13:59:17 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 8589EC142E for ; Fri, 11 Jul 2025 17:59:17 +0000 (UTC) X-FDA: 83652745554.15.FB01D57 Received: from mail-ej1-f45.google.com (mail-ej1-f45.google.com [209.85.218.45]) by imf12.hostedemail.com (Postfix) with ESMTP id 5E03A40005 for ; Fri, 11 Jul 2025 17:59:15 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=dUjd2Rid; spf=pass (imf12.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.218.45 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752256755; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=HO86Lx8//8hSyzYLerKKeVnItqg9SoMBkOdjNB0C6us=; b=nV9WYHekSrmow6bZ4TIAekEniDe9NJQuodMaveL8ij6TXwk3tscKNvBP4NCKZtZQcGm6f7 xWT/AiEAwe4G4Xw5W5X6W0biK0FNQjQKVt5XtULSaQqOsfeIkUvfOVFKpjBAXb5f115Ipe zw3zn2SEAoVCVJYSyi6L34dB9/Yn4Ic= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752256755; a=rsa-sha256; cv=none; b=s1Osvv0A9aA2hybShlygElRSBuujFC/7/Yh36AIu5EZ/2Xig1gWrXQiINTFMIh21OqUHEl dJ3HWzJnHu2v/RIARz3mr+1zoUGjIoyUVSGh6tGGTG01xXQVXTYjTvLYbUmLaj6x1+lvBB opSKPUlppgHEyFmpNawGqnBk+lsH91Y= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=dUjd2Rid; spf=pass (imf12.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.218.45 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org; dmarc=none Received: by mail-ej1-f45.google.com with SMTP id a640c23a62f3a-ae36dc91dc7so413223266b.2 for ; Fri, 11 Jul 2025 10:59:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; t=1752256754; x=1752861554; darn=kvack.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=HO86Lx8//8hSyzYLerKKeVnItqg9SoMBkOdjNB0C6us=; b=dUjd2RidUp9E6ZpOekqTVDn7lHcW9THnLjQbPfdsJQYl8fSvIf6tSDn1wYTYw+kp5r vhVFVJeoeLyZGvFAlpw0B0xqHpQARNbxz/HwdFoLzo62IwpARMvcqgyUf1C2LbP0CEZ1 5BsRVNVMBzE+71K3gNb3KjbZKxg6S9V4C8Tqo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752256754; x=1752861554; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=HO86Lx8//8hSyzYLerKKeVnItqg9SoMBkOdjNB0C6us=; b=GZcO07dJNnrRld6F5CN4qqk8dXbIoakDeS+1Y7c2ArLOItalXX6IjDJu0h5V4QIDb0 QQN83TlSJkHQA8KVhddPbS8yIP39deveDGZ5pb5r7r48183vEP9UoQEOM+XIT8/YjGMk X1LmO9PE9OT+nVuNG958sTHrfZdXO+ER/zLMnBwF1rWr3IhAONq9ODCFQDn3b9WvVTKA gb6f721buEKZ7+9F7tZWUPAIDD/7xjlbes2J8Fr93xKPzQXr2iVQSF+ovwgJrCIOsmZL HjJOSnc1PEoJbvhX8ujWfB57xMFSbnEc0tPfUtEkzEWCFkdVJrqAEtCtvvtfZGzED9t0 7doA== X-Forwarded-Encrypted: i=1; AJvYcCW6Q0AWLzFt9/AXcoQFmMqd9wyuMJMnd+8UODkOUQrPiPGXhyVp+C5fl7t0PyJITzJoi+d4851Icg==@kvack.org X-Gm-Message-State: AOJu0Yzisf8JR8nGQs6wvOJlqCxKs5jzHJPjfaixuKrLX77/u2lCeJzN 6ckxHDTekCTTAeMZfkO2mLAy8odZD1b9JZowxYiNSCxTH1Kv/uaALHBDyhVOQmrpM3ORx5sSmNS Pcho/hGwRNw== X-Gm-Gg: ASbGnctOfbjdsbVV2RpEJNFxodTo7w/hbAw1npZ8ijug4HJNjobHcpnzeNTEMkD4QOb zMPPZpr+pgLAK3Ydj1k9OgvAqJFUipFt0pFuVMniFGJymMKPQXbhK42ly8Ml0lTQ/dr7/395eUq oUKIXhD1+GVLPEu1ajfLfj0/sAkcA4k6B5vPueIKO20gLqJsD6Qy0szF7J7KgnMvUTeQU8u8Fey um3yN5aBciLlnU+tZPhqs55EYj0ckluoAFk8kpm66GdimyTx5vDzPKG2DarJeDkr4xEmE16RPq2 +L7dYrXLnVnJ4WaSFcP2q1e3Ee7uVSMEFa+943w2x1vVP/SAlMJGMuZrhz6Fjw3MJsR33Innv3T RJGGlbvMqYOHUX8fvSGTiCx8CVnQQ6ZtTcdlS5hdSVu0G8HQu0M9DvGG3dp4Le8onE7oMwn+9sv /9I9S75Xg= X-Google-Smtp-Source: AGHT+IHkw16WMr1kglQLf8067y9quOtbwGuEPwMfjSfe0yTvIWawwnEh67JQIlMbQXq1A8yDRt7vFA== X-Received: by 2002:a17:907:60d5:b0:ae3:a717:e90c with SMTP id a640c23a62f3a-ae6fc713cbcmr398970866b.23.1752256753803; Fri, 11 Jul 2025 10:59:13 -0700 (PDT) Received: from mail-ed1-f44.google.com (mail-ed1-f44.google.com. [209.85.208.44]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ae6e82dede9sm326851466b.167.2025.07.11.10.59.13 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 11 Jul 2025 10:59:13 -0700 (PDT) Received: by mail-ed1-f44.google.com with SMTP id 4fb4d7f45d1cf-6077dea37easo4337910a12.3 for ; Fri, 11 Jul 2025 10:59:13 -0700 (PDT) X-Forwarded-Encrypted: i=1; AJvYcCWfKGXM7X+xWNYNo8bm9e09hNaoQTpMTQYnvX+ihQgdsOpkiYKwASeiGsy909oDq/dY8/4khMxaEQ==@kvack.org X-Received: by 2002:a05:6402:518d:b0:60c:40bd:8843 with SMTP id 4fb4d7f45d1cf-611e764f6e5mr3668397a12.11.1752256753054; Fri, 11 Jul 2025 10:59:13 -0700 (PDT) MIME-Version: 1.0 References: <04c1e026a67f1609167e834471d0f2fe977d9cb0.1752182685.git.alx@kernel.org> <28c8689c7976b4755c0b5c2937326b0a3627ebf6.camel@gmail.com> <20250711184541.68d770b9@pumpkin> In-Reply-To: <20250711184541.68d770b9@pumpkin> From: Linus Torvalds Date: Fri, 11 Jul 2025 10:58:56 -0700 X-Gmail-Original-Message-ID: X-Gm-Features: Ac12FXy_-gvqQgEDwxrh9_yUhPGT4NZn2yvYc_wfrsBVUNUS1D4_tzcLfdrYbJI Message-ID: Subject: Re: [RFC v5 6/7] sprintf: Add [v]sprintf_array() To: David Laight Cc: Martin Uecker , Alejandro Colomar , linux-mm@kvack.org, linux-hardening@vger.kernel.org, Kees Cook , Christopher Bazley , shadow <~hallyn/shadow@lists.sr.ht>, linux-kernel@vger.kernel.org, Andrew Morton , kasan-dev@googlegroups.com, Dmitry Vyukov , Alexander Potapenko , Marco Elver , Christoph Lameter , David Rientjes , Vlastimil Babka , Roman Gushchin , Harry Yoo , Andrew Clayton , Rasmus Villemoes , Michal Hocko , Al Viro , Sam James , Andrew Pinski Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 5E03A40005 X-Stat-Signature: zaiwaah6tzpu1wyftsyfgz4nopeb9cak X-Rspam-User: X-Rspamd-Server: rspam03 X-HE-Tag: 1752256755-310537 X-HE-Meta: U2FsdGVkX1+OzIcLU7fvmR56AnUPtYMzFaxOeMqtD1V+//SVfehrSqeNerKlo6FBOrPAtcpoMcqkLKKNpIoqvg+y1ruiT/dNtx7u/3AYBFUbf61T9USpW88QkcJh8IOFRIbNDxi/udBVssbvFgLcAfdBjrl0WXLY87miP6UtRwqb6wqm1BJwCJJYKzCTISTT+PleGoB6b639NMstCJlV4pU7RxAaK+2a5WL7Dj/g1flp12PGMbIK1Y75g7vMn9NyO0o7UmMKL7A1eJcJ1BZVR0mShZWbkj5FVir6M/iJf6QY8pI/X7Kih1tYCoGVl6Phr2y23V7IlaCrrQZgKyQTVOKvy6t5YuVjZ8r1sydIdxnetOLuREFK/9Y7SG4IQlZppg4JB3towNI8I/KjRYa98HvvmeYm0E4LKyKcnVMTvsA/y3CG5LPxr7Yc8YNrV8Q+OtCKijFcs6WVFkYENUAnwL+s9Tn5Rv8mJQSiuRkMsHypc/FaEBHKR3mPKNLdgErFGAXyOWwB3JWeFcSFyEoA7rhnyrzBBwBsDnS+SIeUmO3vI55UEDmdVO3C6dwggV28eS8OB51D/+L0RVrev7U3Ii23wI0X6kDZgjZ8n1qGg3PVDR5fzttkAAJJaXKDWk3P525SYEFQNO/q6kCnuHRPawzaa4Tt36OrGyJdTFWSYb8uiFDlvpBRqOTXjTedPyYQp2xQG5RvGlYRNZ29gmgGp1+hV/Vl3c6IitPpMjDZjYQxKzgYfKoleW09ofJIkwATTaDeuwEzQN0onV1+053wBpr98WgRgN8IQpm2/9KvyjeWItn47hKDwHpGVfn/Sb3gM+lbUtgsh9QaLxDTBXmpDyIQbtv+0/z9zgsjJcQoj3YJ/KQbmPbUNLRb8XAYNJvPB3ZxTTFqEUZJwKSNCwPMnNofcqcn3IiFvHMzfoXW/jH8oBkMKiyYcx/aUYZGy9pI3ay5feT7IOCKQ072Jx+ h9sc0nYQ AJq/L/CrZoS2WtxSzFi29UN0CYojiJ0hTVCyJvCgScaR5aYYlSQqNFdqO+fITpLVihdmohFVMMUZ/F79hZjjrwsLqrAgH/tbkc6xo26ZtKcSuhjywpJ2oKWv+sO0glR4N6wkc9W9CC1o9U6gmSzjMYIJRS01Lq5bn7cRhQqhMdsqU6fQYLOL26P805Jkg04nTUikzAujuldBGQbcVTJ94Ig/iqEclaoDYvXMgFKX32EBpo0GYdHHo9UMkveYuwEfVrUVmuptDw6ND9b0zMBbqHtXiXJSsosHZyYAizJvlzHJE+DUo0rucTRf7lpmDSTLr3KCNT5dQS1njmit5+SXRO4MqkpS+XU4If0Rb/2YjBBcrVSxUzjPFBg2/yhjjPKgu4uS+BoSapqNTmDpslsA2RQaUMUTV5dk9fOGrGG98lJrCiE3pLmerWyBmeYpYuUtZky2uEyVTE6ZzzHqhcZ3/uH4XWQ3jh0Tkzvnz1aCuidvi00EHX8YIC9icMm9pLjMNSlrrqpO44qWVHKeQFSeQfhayyhHFWIw6tOLKyFm/g8wkjlWkELMM3R/oJ4mv4v9Cxr2HMjKqz2vCPtJZhsMOfj0zmJAk7/PdhTgUtqg7PLjmCEI= 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 Fri, 11 Jul 2025 at 10:45, David Laight wrote: > > What does that actually look like behind all the #defines and generics? > It it continually doing malloc/free it is pretty much inappropriate > for a lot of system/kernel code. Honestly, the kernel approximately *never* has "string handling" in the traditional sense. But we do have "buffers with text". The difference typically exactly being that allocation has to happen separately from any text operation. It's why I already suggested people look at our various existing buffer abstractions: we have several, although they tend to often be somewhat specialized. So, for example, we have things like "struct qstr" for path components: it's specialized not only in having an associated hash value for the string, but because it's a "initialize once" kind of buffer that gets initialized at creation time, and the string contents are constant (it literally contains a "const char *" in addition to the length/hash). That kind of "string buffer" obviously isn't useful for things like the printf family, but we do have others. Like "struct seq_buf", which already has "seq_buf_printf()" helpers. That's the one you probably should use for most kernel "print to buffer", but it has very few users despite not being complicated to use: struct seq_buf s; seq_buf_init(&s, buf, szie); and you're off to the races, and can do things like seq_buf_printf(&s, ....); without ever having to worry about overflows etc. So we already do *have* good interfaces. But they aren't the traditional ones that everybody knows about. Linus