From owner-svn-src-all@freebsd.org Tue Apr 21 08:15:06 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CEBBC2C4216; Tue, 21 Apr 2020 08:15:06 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 495xFQ51m9z3yKD; Tue, 21 Apr 2020 08:15:06 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from venus.codepro.be (venus.codepro.be [5.9.86.228]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mx1.codepro.be", Issuer "Let's Encrypt Authority X3" (verified OK)) (Authenticated sender: kp) by smtp.freebsd.org (Postfix) with ESMTPSA id 8DBD211DC6; Tue, 21 Apr 2020 08:15:06 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: by venus.codepro.be (Postfix, authenticated sender kp) id 1A4571972E; Tue, 21 Apr 2020 10:15:04 +0200 (CEST) From: "Kristof Provost" To: "Kyle Evans" Cc: "Eric van Gyzen" , "Shawn Webb" , "Ronald Klop" , svn-src-head , svn-src-all , src-committers Subject: Re: svn commit: r360068 - in head/sys: kern net sys Date: Tue, 21 Apr 2020 10:15:03 +0200 X-Mailer: MailMate (1.13.1r5671) Message-ID: In-Reply-To: References: <202004180750.03I7oUK6032898@repo.freebsd.org> <67B55A62-848B-4876-8367-DE0D32A8B7D4@FreeBSD.org> <20200419142327.nhotyboqubk3vl2l@mutt-hbsd> <523895fb-7f30-c4ce-78a7-d16b2ff4954c@vangyzen.net> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Apr 2020 08:15:06 -0000 On 21 Apr 2020, at 4:34, Kyle Evans wrote: > On Mon, Apr 20, 2020 at 9:14 PM Kyle Evans wrote: >> >> On Mon, Apr 20, 2020 at 8:15 PM Eric van Gyzen >> wrote: >>> >>>>>>> + sz = asprintf(&buf, M_TEMP, "%s-%s-%s", uuid, if_name(ifp), >>>>>>> + jailname); >>>>>>> + if (sz < 0) { >>>>>>> + /* Fall back to a random mac address. */ >>>>>> >>>>>> >>>>>> I was wondering if it would be valuable to give this fall back >>>>>> something >>>>>> like: >>>>>> >>>>>> printf("%s: unable to create fixed mac address; using >>>>>> random >>>>>> mac address", if_name(ifp)); >>>>>> >>>>>> This will only be printed in rare circumstances. But in that case >>>>>> will >>>>>> provide valuable information. >>>>>> >>>>> That would potentially be valuable, yes. On the other hand, we >>>>> traditionally >>>>> don???t sprinkle a lot of printf()s around in the kernel. This is >>>>> extremely >>>>> unlikely to happen, and if it does odds are attaching the >>>>> interface will >>>>> fail at an earlier or later point, you may struggle to pass >>>>> packets and run >>>>> into any number of other issues. >>>>> It???s also possible to diagnose absent the printf(), because the >>>>> MAC >>>>> address will be locally administered rather than within the >>>>> FreeBSD OUI. >>>>> >>>>> So, in short: not a bad idea. You can argue it both ways, and I >>>>> find myself >>>>> (weakly) on the opposite side. >>>> >>>> Would displaying the message only when verbose boot mode is enabled >>>> be >>>> a suitable compromise? >>> >>> We could completely avoid the problems of dynamic allocation by >>> calling >>> SHA1Update three times, feeding each piece of data separately. >>> >>> For bonus points, use a single char[] to save stack space, too. >>> Maybe >>> use a union, for legibility, and to ensure the proper size without >>> ugly >>> assertions. >>> >> >> To be honest, I'd be more inclined to just revert this part of it and >> push it all back onto the stack. It's still < 512 bytes and pretty >> much always called in short paths because it's generally only used >> during initial creation of some ifnet; I found the concern about the >> stack usage here, specifically, a bit dubious in the first place, and >> this follow-up hasn't left me enjoying it any further. >> > > Sorry, to clarify: I'm also pretty much OK with SHA1Update 3x if I'm > alone in the "don't really care about this particular stack usage" > camp, but I've found it useful that they're currently joined into a > single buffer as I've had occasion to dump it in the past to confirm > my understanding of the pedigree of the output, in case of, e.g., > generated conflicts. For what it’s worth, I’m in your camp: a few hundred bytes of stack use doesn’t matter much here. Straightforward code is more important. Best regards, Kristof