From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2607:f8b0:4002:c09::230; helo=mail-yb0-x230.google.com; envelope-from=prabinca4u@gmail.com; receiver=edk2-devel@lists.01.org Received: from mail-yb0-x230.google.com (mail-yb0-x230.google.com [IPv6:2607:f8b0:4002:c09::230]) (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 BBA9F21B02822 for ; Fri, 3 Aug 2018 22:19:53 -0700 (PDT) Received: by mail-yb0-x230.google.com with SMTP id c10-v6so3444726ybf.9 for ; Fri, 03 Aug 2018 22:19:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=HRqelI/eY6i1mlMcuTUPp/bROF6Gfw2L1/7f4pMz1l8=; b=OWkKTIhN5yF2X4BW2NIryPWF6i23zTn7hKFFsRZec1zILGS0M++n4McSAY4s2Rce/D 3Mump7SKKVJ72KiiW9ApvbnXZYezfJJrToxB9XzMQzxXSbHSOIIiRE8AOPsalgkEEpXi W+8K8Wb71llkylUHloJkXUavQkRL1cq6fUoBkPqn6no22GxuU71EgOLbUS6lhV/YY1C5 a+wvlLca6O9+lb+YqobBFgTemU7b349dGqMwAVz259MTPaRKmAJutUK6yHJWIHARAUwG /6PQj0g9H7KjAWQSS4yJxMETwbYenBE3CGmr+rs/iDbLqmkrY5nXsYdpIpQLtkCaeW8Q 0BWg== 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; bh=HRqelI/eY6i1mlMcuTUPp/bROF6Gfw2L1/7f4pMz1l8=; b=AXLWb541UDiaREU1mKRRyAWqRhMOf68pQzH5Rbl2M3IhZadfieGy4piR+hX9/Nb+k+ GZAGdY80VMncCFm95yKrFpUwHUDjPDztbJ5K81NoyUvnqGmkinAhcreiMDgeBNhyZXkI v/znciDYMvNIA4NXkb3TIgRm9nx+OlVJVQu3MuX4Ty75uUeAgfzUGzS5hJ8KNEaXqIn1 C4JB0GVkhKSSmFknzxZDJ1ZEgP4vxEtfGxeT2XXY2l1zzrlhsLzGJYuuvl4NjbwDKImj lT7HMc0BYYDmswwiOVkdeDXfqD7r8gZIY8jxW9ph7Mkb26px9KZ5fekdhFIo+5EUVHuc wDBQ== X-Gm-Message-State: AOUpUlGUB8UQwbEpzbgReDtpPbChtfVazcxDbakrpDrPBTLS/QBA3mgx bOmBUDEkhwVhlIZyJGQzZosQ+Dhc6ram8GyJhWQ= X-Google-Smtp-Source: AAOMgpctB9z0zHMA3UNk8UftKbBNotIMhrl38WIUJtQsqVBqSqOEd3m+QsQwnf+Y1VOyypi9kbbu5wyc0mL++zJZNGs= X-Received: by 2002:a25:5087:: with SMTP id e129-v6mr3370741ybb.14.1533359992895; Fri, 03 Aug 2018 22:19:52 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a25:c341:0:0:0:0:0 with HTTP; Fri, 3 Aug 2018 22:19:52 -0700 (PDT) In-Reply-To: <0A491E19-F3A7-46BF-A4BA-9D54B2D1432E@apple.com> References: <8E875131-258C-4F21-B104-EB36CE970701@gmail.com> <1deaed58-5098-aa30-b401-f415a034957d@redhat.com> <0A491E19-F3A7-46BF-A4BA-9D54B2D1432E@apple.com> From: prabin ca Date: Sat, 4 Aug 2018 10:49:52 +0530 Message-ID: To: Andrew Fish Cc: edk2-devel , Laszlo Ersek X-Content-Filtered-By: Mailman/MimeDel 2.1.27 Subject: Re: PerformancePkg on multiple platform - X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 Aug 2018 05:19:54 -0000 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Andrew, I have already enabled that PCD in my DSC file, because of that its working in some platform. What I'm doing is building my DP.efi and DXE driver from that dsc file and testing it from UEFI shell. thanks for your help as well. On Sat, Aug 4, 2018 at 12:08 AM, Andrew Fish wrote: > Prabin, > > There is a PCD setting to configure performance collection. > > PCDs are defined in the .DEC file and it looks like the default is zero > and that means disabled. > MdePkg/MdePkg.dec > ... > ## The mask is used to control PerformanceLib behavior.

> # BIT0 - Enable Performance Measurement.
> # @Prompt Performance Measurement Property. > # @Expression 0x80000002 | (gEfiMdePkgTokenSpaceGuid. > PcdPerformanceLibraryPropertyMask & 0xFE) =3D=3D 0 > gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyM > ask|0|UINT8|0x00000009 > > If you search the code you will see some platforms enabling performance > measurement in their DSC files. > > /Volumes/Case/UDK2018(vUDK2018)>git grep gEfiMdePkgTokenSpaceGuid. > PcdPerformanceLibraryPropertyMask -- *.dsc > BeagleBoardPkg/BeagleBoardPkg.dsc:272: > *gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask*|1 > EmbeddedPkg/EmbeddedPkg.dsc:175: > *gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask*|0 > QuarkPlatformPkg/Quark.dsc:373: > *gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask*|0x1 > QuarkPlatformPkg/Quark.dsc:376: > *gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask*|0x00 > QuarkPlatformPkg/QuarkMin.dsc:334: > *gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask*|0x1 > QuarkPlatformPkg/QuarkMin.dsc:337: > *gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask*|0x00 > Vlv2TbltDevicePkg/PlatformPkgGccX64.dsc:682: > *gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask*|0x1 > Vlv2TbltDevicePkg/PlatformPkgIA32.dsc:682: > *gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask*|0x1 > Vlv2TbltDevicePkg/PlatformPkgX64.dsc:682: > *gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask*|0x1 > > So I'd check that 1st. If that does not work I recommend > adding -report-file=3Dbuild.log to your build command. You can look at th= e > given driver/app you care about and see what the PCD settings are and whi= ch > instance of the PerformanceLib got linked. > > Thanks, > > Andrew Fish > > On Aug 3, 2018, at 11:17 AM, Laszlo Ersek wrote: > > Hi Prabin, > > On 08/03/18 09:29, prabin ca wrote: > > Hi Team, > > I=E2=80=99m new to uefi and edk. Currently I=E2=80=99m trying to get perf= ormance of my dxe > driver using PerformancePkg of EDK source code. > > I=E2=80=99m using perf_start and perf_end T respected check points, it=E2= =80=99s hot build > and tested well in 2/3 platform. It=E2=80=99s giving proper response. > > But when I=E2=80=99m Checking with multiple platform, in some of platform= s it=E2=80=99s > not working and got hang in uefi she=E2=80=99ll itself. > > Please help me to resolve asap, it will be really helpful. > > > I can only give you some hints, because thus far I have also failed to > figure out how performance measurements should be enabled for a platform > from scratch. > > Earlier I thought that an interested platform should include modules > from PerformancePkg. I got some good results that way; however: > > - it wouldn't work for AARCH64, and so I filed > > > - ultimately PerformancePkg was removed in commit 922c1e94e4bb > completely. (And for that reason I now closed TianoCore#679 as > WONTFIX.) > > Commit 922c1e94e4bb doesn't really give pointers for enabling > performance measurements in a platform -- it refers the user to the DP > shell command instead of the standalone DP application, but that's only > for displaying the stats, not for recording them. > > One document where I found information is the Intel whitepaper > > A Tour Beyond BIOS > Implementing Profiling in with EDK II > > (just google it). "Part III =E2=80=93 Performance Profile" is relevant. > > The first section of that talks about enabling ACPI FPDT (ACPI Firmware > Performance Data Table) support in edk2, for exposing firmware > performance data to the OS. Again, that's not about *recording* the stats= . > > The second section of the same chapter seems to describe how stats can > be recorded however. AIUI, the DXE Core can provide the PERFORMANCE[_EX] > protocols, if the DxeCorePerformanceLib instance is linked into it by > the platform DSC file. In turn DXE modules can send measurements to the > protocol via the PerformanceLib APIs / DxePerformanceLib instance. > > In fact, the relevant library INF files have good documentation, we just > have to know what to look at. > > Recording stats in the PEI phase, via HOBs: > - MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf > > Recording stats in the DXE phase (protocol provider and consumer): > - MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.inf > - MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf > > Recording stats in SMM (protocol provider and consumer): > - MdeModulePkg/Library/SmmCorePerformanceLib/SmmCorePerformanceLib.inf > - MdeModulePkg/Library/SmmPerformanceLib/SmmPerformanceLib.inf > > Fetching the collected stats (for display or otherwise): > - MdeModulePkg/Library/DxeSmmPerformanceLib/DxeSmmPerformanceLib.inf > > "Do nothing" library instance for all module types: > - MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf > > > Now obviously this doesn't explain why it works for you on some > platforms and why it doesn't on others. You haven't shared much > information about the platforms in question. I can make one guess: if > the performance protocol provided by the platform's DXE Core > (DxeCorePerformanceLib) is incompatible with the DxePerformanceLib > instance that is linked into your DXE driver, then communication between > them will likely fail. > > To my understanding, the performance protocol is not standard (PI or > UEFI), so it's likely best if you build your DXE driver together with > the DXE Core, on all platforms that you want to check. It's probably > unsafe to link a DXE driver against DxePerformanceLib (rather than > BasePerformanceLibNull) and run it on a random platform. > > Hopefully this helps a little. > Laszlo > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel > > >