Linux Confidential Computing Development
 help / color / mirror / Atom feed
* [GIT PULL] Trusted Security Manager (TSM) updates for 6.16
@ 2025-05-30  0:59 dan.j.williams
  2025-05-30  1:05 ` dan.j.williams
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: dan.j.williams @ 2025-05-30  0:59 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux-coco, linux-kernel

Hi Linus, please pull from:

  git://git.kernel.org/pub/scm/linux/kernel/git/devsec/tsm tags/tsm-for-6.16

...to receive shared infrastructure updates for confidential computing.
The last time you pulled from tsm.git was back in v6.7 for the
configfs-tsm-report mechanism (5e2cb28dd7e1 ("Merge tag
'tsm-for-6.7'...")). The tree has now moved to a shared devsec/tsm.git
repo. Going forward additional shared infrastructure is anticipated for
the assignment of PCI devices to confidential guests, "PCI Device
Security (devsec)".

This has all appeared in linux-next for a couple weeks and identified
some issues in my merge commit over the rename. All resolved now, with
no new reports to my knowledge.

---

The following changes since commit 92a09c47464d040866cf2b4cd052bc60555185fb:

  Linux 6.15-rc5 (2025-05-04 13:55:04 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/devsec/tsm tags/tsm-for-6.16

for you to fetch changes up to 9d948b8804096d940022b1a3c483a5beb8b46574:

  Merge branch 'for-6.16/tsm-mr' into tsm-next (2025-05-13 11:28:25 -0700)

----------------------------------------------------------------
tsm for 6.16

- Add a general sysfs scheme for publishing "Measurement" values
  provided by the architecture's TEE Security Manager. Use it to publish
  TDX "Runtime Measurement Registers" ("RTMRs") that either maintain a
  hash of stored values (similar to a TPM PCR) or provide statically
  provisioned data.  These measurements are validated by a relying party.

- Reorganize the drivers/virt/coco/ directory for "host" and "guest"
  shared infrastructure.

- Fix a configfs-tsm-report unregister bug

- With CONFIG_TSM_MEASUREMENTS joining CONFIG_TSM_REPORTS and in
  anticipation of more shared "TSM" infrastructure arriving, rename the
  maintainer entry to "TRUSTED SECURITY MODULE (TSM) INFRASTRUCTURE".

----------------------------------------------------------------
Cedric Xing (9):
      tsm-mr: Add TVM Measurement Register support
      tsm-mr: Add tsm-mr sample code
      x86/tdx: Add tdx_mcall_extend_rtmr() interface
      x86/tdx: tdx_mcall_get_report0: Return -EBUSY on TDCALL_OPERAND_BUSY error
      virt: tdx-guest: Expose TDX MRs as sysfs attributes
      virt: tdx-guest: Refactor and streamline TDREPORT generation
      virt: tdx-guest: Transition to scoped_cond_guard for mutex operations
      sample/tsm-mr: Fix missing static for sample_report
      tsm-mr: Fix init breakage after bin_attrs constification by scoping non-const pointers to init phase

Dan Williams (6):
      configfs-tsm: Namespace TSM report symbols
      coco/guest: Move shared guest CC infrastructure to drivers/virt/coco/guest/
      configfs-tsm-report: Fix NULL dereference of tsm_ops
      Merge branch 'for-6.16/tsm' into tsm-next
      Merge branch 'for-6.16/tsm-mr' into tsm-next
      Merge branch 'for-6.16/tsm-mr' into tsm-next

 .../testing/{configfs-tsm => configfs-tsm-report}  |   0
 .../testing/sysfs-devices-virtual-misc-tdx_guest   |  63 +++++
 Documentation/driver-api/coco/index.rst            |  12 +
 .../driver-api/coco/measurement-registers.rst      |  12 +
 Documentation/driver-api/index.rst                 |   1 +
 MAINTAINERS                                        |  11 +-
 arch/x86/coco/tdx/tdx.c                            |  50 +++-
 arch/x86/include/asm/shared/tdx.h                  |   1 +
 arch/x86/include/asm/tdx.h                         |   2 +
 drivers/virt/coco/Kconfig                          |   6 +-
 drivers/virt/coco/Makefile                         |   2 +-
 drivers/virt/coco/arm-cca-guest/arm-cca-guest.c    |   8 +-
 drivers/virt/coco/guest/Kconfig                    |  17 ++
 drivers/virt/coco/guest/Makefile                   |   4 +
 drivers/virt/coco/{tsm.c => guest/report.c}        |  63 +++--
 drivers/virt/coco/guest/tsm-mr.c                   | 251 ++++++++++++++++++++
 drivers/virt/coco/sev-guest/sev-guest.c            |  12 +-
 drivers/virt/coco/tdx-guest/Kconfig                |   1 +
 drivers/virt/coco/tdx-guest/tdx-guest.c            | 259 ++++++++++++++-------
 include/linux/tsm-mr.h                             |  89 +++++++
 include/linux/tsm.h                                |  22 +-
 include/trace/events/tsm_mr.h                      |  80 +++++++
 samples/Kconfig                                    |  11 +
 samples/Makefile                                   |   1 +
 samples/tsm-mr/Makefile                            |   2 +
 samples/tsm-mr/tsm_mr_sample.c                     | 131 +++++++++++
 26 files changed, 974 insertions(+), 137 deletions(-)
 rename Documentation/ABI/testing/{configfs-tsm => configfs-tsm-report} (100%)
 create mode 100644 Documentation/ABI/testing/sysfs-devices-virtual-misc-tdx_guest
 create mode 100644 Documentation/driver-api/coco/index.rst
 create mode 100644 Documentation/driver-api/coco/measurement-registers.rst
 create mode 100644 drivers/virt/coco/guest/Kconfig
 create mode 100644 drivers/virt/coco/guest/Makefile
 rename drivers/virt/coco/{tsm.c => guest/report.c} (89%)
 create mode 100644 drivers/virt/coco/guest/tsm-mr.c
 create mode 100644 include/linux/tsm-mr.h
 create mode 100644 include/trace/events/tsm_mr.h
 create mode 100644 samples/tsm-mr/Makefile
 create mode 100644 samples/tsm-mr/tsm_mr_sample.c

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [GIT PULL] Trusted Security Manager (TSM) updates for 6.16
  2025-05-30  0:59 [GIT PULL] Trusted Security Manager (TSM) updates for 6.16 dan.j.williams
@ 2025-05-30  1:05 ` dan.j.williams
  2025-05-30  4:34 ` Linus Torvalds
  2025-05-30  5:25 ` pr-tracker-bot
  2 siblings, 0 replies; 5+ messages in thread
From: dan.j.williams @ 2025-05-30  1:05 UTC (permalink / raw)
  To: dan.j.williams, Linus Torvalds; +Cc: linux-coco, linux-kernel

dan.j.williams@ wrote:
> Hi Linus, please pull from:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/devsec/tsm tags/tsm-for-6.16
[..]
> ----------------------------------------------------------------
> tsm for 6.16
> 
> - Add a general sysfs scheme for publishing "Measurement" values
>   provided by the architecture's TEE Security Manager. Use it to publish
>   TDX "Runtime Measurement Registers" ("RTMRs") that either maintain a
>   hash of stored values (similar to a TPM PCR) or provide statically
>   provisioned data.  These measurements are validated by a relying party.

Note that I meant to include tags that arrived after I cut the branch.
This work is:

Tested-by: Mikko Ylinen <mikko.ylinen@linux.intel.com>
https://lore.kernel.org/linux-coco/aCWoPWMjg9rX2qPl@himmelriiki/

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [GIT PULL] Trusted Security Manager (TSM) updates for 6.16
  2025-05-30  0:59 [GIT PULL] Trusted Security Manager (TSM) updates for 6.16 dan.j.williams
  2025-05-30  1:05 ` dan.j.williams
@ 2025-05-30  4:34 ` Linus Torvalds
  2025-05-30  6:23   ` Dan Williams
  2025-05-30  5:25 ` pr-tracker-bot
  2 siblings, 1 reply; 5+ messages in thread
From: Linus Torvalds @ 2025-05-30  4:34 UTC (permalink / raw)
  To: dan.j.williams; +Cc: linux-coco, linux-kernel

On Thu, 29 May 2025 at 17:59, <dan.j.williams@intel.com> wrote:
>
> ...to receive shared infrastructure updates for confidential computing.

Do we have a sane name for this? The pull request calls it "TSM" and
writes it out as "trusted security manager", your intro calls it
"shared infrastructure updates for confidential computing", and the
MAINTAINER entry calls it "trusted security module" (note the
different word for the 'M').

Making things even worse, Intel also uses "TSM", but in Intel docs,
the "T" stands not for "Trusted", but for "TEE", which in turn is a
recursive TLA meaning "Trusted Execution Environment".

Yes, I've complained about odd TLA's before, but TSM really takes the
odd to a new level.

I've pulled this, and I've used "TSM" in the pull message, but I
really think this TLA disease needs to end.

Let's have a rule that TLA's are ok _only_ for things that

 (a) go back at least four decades

 (b) have a basically unambiguous meaning in the industry (let's
ignore IBM that made up their own naming)

 (c) when you google them, they give relevant results

So, for example, talking about a "TLB" entry is ok by all three rules,
and a TTY is similarly not a bad word.

"TSM" fulfills _none_ of these.

Please? I know you work for Intel and you probably signed some
paperwork saying that a certain percentage of words you use have to be
TLA's, but please ... We can do better.

              Linus

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [GIT PULL] Trusted Security Manager (TSM) updates for 6.16
  2025-05-30  0:59 [GIT PULL] Trusted Security Manager (TSM) updates for 6.16 dan.j.williams
  2025-05-30  1:05 ` dan.j.williams
  2025-05-30  4:34 ` Linus Torvalds
@ 2025-05-30  5:25 ` pr-tracker-bot
  2 siblings, 0 replies; 5+ messages in thread
From: pr-tracker-bot @ 2025-05-30  5:25 UTC (permalink / raw)
  To: dan.j.williams; +Cc: Linus Torvalds, linux-coco, linux-kernel

The pull request you sent on Thu, 29 May 2025 17:59:14 -0700:

> git://git.kernel.org/pub/scm/linux/kernel/git/devsec/tsm tags/tsm-for-6.16

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/ae5ec8adb8ec9c2aa916f853737c101faa87e5ba

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [GIT PULL] Trusted Security Manager (TSM) updates for 6.16
  2025-05-30  4:34 ` Linus Torvalds
@ 2025-05-30  6:23   ` Dan Williams
  0 siblings, 0 replies; 5+ messages in thread
From: Dan Williams @ 2025-05-30  6:23 UTC (permalink / raw)
  To: Linus Torvalds, dan.j.williams; +Cc: linux-coco, linux-kernel

Linus Torvalds wrote:
> On Thu, 29 May 2025 at 17:59, <dan.j.williams@intel.com> wrote:
> >
> > ...to receive shared infrastructure updates for confidential computing.
> 
> Do we have a sane name for this? The pull request calls it "TSM" and
> writes it out as "trusted security manager", your intro calls it
> "shared infrastructure updates for confidential computing", and the
> MAINTAINER entry calls it "trusted security module" (note the
> different word for the 'M').
> 
> Making things even worse, Intel also uses "TSM", but in Intel docs,
> the "T" stands not for "Trusted", but for "TEE", which in turn is a
> recursive TLA meaning "Trusted Execution Environment".
> 
> Yes, I've complained about odd TLA's before, but TSM really takes the
> odd to a new level.
> 
> I've pulled this, and I've used "TSM" in the pull message, but I
> really think this TLA disease needs to end.
> 
> Let's have a rule that TLA's are ok _only_ for things that
> 
>  (a) go back at least four decades
> 
>  (b) have a basically unambiguous meaning in the industry (let's
> ignore IBM that made up their own naming)
> 
>  (c) when you google them, they give relevant results
> 
> So, for example, talking about a "TLB" entry is ok by all three rules,
> and a TTY is similarly not a bad word.
> 
> "TSM" fulfills _none_ of these.
> 
> Please? I know you work for Intel and you probably signed some
> paperwork saying that a certain percentage of words you use have to be
> TLA's, but please ... We can do better.

Intel TLA disease is real.

Also, it is funny, in a sad way, because some of these patches
originated in a series where I spend some paragraphs explaining the
absolute silliness of the acronym soup in this space [1], but then here
failed to respect that "TSM" continues to be close to useless as search
engines fail to find it.

I note that "TSM" is used in the new "security protocol" sections of the
PCIe specification. However, that specification being a members-only
accessible document does not help at all with the discoverability
problem.

Suffice to say "TSM" is the term the PCIe specifications ascribes to all
of the various architecture specific firmware/firmware-ish modules
(Intel TDX, AMD SEV, RISC-V COVE, ARM CCA...) that can touch the "secure
world" of the platform. I.e. setup confidential memory MMU or IOMMU
ptes, and talk the PCIe protocols to setup link encryption between host
bridges and Endpoints.

...but unless and until that becomes wider knowledge I agree that it
should be spelled out with references to where the heck it comes from
and quick reminder of what it is [2].

[1]: https://lore.kernel.org/all/173343739517.1074769.13134786548545925484.stgit@dwillia2-xfh.jf.intel.com/

[2]: PCIe r6.2 Section 11:
     "The TEE Security Manager (TSM) is a logical entity in a host that
      is in the Trusted Computing Base (TCB) for a Trusted Execution
      Environment Virtual Machine (TVM) and enforces security policies
      on the host."

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2025-05-30  6:24 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-30  0:59 [GIT PULL] Trusted Security Manager (TSM) updates for 6.16 dan.j.williams
2025-05-30  1:05 ` dan.j.williams
2025-05-30  4:34 ` Linus Torvalds
2025-05-30  6:23   ` Dan Williams
2025-05-30  5:25 ` pr-tracker-bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox