Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Work-out what are we spending most of the time in OVMF #50

Open
csegarragonz opened this issue Nov 13, 2023 · 0 comments
Open

Work-out what are we spending most of the time in OVMF #50

csegarragonz opened this issue Nov 13, 2023 · 0 comments

Comments

@csegarragonz
Copy link
Collaborator

csegarragonz commented Nov 13, 2023

According to the plot below, the biggest difference between SEV and non-SEV OVMF boots is in the MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c method.

ovmf_detail

In particular, in these lines of OVMF code..

At first sight, nothing in those lines seems particularly suspicious. Annoyingly, we can not profile any further as the GetPerformanceCounter() method returns zero until we call the AcpiTimerLib constructor as part of ProcessLibraryConstructor at the very end of the linked code block. Thus, we still have no way to further discern where the overheads are coming from.

Note

The ProcessLibraryConstructor method is auto-generated during compilation, and can be found in the ./Build directory.
In my case, the file is located here: Build/AmdSev/RELEASE_GCC5/X64/MdeModulePkg/Core/Dxe/DxeMain/DEBUG/AutoGen.c.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant