Received: by 10.223.176.46 with SMTP id f43csp470349wra; Fri, 26 Jan 2018 01:44:03 -0800 (PST) X-Google-Smtp-Source: AH8x225GSjW71LLzshZ+9IiBGa1mpw9Ql0PSOjJGxNzaXIRls5QIAgisgJq6qfJT4LE15lbMW/2S X-Received: by 2002:a17:902:1c3:: with SMTP id b61-v6mr13776496plb.190.1516959843529; Fri, 26 Jan 2018 01:44:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516959843; cv=none; d=google.com; s=arc-20160816; b=jjaSfFad7kDSr4ctqG/k4LHBBpMQWeaiDvakz7lYberZBU97G+dkLlK/x5IdGiccee 5QHg5CioKmY2GDQa9nS2M2qW/dS/czgOWdERGxVKSiyHUJ+Zxzj4spCVS32+Zaic/XGl IodqUNkWRvkMjg1RHTh+Lj1g1CMf2qMJZQEEzF2HVRxjqRHcFJYtcr4Qw7X1i70j0bC6 RAzD91bi59cGMvZKvpASmoJ/VD4Yv6FWlZ8JGPF/Y8gt8BKdvahIMBlJqLORpOON51zi gEC59fvkm2r9lrvcZJc4iuNUcJY8Gq885xPfizydYG37fg4JjCe7yL7wQdfIavb01OV0 sxKA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:cc:to:subject :message-id:date:from:references:in-reply-to:mime-version :dkim-signature:arc-authentication-results; bh=nMOX4cAm2A8JlFEtDNtDmYD7meQV96FMfUb8suJcW1g=; b=VgSxk5i/IJldPAjZcfBty5qq8l7mGkEet6MrodEUmXteXUx7r3Zu2evaPSBfy+nHQS WR3mpu4LT2nTNYfSxrIfh2E4OtGI+H/F1koGl2T6fj4sotFQVDZKqWWO5g5t4Af8zsZ4 rUNL95FYAMourRB1jYV9mrmFYwxR11Q99V1Qib/7VEoWVL3XWXtEDrncwruqNRS/MjzR vspscgtzUEsQrLpr7+JE7T29p5tSllB5K1FJUGMOREcwvr7FfnINdX0bh9jQKOX4vVW4 woBs/67iXR1yEimKMwF0WL7L2JiBla9Vb28ex5kd/rYqYGdclwY1MveNiZTEBDi1863T Zcew== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@rasmusvillemoes.dk header.s=google header.b=JmORn1x1; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h123si2797257pgc.417.2018.01.26.01.43.48; Fri, 26 Jan 2018 01:44:03 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@rasmusvillemoes.dk header.s=google header.b=JmORn1x1; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752886AbeAZJnU (ORCPT + 99 others); Fri, 26 Jan 2018 04:43:20 -0500 Received: from mail-io0-f193.google.com ([209.85.223.193]:43123 "EHLO mail-io0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752521AbeAZJnR (ORCPT ); Fri, 26 Jan 2018 04:43:17 -0500 Received: by mail-io0-f193.google.com with SMTP id 72so10925521iom.10 for ; Fri, 26 Jan 2018 01:43:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rasmusvillemoes.dk; s=google; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=nMOX4cAm2A8JlFEtDNtDmYD7meQV96FMfUb8suJcW1g=; b=JmORn1x1A78MIWxd5v+Db3T9nKQMr5Zt2S8mZYZK5I4qxtXZV7t6JTNrHvz4iH39TY r0csqEMMI+w421iBu39osV7zX2s0GvOpdcCB3SR0LzxLgTmVH9bVJoUMnYh+ay5LgK96 2BLN+bOkMANZ6bAPaghugkDydGHaawDZm0Gqk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=nMOX4cAm2A8JlFEtDNtDmYD7meQV96FMfUb8suJcW1g=; b=ChzdcFsQl0grDpGXOgGopCn0e/QGV+93XZgBPvusT/dvu1ZQ7Pf1F2u0DRYsnBBXVv sZVrcW4mGonDtBOTBKJ+RyAwKLoR6DHoT//TRn0Q/Z4itZ0BIxpxLlUmGmwiEjp9vljf pDHapdg4F47Nz/w1jIwNLfaCd5j1tAqfE9i0KqVf/cmEVuQgDXV8fBdHFSDcXRL1Bu48 fsXcq6QiTVPSamH67DI5mtu6wCzBfYQGNOGsqLzYdFvURrmyDXp5AVVTyINBqw23yQmn HxX36yomi40SZad9FbK2aJqgT9d+0oE4aOADM9rKZtn/7BrbCUhPRnkZtHKrbYhEkO2y i6ew== X-Gm-Message-State: AKwxyteq6GgawvKbOiNtGAiJElqlbrUrHTAWBthnHRbffZolTmKQHSHi Kboyt1y52n9UqWQPayeT7yJOCsvmN9VRbevm0J2mAg== X-Received: by 10.107.12.142 with SMTP id 14mr16304326iom.0.1516959797140; Fri, 26 Jan 2018 01:43:17 -0800 (PST) MIME-Version: 1.0 Received: by 10.2.146.9 with HTTP; Fri, 26 Jan 2018 01:43:16 -0800 (PST) In-Reply-To: <1516958276.7000.1271.camel@linux.intel.com> References: <1516952396-7423-1-git-send-email-shunyong.yang@hxt-semitech.com> <1516958276.7000.1271.camel@linux.intel.com> From: Rasmus Villemoes Date: Fri, 26 Jan 2018 10:43:16 +0100 Message-ID: Subject: Re: [RFC PATCH] vsprintf: add flag ZEROPAD handling before crng is ready To: Andy Shevchenko Cc: Yang Shunyong , me@tobin.cc, akpm@linux-foundation.org, joe@perches.com, pantelis.antoniou@konsulko.com, mchehab@kernel.org, adobriyan@gmail.com, linux-kernel@vger.kernel.org, yu.zheng@hxt-semitech.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 26 January 2018 at 10:17, Andy Shevchenko wrote: > +Rasmus Thanks. > On Fri, 2018-01-26 at 15:39 +0800, Yang Shunyong wrote: >> Before crng is ready, output of "%p" composes of "(ptrval)" and >> left padding spaces for alignment as no random address can be >> generated. This seems a little strange sometimes. >> For example, when irq domain names are built with "%p", the nodes >> under /sys/kernel/debug/irq/domains like this, >> >> [root@y irq]# ls domains/ >> default irqchip@ (ptrval)-2 >> irqchip@ (ptrval)-4 \_SB_.TCS0.QIC1 \_SB_.TCS0.QIC3 >> irqchip@ (ptrval) irqchip@ (ptrval)-3 >> \_SB_.TCS0.QIC0 \_SB_.TCS0.QIC2 >> >> The name "irqchip@ (ptrval)-2" is not so readable in console >> output. > > Yes, this is not best output. > >> This patch adds ZEROPAD handling in widen_string() and move_right(). >> When ZEROPAD is set in spec, it will use '0' for padding. If not >> set, it will use ' '. >> This patch also sets ZEROPAD in ptr_to_id() before crgn is ready. Yew. > Have you added specific test cases to see what's going on for patterns > like > > printf("%0s\n", " (my string)"); [That's not really relevant, since we'll never have those (gcc says "warning: '0' flag used with =E2=80=98%s=E2=80=99").] >> @@ -1702,6 +1709,8 @@ static char *ptr_to_id(char *buf, char *end, >> void *ptr, struct printf_spec spec) >> >> if (unlikely(!have_filled_random_ptr_key)) { >> spec.field_width =3D default_width; >> + spec.flags |=3D ZEROPAD; >> + >> /* string length must be less than default_width */ >> return string(buf, end, "(ptrval)", spec); >> } So why not just use a string literal with the right width to begin with, e.g. =3D=3D=3D=3D=3D(ptrval)=3D=3D=3D=3D=3D or whatever manual paddin= g left or right seems appropriate. Space-padding is not nice, but 0-padding isn't much better. That way you only affect the uncommon case of %p before have_filled_random_ptr_key instead of adding a few instructions to all %s users. While at it, it may be worth looking into whether the irqdomain output actually needs the @%p thing or if one could improve that instead. Rasmus