Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp495882pxk; Wed, 23 Sep 2020 08:23:17 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy3j6n1aiHVxGA9aWpRcCsfjKrRzzBIKFLJKsGC8+meT+zkC2uAz7+SJhS4EyzJZXPmbd+g X-Received: by 2002:a17:906:85a:: with SMTP id f26mr129645ejd.389.1600874597337; Wed, 23 Sep 2020 08:23:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1600874597; cv=none; d=google.com; s=arc-20160816; b=kpn49yXPWmrGfnKTFwTtMbt8X5t4aq/PL970njzJv6otn0+dwqQHiQ3XbDFPnkseKE 42dRg+fW4RRzJWYizfPfNed6VGcI/hd6/SzF3J/YnmHTjar8JMaZoyzpD4MsNwFcJiPk nOCzScI5X6bpbb50NnW4/+Et8P3N7ZYXnR88EGz0f+pxoDcD5HEFEcr57q1LU6NA8ZjD dGmmF41GUeZhz9hlqqQpGg2Aw+HaEjn8g4mJf5yLROmLLpArkoODLpGoS0shTx7E7pJ0 bop9rR6TQFiRF1jMUfMXFtpY8rAf8e2HI9Hl7S2qCyLvezaQQnoC6kheF8xucyLUM3Sr yMQw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-language:content-transfer-encoding :mime-version:accept-language:in-reply-to:references:message-id:date :thread-index:thread-topic:subject:cc:to:from; bh=PT4vXWKERHW/ARCmZWH2zb4dxxz7uL9HuhVN6FItorE=; b=xwOGlSIFl/MCIs4axZEHu59EkiBETE4VbLxSUHWlis/0cWzyGQWyiEBpMdUS8o1nep KBvzRJLTgAXtGYQCGixgf2YnS9Gktz6LtCYF091p/z8RM7mRw3NnDZUMFay10VX1Yuct lzLoLQq+ts2vWCjJsX0xr4V6Oan5PHiKm+Hjd50bqsgBAA9VK0RcYFEZ3AIDcrZiDfc0 4HVDXhJCnSg1n4zo567AA6UAa82Wt9rf/XA5xOuxe8/0MwyiP3bdOEjPLJ2ot0gZJMZq IxkagzWtvSf6gH/Q8fK0hRHV3bewkOI0IG7cHSDraFFt5FPWKmn4hEHaXkdyPPt3tnLp 9b0g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=aculab.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id v27si102144edi.305.2020.09.23.08.22.51; Wed, 23 Sep 2020 08:23:17 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=aculab.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726704AbgIWPVs convert rfc822-to-8bit (ORCPT + 99 others); Wed, 23 Sep 2020 11:21:48 -0400 Received: from eu-smtp-delivery-151.mimecast.com ([185.58.86.151]:40478 "EHLO eu-smtp-delivery-151.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726156AbgIWPVr (ORCPT ); Wed, 23 Sep 2020 11:21:47 -0400 Received: from AcuMS.aculab.com (156.67.243.126 [156.67.243.126]) (Using TLS) by relay.mimecast.com with ESMTP id uk-mta-279-RO2zBdHMMA6wi2dLfDiKZw-1; Wed, 23 Sep 2020 16:21:42 +0100 X-MC-Unique: RO2zBdHMMA6wi2dLfDiKZw-1 Received: from AcuMS.Aculab.com (fd9f:af1c:a25b:0:43c:695e:880f:8750) by AcuMS.aculab.com (fd9f:af1c:a25b:0:43c:695e:880f:8750) with Microsoft SMTP Server (TLS) id 15.0.1347.2; Wed, 23 Sep 2020 16:21:41 +0100 Received: from AcuMS.Aculab.com ([fe80::43c:695e:880f:8750]) by AcuMS.aculab.com ([fe80::43c:695e:880f:8750%12]) with mapi id 15.00.1347.000; Wed, 23 Sep 2020 16:21:41 +0100 From: David Laight To: 'Petr Mladek' , John Ogness CC: Sergey Senozhatsky , Sergey Senozhatsky , Steven Rostedt , "Linus Torvalds" , Greg Kroah-Hartman , Thomas Gleixner , "linux-kernel@vger.kernel.org" Subject: RE: [PATCH printk 3/5] printk: use buffer pool for sprint buffers Thread-Topic: [PATCH printk 3/5] printk: use buffer pool for sprint buffers Thread-Index: AQHWkbvTttZV2GpHGUOQ6CZ1VgO6Jal2Vhqg Date: Wed, 23 Sep 2020 15:21:41 +0000 Message-ID: References: <20200922153816.5883-1-john.ogness@linutronix.de> <20200922153816.5883-4-john.ogness@linutronix.de> <20200923151129.GC6442@alley> In-Reply-To: <20200923151129.GC6442@alley> Accept-Language: en-GB, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.202.205.107] MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=C51A453 smtp.mailfrom=david.laight@aculab.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: aculab.com Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Content-Language: en-US Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Petr Mladek > Sent: 23 September 2020 16:11 > > On Tue 2020-09-22 17:44:14, John Ogness wrote: > > vprintk_store() is using a single static buffer as a temporary > > sprint buffer for the message text. This will not work once > > @logbuf_lock is removed. Replace the single static buffer with a > > pool of buffers. > > The buffer is used because we do not know the length of the > formatted message to reserve the right space in the ring buffer > in advance. > > There was the idea to call vsprintf(NULL, fmt, args) to count > the length in advance. > > AFAIK, there is one catch. We need to use va_copy() around > the 1st call because va_format can be proceed only once. > See, va_format() in lib/vsprintf.c as an example. > > Is there any other problem, please? Potentially the data can change after the vsprintf(NULL, ...) call so that the buffer isn't guaranteed to be the right length. Never mind the extra cost of doing all the work twice. David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)