From: "Jarkko Sakkinen" <jarkko@kernel.org>
To: "Roberto Sassu" <roberto.sassu@huaweicloud.com>,
"James Bottomley" <James.Bottomley@HansenPartnership.com>,
"Linux regressions mailing list" <regressions@lists.linux.dev>
Cc: <keyrings@vger.kernel.org>,
"linux-integrity@vger.kernel.org"
<linux-integrity@vger.kernel.org>,
"LKML" <linux-kernel@vger.kernel.org>,
"Pengyu Ma" <mapengyu@gmail.com>
Subject: Re: [regression] significant delays when secureboot is enabled since 6.10
Date: Sun, 15 Sep 2024 12:43:35 +0300 [thread overview]
Message-ID: <D46RE2BWMGJ4.25VA7IVYTJ8MO@kernel.org> (raw)
In-Reply-To: <7e47f97aede88b87fbb9c9284db2005764bfbedd.camel@huaweicloud.com>
On Thu Sep 12, 2024 at 11:13 AM EEST, Roberto Sassu wrote:
> @[
> tpm_transmit_cmd+50
> tpm2_load_context+161
> tpm2_start_auth_session+98
> tpm2_pcr_extend+39
> tpm_pcr_extend+221
> ima_add_template_entry+437
> ima_store_template+114
> ima_store_measurement+209
> process_measurement+2473
> ima_file_check+82
> security_file_post_open+92
> path_openat+550
> do_filp_open+171
> do_sys_openat2+186
> do_sys_open+76
> __x64_sys_openat+35
> x64_sys_call+9589
> do_syscall_64+96
> entry_SYSCALL_64_after_hwframe+118
> ,
> 0x7f03ea0ade55
> 0x55f929b7dac2
> 0x7f03e9fd4b8a
> 0x7f03e9fd4c4b
> 0x55f929b7e9b5
> , cat]: 35928108
> @[
> tpm_transmit_cmd+50
> tpm2_start_auth_session+650
> tpm2_pcr_extend+39
> tpm_pcr_extend+221
> ima_add_template_entry+437
> ima_store_template+114
> ima_store_measurement+209
> process_measurement+2473
> ima_file_check+82
> security_file_post_open+92
> path_openat+550
> do_filp_open+171
> do_sys_openat2+186
> do_sys_open+76
> __x64_sys_openat+35
> x64_sys_call+9589
> do_syscall_64+96
> entry_SYSCALL_64_after_hwframe+118
> ,
> 0x7f03ea0ade55
> 0x55f929b7dac2
> 0x7f03e9fd4b8a
> 0x7f03e9fd4c4b
> 0x55f929b7e9b5
> , cat]: 84616611
These commands and TPM2_CreatePrimary are the ones that give overhead
to the AMD boot-up:
1. TPM2_LoadContext (35 ms)
2. TPM2_StartAuthSession (85 ms)
We can conclude that the implementation is too slow and making it faster
requires a whole set of small improvements. From this basis the only
right fix is to make it opt-in kernel command-line option.
That will give space to make small performance improvements over time,
and not rush. How the session is orchestrated is not production quality,
and the bug gives direct evidence of that.
High-level improvements that could be done over time:
- Do not call start_auth_session() in extend and get_random().
Orchestrate outside.
- Find places to not close and open session sequentially, e.g.
with the help of use SA_CONTINUE_SESSION.
When it comes to boot we should aim for one single start_auth_session
during boot, i.e. different phases would leave that session open so
that we don't have to load the context every single time. I think it
should be doable.
Making all this happen is not a "performance regression fix". It is
set of gradual improvements to the code that is not there yet
On plus side, the kernel command-line option allows the enable the
feature by default during compilation time for all architectures.
I've made my decision on this and will submit a fix for it.
BR, Jarkko
next prev parent reply other threads:[~2024-09-15 9:43 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-10 9:01 [regression] significant delays when secureboot is enabled since 6.10 Linux regression tracking (Thorsten Leemhuis)
2024-09-10 9:05 ` Roberto Sassu
2024-09-10 12:39 ` Jarkko Sakkinen
2024-09-10 12:48 ` Jarkko Sakkinen
2024-09-10 12:57 ` James Bottomley
2024-09-10 13:28 ` Jarkko Sakkinen
2024-09-11 8:53 ` Roberto Sassu
2024-09-11 12:21 ` James Bottomley
2024-09-12 13:16 ` Jarkko Sakkinen
2024-09-12 13:26 ` James Bottomley
2024-09-12 13:36 ` Roberto Sassu
2024-09-12 14:13 ` James Bottomley
2024-09-12 14:52 ` Roberto Sassu
2024-09-12 14:26 ` Jarkko Sakkinen
2024-09-14 10:42 ` Jarkko Sakkinen
2024-09-14 10:51 ` Jarkko Sakkinen
2024-09-14 10:58 ` Jarkko Sakkinen
2024-09-11 15:14 ` Jarkko Sakkinen
2024-09-12 8:13 ` Roberto Sassu
2024-09-12 14:23 ` Jarkko Sakkinen
2024-09-13 20:50 ` Jarkko Sakkinen
2024-09-13 22:06 ` Jarkko Sakkinen
2024-09-15 9:43 ` Jarkko Sakkinen [this message]
2024-09-15 10:07 ` Jarkko Sakkinen
2024-09-15 13:59 ` James Bottomley
2024-09-15 14:50 ` Jarkko Sakkinen
2024-09-15 14:55 ` Jarkko Sakkinen
2024-09-15 15:00 ` James Bottomley
2024-09-15 16:22 ` Jarkko Sakkinen
2024-09-21 15:40 ` Jarkko Sakkinen
2024-09-22 14:11 ` Jarkko Sakkinen
2024-09-10 12:22 ` James Bottomley
2024-09-10 12:41 ` Linux regression tracking (Thorsten Leemhuis)
2024-09-10 22:40 ` Jarkko Sakkinen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=D46RE2BWMGJ4.25VA7IVYTJ8MO@kernel.org \
--to=jarkko@kernel.org \
--cc=James.Bottomley@HansenPartnership.com \
--cc=keyrings@vger.kernel.org \
--cc=linux-integrity@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mapengyu@gmail.com \
--cc=regressions@lists.linux.dev \
--cc=roberto.sassu@huaweicloud.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox