From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=148.163.129.52; helo=dispatch1-us1.ppe-hosted.com; envelope-from=tpilar@solarflare.com; receiver=edk2-devel@lists.01.org Received: from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com [148.163.129.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 1CE45211B85DE for ; Thu, 24 Jan 2019 03:37:52 -0800 (PST) X-Virus-Scanned: Proofpoint Essentials engine Received: from webmail.solarflare.com (webmail.solarflare.com [12.187.104.26]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mx1-us3.ppe-hosted.com (Proofpoint Essentials ESMTP Server) with ESMTPS id A0483B40064; Thu, 24 Jan 2019 11:37:51 +0000 (UTC) Received: from tp-desktop.uk.solarflarecom.com (10.17.20.51) by ocex03.SolarFlarecom.com (10.20.40.36) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Thu, 24 Jan 2019 03:37:48 -0800 To: Laszlo Ersek CC: "edk2-devel@lists.01.org" References: <6029fb15-3820-0f05-f02a-577e99592bbc@solarflare.com> <32137552-e2b0-4392-17c7-dedaa1f05244@redhat.com> <09017041-d418-1186-9942-dfa70d82c4d6@solarflare.com> <67f8fb4a-5e1b-8bbc-90d4-670ff7e3bfe8@redhat.com> From: "Tomas Pilar (tpilar)" Message-ID: <5185c0b2-031f-ec50-b273-2665d83ef38a@solarflare.com> Date: Thu, 24 Jan 2019 11:37:46 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.3.0 MIME-Version: 1.0 In-Reply-To: <67f8fb4a-5e1b-8bbc-90d4-670ff7e3bfe8@redhat.com> X-Originating-IP: [10.17.20.51] X-TM-AS-Product-Ver: SMEX-12.5.0.1300-8.5.1010-24386.005 X-TM-AS-Result: No-17.198300-4.000000-10 X-TMASE-MatchedRID: X4bcv0S75Kk4HKI/yaqRmxes/RxhysDbKx5ICGp/WtGUvX/ci5TjsuEt b6e4qSOWedGRV8OU6yco7e9FyS7hvIxOAnnhEoAzbc297PAGtWYM1avlK0fRE90RkpDbH2neWmr Yr8SaWTU0awD3vJTjRLZ9vTCXSaiT1AbdYN7OvBUwVlHuu99FJ4ygA7LJANpjtK3FOVf6Enutgw bheVZ3LX/DuYdEOTVfU8LmC+vzKVCGaFPdOu7GZ6Yb59qT2vdqTJDl9FKHbrkS+jFO7d+PW5W3Z GXw3kr54VLBIaUstexAKzsv8vij8UutpzAV/3cDdXu122+iJtqRlVjeibTG2lwpnAAvAwazeurt Shx77LxJ5KfLaER90pKHHfbHE9ehlVfZ15nJ5v+eAiCmPx4NwHJnzNw42kCxxEHRux+uk8gVQUm bYHof0Q== X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No X-TMASE-Result: 10--17.198300-4.000000 X-TMASE-Version: SMEX-12.5.0.1300-8.5.1010-24386.005 X-MDID: 1548329872-qDhPPmgQnxTP Subject: Re: Network Stack Budgeting X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 X-List-Received-Date: Thu, 24 Jan 2019 11:37:53 -0000 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Content-Language: en-US Hi Laszlo, > Can you capture a call stack when Snp.Start() is invoked for the very > first time (which, IIUC, is a call that should not happen, in your > opinion)? > Unfortunately I do not have access to the platform firmware itself (I maintain an IHV network driver that's shipped in OptionROMs) and I don't believe a generic stack capture is available in EDK2 yet. However I have comprehensive debug from my driver that shows that our driver gets a DriverBinding.Start() at TPL_APPLICATION and we perform the entire probe at TPL_NOTIFY and as soon as that completes and we drop the TPL, the newly installed SNP gets a Snp.Start() call at TPL_CALLBACK - I assume that MNP or something higher had an event registered that fired as soon as the TPL dropped after the DriverBinding.Start() finished. Here is a snip of the debug log (that I assume will not be of much interest). We don't observe the actual call to DriverBinding.Start() because the debug output is initialised as one of the first things that method does.       1 [sfc]..|INFO: [sfc] Debug  Output Initialised       2 [sfc]..|INFO: Linked list max_size=1000000       3 [sfc]..|SfcDebugLibStart:208 [Not Found]       4 [sfc]..|[0x866D9396<] SfcDebugLibStart:222 [Success]       5 [sfc]..|INFO: Running Solarflare UEFI Driver 2.7.8.5 (f71064c4d0a0) for MEDFORD       6 [sfc]..|INFO: Ctrl=954E4B18 Driver=954E4418 Image=866B0000 Size=0x4D9C0 loaded from Device=954E4B18       7 [sfc]..|INFO: Probing PciDev=942C3118 ... snip ...     376 [sfc]..|INFO: Support strings done     377 [sfc]..|INFO: Hii init on hunt=942A6018 complete     378 [sfc]..|TRACE: Closing the DeferredInit event     379 [sfc]..|INFO: Processed deferred init okay     380 [sfc].|[0x9940F873<] GetSupportedTypes:178 [Success]     381 [sfc]|[0x9D4E1DE8<] DriverBindingStart:211 [Success]     382 [sfc].|INFO: Starting SNP=942A2018     383 [sfc].|[0x99653BA4<] SimpleNetworkStart:33 [Success]     384 [sfc].|INFO: Init snp=942A2018     385 [sfc].|TRACE: INIT: Found netdev=942A5D18     386 [sfc].|INFO: Hunt open netdev=942A5D18     387 [sfc].|INFO: Resetting mcdi=942A6480     388 [sfc].|[Base+0x209E0<] HuntReset:312 [Success]     389 [sfc].|INFO: Allocating vis count=3 on mcdi=942A6480 ... snip ...     491 [sfc].|TRACE: Final state filters=0x942A2018 mcastcnt=7     492 [sfc].|TRACE: Filter Snp=942A2018 Add=0x7 Del=0x18 Reset=0 McastCount=1 List=9400EE98     493 [sfc].|TRACE: Final state filters=0x942A2018 mcastcnt=7     494 [sfc].|TRACE: Filter Snp=942A2018 Add=0x7 Del=0x18 Reset=0 McastCount=2 List=93FB5A98     495 [sfc].|TRACE: Final state filters=0x942A2018 mcastcnt=7     496 [sfc]|TRACE: Name Handle=0x954E4B18 PciDev=942C3118 Child=0x0     497 [sfc]|INFO: STR [*ControllerName]=[Solarflare Adapter 17:00.0]     498 [sfc]|TRACE: Name Handle=0x954E4B18 PciDev=942C3118 Child=0x942A5F98     499 [sfc]|INFO: STR [*ControllerName]=[Solarflare NIC [00:0F:53:4C:A7:A0]]     500 [sfc]..|INFO: [sfc] Debug  Output Initialised     501 [sfc]..|INFO: Linked list max_size=1000000     502 [sfc]..|SfcDebugLibStart:208 [Not Found]     503 [sfc]..|[Base+0x29396<] SfcDebugLibStart:222 [Success]     504 [sfc]..|INFO: Running Solarflare UEFI Driver 2.7.8.5 (f71064c4d0a0) for MEDFORD     505 [sfc]..|INFO: Ctrl=954E3B98 Driver=954E4418 Image=866B0000 Size=0x4D9C0 loaded from Device=954E4B18 ... snip ... --- The dots between [sfc] and | symbol indicate the TPL the operation is being carried out at. No dots mean TPL_APPLICATION, one dot is TPL_CALLBACK etc. You can see that the Snp.Start() on the first device is called before even the second device gets a DriverBinding.Start(). Cheers, Tom