From: Jiri Pirko <jiri@resnulli.us>
To: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Cc: linux-coco@lists.linux.dev, linux-kernel@vger.kernel.org,
linux-api@vger.kernel.org, x86@kernel.org, kvm@vger.kernel.org,
linux-doc@vger.kernel.org, jgg@ziepe.ca,
david.quigley@intel.com, lukas@wunner.de, ksinyuk@kernel.org,
rodrigo.vivi@intel.com, cedric.xing@intel.com, sameo@meta.com,
drdeeglaze@gmail.com, James.Bottomley@hansenpartnership.com,
aik@amd.com, jpiotrowski@nvidia.com, qinkun@google.com,
pgonda@google.com, jic23@kernel.org, alistair.francis@wdc.com,
ankita@nvidia.com, suzuki.poulose@arm.com, kas@kernel.org,
rick.p.edgecombe@intel.com, elena.reshetova@intel.com,
dave.hansen@linux.intel.com,
sathyanarayanan.kuppuswamy@linux.intel.com,
peter.fang@intel.com
Subject: Re: [PATCH RFC 00/20] attestation: Add a common subsystem and TDX support
Date: Tue, 3 Nov 2026 11:10:00 +0100 [thread overview]
Message-ID: <aumpp4VptzmasuX8@FV6GYCPJ69> (raw)
In-Reply-To: <auOT1UwdNt67XfTq@MjU3Nj>
Thu, Oct 29, 2026 at 07:43:33PM +0100, sergii.dmytruk@3mdeb.com wrote:
>On Thu, Oct 15, 2026 at 04:50:33PM +0200, Jiri Pirko wrote:
>> From: Jiri Pirko <jiri@nvidia.com>
[..]
>
>Hi,
>
>I have no say in kernel development and wasn't trying to do a proper
>review of the changes (was mostly understanding them with regard to
>DRTM), so take my comments with a grain of salt, but I do think most of
>them are valid. I also get this is an RFC/PoC type of thing and
They are, thanks for the careful read.
>sometimes generalizing from multiple locations, those types of comments
>do not apply to all instances and specify a general direction that seems
>helpful.
>
>Overall impression
>------------------
>
>I was surprised to find that 80% of the changes in an attestation RFC
>are about a new kernel interface, which is also proposed as a potential
>future API for many other things. The cover letter mentions it, but
>doesn't do justice to its scale: YAML specifications, code generation,
>serialization, deserialization, actions, events, etc. Things like
>CORBA, COM, or D-Bus come to mind, even though they are different in
>many ways.
>
Fair, CTLV is the bigger part (with the generator and generated files
too), and it is meant to be general, with attestation as its first user.
It is closer to netlink than to an RPC system though: no objects,
proxies or daemon, just a device fd, one ioctl, and messages the kernel
checks against the family's schema before the driver sees them.
Ment to be easy to use and error prone as much as possible.
RFCv2 will be smaller too: it will leave out the events and the
MR journal as well.
>I feel that something this size needs to be motivated more thoroughly:
>
>1. State goals of what an interface aims to achieve, why it can't be
> done with existing measures, or how bad it would look when using only
> what's already there.
>
> This is mentioned briefly in the cover letter and has surfaced in
> various responses, but it should be stated explicitly given the
> objective of proposing a long-term interface.
>
>2. Maybe try defining conditions where CTLV is applicable and when it
> doesn't make sense.
>
> I saw changes to this effect in replies, but it could be done more
> systematically and compare CTLV against existing alternatives to show
> where it fits among them.
Agreed, RFCv2's CTLV doc and cover letter will open with that.
>
>3. Specify elements of the design (e.g., schema, actions, events, a tree
> of attributes, a single `ioctl()` operation) and how they serve the
> stated goals.
>
> For example, what use cases are enabled by partial responses?
Will do.
>
>4. Explain how the elements are to be represented, produced, and
> consumed.
>
> That is, the actual tree structure, information about padding,
> generation of the boilerplate, what parts are to be provided by the
> programmer, etc. This is what existing documentation contains,
> although not very structured.
Okay.
>
>5. Possibilities of future extensions (compatible and not).
>
> I haven't noticed versioning, but suspect that a different `ioctl()`
> could be used. Types or fields can be added and ignored or can fail
> parsing if unrecognized, but this has its limits. The stance on such
> changes should be documented, so it's clear what one might expect
> going forward.
There are no versions, on purpose. The ioctl struct carries its size
and grows only at its end. A family grows by new ops and
new optional fields: an old program skips what a newer kernel
adds to a reply, a newer program marks what an older kernel may skip in
a request, and op-schema-get tells it which fields the kernel acts on.
Anything incompatible is a new op. Each family also has a checked-in
ABI snapshot, so a uAPI change is a visible change of that file, and
the checker refuses removing anything, narrowing a bound or making a
field required.
>
>Having experience with parsing and producing TPM commands and event
>logs, I understand the motivation for CTLV and see how it can remove the
>most unpleasant parts of dealing with data of this sort. However, the
>machinery necessary on both kernel- and user-space sides is quite
>elaborate. It can end up making even trivial interactions hard (try
>using `dbus-send` to retrieve some information or see its C API to get
>what I mean). That's why I feel like the motivational part is very much
For a trivial interaction there is ctlvctl, which needs no generated
code, only the family's YAML for the names; the cover letter has a few.
In RFCv2, reading an MR will be:
ctlvctl query /dev/attestation/attestation0 mr-read id=1
with CTLV_SPEC_DIR pointing at Documentation/ctlv/specs.
>lacking here. Describing the approach in terms of goals and how they
>are fulfilled is also partially aimed at making it easier to assess
>applicability of CTLV to other subsystems by reviewers.
>
>CTLV specification
>------------------
>
>The schema description is machine-oriented and is hard to use for
>humans. At some point, a textual version will be needed, if only to
>introduce the most commonly used subset. It has already been mentioned
>that names of attributes aren't descriptive enough, and comments or some
>kind of embedded help would be nice to see.
>
>"attr-groups" vs. "attr-sets" confusion has also been mentioned.
>Knowing that groups are part of IDs helps, but doesn't make it much
>easier to read ("groups" and "sets" don't suggest different levels in a
>hierarchy).
Agreed, that design is unfortunate. I was attached to the netlink and
netlink yaml too much. But RFCv2 will have the YAML in the layout
Jason suggested on 11/20. Groups and sets will be gone: a spec will
have records and ops, each op the tree of its request and reply, and
the comment above an item will be its doc, in the uapi header and the
rendered docs too:
# One MR's values, and the MR generation they belong to.
mr-read:
type: query
fd-access: read
optional: true
suggested-reply-length: 4K
request:
id: uint(..u32-max)
device-generation?: record
options?: extension mr-options
reply:
device-generation: record
mr-generation: record
mr-values: record
The generator will also print each op as a call, and RFCv2's cover
letter will list them so:
mr-read(id, device-generation?, options?: mr-options) ->
{ device-generation, mr-generation, mr-values[23]: mr-value }
>
>Documentation and comments
>--------------------------
>
>Right now, it mostly covers implementation details rather than concepts
>and how they fit together. This makes it hard to review the changes, as
>the reviewer needs to discern high-level stuff from the code to assess
>that code. Having a more abstract description that's also mapped to a
>particular representation would allow checking the overall design and
>more fine-grained details.
Right, intention is to change it in RFCv2.
>
>There is also not much information about how the user-space is expected
>to use this (i.e., encode and decode structures). I suppose there is a
>user-space library for that (saw `libctlv` mentioned), but the kernel
>part isn't complete without giving an idea of how it's expected to be
>used.
>
>I was trying to compensate for the lack of documentation by reading some
>comments, but many that I've seen (excluding comments on functions or
>structures, those were sensible) restate what the code is doing or
>repeat other comments. Some others seem to say something important, but
>do not place it in the context necessary to understand the statement,
>and thus do not fulfill the purpose of explaining the code (i.e., why
>it's written in a specific way). It's worth revisiting them in some
>future version.
Okay.
>
>Code
>----
>
>Quite a lot of functions are comprised of two blocks of lines with no
>newlines or comments within them: declarations and the rest. That's
>fine if the body is small or uniform, but larger functions often have
>identifiable steps with conditions and loops. I'm not saying those
>should always be extracted as helper functions, but some kind of visual
>structure helps to understand the code. Given that there are many
>thousands of lines in here, that seems like a desirable property for
>review as well.
>
>Terminology
>-----------
>
>It may be just me, but I found some of it rather confusing, and the
>absence of a glossary didn't help.
>
>It took a while to figure out that "family" means a single-instance
>class-like construct (data, methods, inheritance with virtual methods).
>I also initially thought that "nest" meant a subtree, but it seems to
>apply to a top-level tree as well, so it's actually just a tree called
Yeah, confusing a bit, agreed. Will change to "records" in RFCv2.
>differently (why?). "stub" also looked weird, but that can be remedied
>by documenting it better; not sure if there is a better word.
In RFCv2 the stub will go, and the YAML will name the extension point
directly: "info: extension device-info".
>
>Other terms seemed just weird, like "file description" instead of "file
>descriptor", mentioning of "wire" and "physical something" (no wire
>transmissions and nothing physical here). Still unsure what "placement"
>means in various places.
Right, will check those.
>
>If the terms come from netlink, their use needs to be explained here
>too, or the reader needs to be referred to the relevant netlink's
>documentation, if borrowing of the terms is intentional and meant to
>stay.
Agreed.
>
>TPM event log and MR log
>------------------------
>
>I know this will be dropped from this series, but it's still relevant to
>keep in mind and will return at some point anyway.
>
>What about measurements taken outside of the kernel? I've seen the
>discussion about extensions done in parallel, with the likely outcome of
>not handling this in any way. But there are also measurements done
>before the kernel has started, for both SRTM and DRTM cases. A way to
>import measurements is needed. Am I correct that nothing should prevent
>doing it later?
Correct. The MR values are the hardware's, so they already hold what
firmware extended; what is missing is the kernel's record of it, and
RFCv2 will leave the journal out. An import will belong to the series
that brings the journal back, as an op or a provider callback, and
adding either is compatible.
>
>DRTM perspective
>----------------
>
>While there is no TPM/DRTM attestation provider yet, an RFC seems like a
>good place to make sure this can be accounted for by the final design.
>
>All the crucial measurements happen before running the kernel and then
>by the kernel. The interesting operations in the user-space are
>obtaining the log and having the ability to replay it. Also, locality
>change can block further PCR updates, so the user-space part doesn't
>seem to be that important for this use case.
>
>Linux currently doesn't extend the PCR measurements it makes to the
>event log, so misalignment of the PCRs and the log won't be something
>new. However, if there is a log, it should be correct at least before
>any user-space measurements are taken (IMA breaks this for PCR-10, but
>would be nice to avoid this for DRTM or similarly limit the effects to a
>specific PCR). Again, relinquishing locality can be the answer here,
>and I suppose that an attestation provider can handle that on its side.
Yes. Each MR says whether it may be extended, and the core refuses
mr-extend on one that may not, so a provider can keep the DRTM PCRs out
of userspace's reach.
>
>Some of the replies suggest the intention for the kernel to do
>measurements using the attestation subsystem. Combined with importing
>measurements, this seems to be enough to cover the needs of DRTM in
>terms of data.
>
>What remains is whether postponing extending PCRs until attestation is
>online is considered acceptable and by how much they get postponed
>compared to doing it early. In principle, delaying extending the
>measurements isn't all that new. coreboot does exactly that on a lot of
>boards, assuming that nothing will mess with its log until devices are
>initialized. DRTM is supposed to enter DLME in an isolated state, so it
>may as well rely on it. However, what does the use of this attestation
>subsystem actually buy the kernel for the DRTM case? And are there
>reasons for all DRTM implementations to extend PCRs at the same point if
>some can do it earlier?
Nothing here makes DRTM extend later. What has to be measured before
the subsystem is up, at module_initcall(), can be measured as it is
today, and how early a TPM provider takes over is for the TPM series.
For DRTM's own measurements the subsystem buys little. What it gives is
the rest: userspace would read the PCRs, get a quote and fetch the logs
the same way on a TPM as on TDX, and later, kernel users such as IMA
would extend through one API whatever the root of trust. And no, I see
no reason for all implementations to extend at the same point.
>
>Also, is the attestation log expected to be the way of publishing the
>DRTM log? That may make consuming it more difficult due to requiring
>CTLV-specific tooling. A TPM2.0 event log requires its own tooling, but
>it's the same format SRTM uses.
No. In RFCv2, evidence objects will carry logs in their own formats:
TDX will return the CCEL as an event-log object, the bytes as firmware
wrote them, and a DRTM log would be one in its TCG format, read with
the tools that already parse it.
[..]
prev parent reply other threads:[~2026-11-03 10:10 UTC|newest]
Thread overview: 179+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-15 14:50 Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 01/20] ctlv: Add the schema language and generator Jiri Pirko
2026-10-20 22:31 ` Jonathan Cameron
2026-10-21 13:23 ` Jiri Pirko
2026-10-27 8:34 ` Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 02/20] ctlv: Add the UAPI wire format and family API Jiri Pirko
2026-10-19 23:29 ` Jason Gunthorpe
2026-10-20 12:26 ` Jiri Pirko
2026-10-20 23:00 ` Jonathan Cameron
2026-10-20 23:39 ` Jonathan Cameron
2026-10-21 13:54 ` Jiri Pirko
2026-10-26 18:55 ` Yeoreum Yun
2026-10-27 8:02 ` Jiri Pirko
2026-10-27 14:15 ` Jason Gunthorpe
2026-10-27 14:48 ` Yeoreum Yun
2026-10-27 15:17 ` Jason Gunthorpe
2026-10-27 15:55 ` Yeoreum Yun
2026-10-15 14:50 ` [PATCH RFC 03/20] ctlv: Add the root family specification and generated files Jiri Pirko
2026-10-19 23:29 ` Jason Gunthorpe
2026-10-20 12:28 ` Jiri Pirko
2026-10-20 12:55 ` Jason Gunthorpe
2026-10-20 14:07 ` Jiri Pirko
2026-10-20 23:30 ` Jonathan Cameron
2026-10-21 16:25 ` Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 04/20] Documentation: ctlv: Add userspace ABI Jiri Pirko
2026-10-19 23:29 ` Jason Gunthorpe
2026-10-20 14:06 ` Jiri Pirko
2026-10-21 0:11 ` Jonathan Cameron
2026-10-22 9:01 ` Jiri Pirko
2026-10-23 19:23 ` Jonathan Cameron
2026-10-29 18:53 ` Sergii Dmytruk
2026-11-03 10:30 ` Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 05/20] ctlv: Prepare message input handling Jiri Pirko
2026-10-21 0:43 ` Jonathan Cameron
2026-10-22 8:27 ` Jiri Pirko
2026-10-22 18:39 ` Jason Gunthorpe
2026-10-23 12:55 ` Jiri Pirko
2026-10-26 14:07 ` Jason Gunthorpe
2026-10-27 10:17 ` Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 06/20] ctlv: Prepare blob descriptor validation Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 07/20] ctlv: Prepare schema validation Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 08/20] ctlv: Prepare message output handling Jiri Pirko
2026-10-26 14:07 ` Jason Gunthorpe
2026-11-02 19:19 ` Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 09/20] ctlv: Prepare VA blob handling Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 10/20] ctlv: Prepare event queue support Jiri Pirko
2026-10-21 1:12 ` Jonathan Cameron
2026-10-22 9:04 ` Jiri Pirko
2026-10-26 14:07 ` Jason Gunthorpe
2026-10-26 14:45 ` Jiri Pirko
2026-10-27 12:38 ` Yeoreum Yun
2026-11-02 12:49 ` Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 11/20] ctlv: Prepare runtime introspection Jiri Pirko
2026-10-26 14:07 ` Jason Gunthorpe
2026-10-26 14:52 ` Jiri Pirko
2026-10-26 16:12 ` Jason Gunthorpe
2026-10-30 9:40 ` Jiri Pirko
2026-10-27 10:21 ` Jiri Pirko
2026-10-30 9:53 ` Jiri Pirko
2026-11-03 1:05 ` Jason Gunthorpe
2026-11-03 9:29 ` Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 12/20] ctlv: Add device and operation dispatch Jiri Pirko
2026-10-21 1:25 ` Jonathan Cameron
2026-10-22 9:05 ` Jiri Pirko
2026-10-22 18:43 ` Jason Gunthorpe
2026-10-23 12:58 ` Jiri Pirko
2026-10-23 14:26 ` Jason Gunthorpe
2026-10-26 13:48 ` Jiri Pirko
2026-10-26 14:07 ` Jason Gunthorpe
2026-10-27 13:38 ` Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 13/20] Documentation: ctlv: Describe how to write a family Jiri Pirko
2026-10-19 23:29 ` Jason Gunthorpe
2026-10-21 14:23 ` Jiri Pirko
2026-10-21 14:49 ` Jason Gunthorpe
2026-10-21 16:24 ` Jiri Pirko
2026-10-21 16:48 ` Jason Gunthorpe
2026-10-22 8:22 ` Jiri Pirko
2026-10-22 19:21 ` Jason Gunthorpe
2026-10-23 13:01 ` Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 14/20] attestation: Add the base family specification and generated files Jiri Pirko
2026-10-26 14:07 ` Jason Gunthorpe
2026-10-29 10:04 ` Jiri Pirko
2026-10-29 18:43 ` Jason Gunthorpe
2026-10-29 19:38 ` Jiri Pirko
2026-10-30 15:02 ` Jiri Pirko
2026-10-30 15:05 ` Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 15/20] attestation: Prepare provider and instance core Jiri Pirko
2026-10-19 23:29 ` Jason Gunthorpe
2026-10-21 13:04 ` Jiri Pirko
2026-10-29 18:50 ` Sergii Dmytruk
2026-10-15 14:50 ` [PATCH RFC 16/20] attestation: Prepare measurement register journal Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 17/20] attestation: Add CTLV operation handling Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 18/20] tdx-guest: Expose the native attestation service API Jiri Pirko
2026-10-26 14:07 ` Jason Gunthorpe
2026-10-27 10:03 ` Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 19/20] attestation: Add the TDX family specification and generated files Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 20/20] attestation: Add the TDX family implementation Jiri Pirko
2026-10-22 22:07 ` Edgecombe, Rick P
2026-10-23 14:12 ` Jason Gunthorpe
2026-10-23 19:40 ` Edgecombe, Rick P
2026-10-23 22:00 ` Jason Gunthorpe
2026-11-02 19:02 ` Edgecombe, Rick P
2026-11-03 0:58 ` Jason Gunthorpe
2026-10-23 18:15 ` Jiri Pirko
2026-10-23 19:41 ` Edgecombe, Rick P
2026-10-16 23:43 ` [PATCH RFC 00/20] attestation: Add a common subsystem and TDX support Jason Gunthorpe
2026-10-17 18:16 ` Dionna Glaze
2026-10-17 19:06 ` Jarkko Sakkinen
2026-10-17 19:08 ` Jarkko Sakkinen
2026-10-17 19:22 ` Jarkko Sakkinen
2026-10-17 20:55 ` Jason Gunthorpe
2026-10-17 21:14 ` Jarkko Sakkinen
2026-10-17 20:34 ` Jason Gunthorpe
2026-10-17 20:55 ` Jarkko Sakkinen
2026-10-17 23:10 ` Jason Gunthorpe
2026-10-18 23:53 ` Dionna Glaze
2026-10-19 12:08 ` Jiri Pirko
2026-10-19 16:10 ` Dionna Glaze
2026-10-19 22:56 ` Jason Gunthorpe
2026-10-21 8:33 ` Jiri Pirko
2026-10-21 14:12 ` Mimi Zohar
2026-10-21 14:35 ` Jason Gunthorpe
2026-10-21 19:05 ` Mimi Zohar
2026-10-22 10:54 ` Jiri Pirko
2026-10-22 11:24 ` Mimi Zohar
2026-10-22 18:51 ` Jason Gunthorpe
2026-10-22 19:19 ` Jarkko Sakkinen
2026-10-22 19:23 ` Jason Gunthorpe
2026-10-22 19:40 ` Jarkko Sakkinen
2026-10-22 19:40 ` James Bottomley
2026-10-22 12:26 ` James Bottomley
2026-10-22 13:11 ` Jason Gunthorpe
2026-10-22 14:07 ` James Bottomley
2026-10-22 19:19 ` Jason Gunthorpe
2026-10-22 19:37 ` Mimi Zohar
2026-10-22 19:45 ` Jason Gunthorpe
2026-10-22 19:52 ` James Bottomley
2026-10-22 20:43 ` Mimi Zohar
2026-10-20 9:26 ` Jiri Pirko
2026-10-20 13:45 ` Mimi Zohar
2026-10-20 14:06 ` Jason Gunthorpe
2026-10-20 15:22 ` Mimi Zohar
2026-10-20 16:11 ` Yeoreum Yun
2026-10-20 16:52 ` Jason Gunthorpe
2026-10-21 12:23 ` Mimi Zohar
2026-10-21 13:18 ` Jarkko Sakkinen
2026-10-21 13:50 ` Yeoreum Yun
2026-10-21 13:51 ` Jason Gunthorpe
2026-10-21 14:31 ` Mimi Zohar
2026-10-21 14:39 ` Jason Gunthorpe
2026-10-21 12:48 ` James Bottomley
2026-10-21 13:55 ` Jason Gunthorpe
2026-10-19 12:40 ` Jarkko Sakkinen
2026-10-19 23:11 ` Jason Gunthorpe
2026-10-20 12:49 ` James Bottomley
2026-10-20 13:13 ` Jason Gunthorpe
2026-10-22 10:30 ` Aneesh Kumar K.V
2026-10-22 15:38 ` Jiri Pirko
2026-10-22 16:42 ` Jason Gunthorpe
2026-10-23 8:04 ` Aneesh Kumar K.V
2026-10-23 11:32 ` Jiri Pirko
2026-10-23 14:20 ` Jason Gunthorpe
2026-10-23 15:28 ` Aneesh Kumar K.V
2026-10-23 15:42 ` Jason Gunthorpe
2026-10-23 19:13 ` Jonathan Cameron
2026-11-03 8:38 ` Jiri Pirko
2026-10-27 18:43 ` Dave Jiang
2026-10-27 19:36 ` Jason Gunthorpe
2026-10-27 23:09 ` Dave Jiang
2026-10-27 23:46 ` Jason Gunthorpe
2026-10-28 19:16 ` Dave Jiang
2026-10-29 14:09 ` Jason Gunthorpe
2026-10-29 9:32 ` Jiri Pirko
2026-10-29 9:30 ` Jiri Pirko
2026-10-29 10:07 ` Jiri Pirko
2026-10-29 7:37 ` Nikolay Borisov
2026-10-29 14:16 ` Jason Gunthorpe
2026-10-29 18:43 ` Sergii Dmytruk
2026-11-03 10:10 ` Jiri Pirko [this message]
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=aumpp4VptzmasuX8@FV6GYCPJ69 \
--to=jiri@resnulli.us \
--cc=James.Bottomley@hansenpartnership.com \
--cc=aik@amd.com \
--cc=alistair.francis@wdc.com \
--cc=ankita@nvidia.com \
--cc=cedric.xing@intel.com \
--cc=dave.hansen@linux.intel.com \
--cc=david.quigley@intel.com \
--cc=drdeeglaze@gmail.com \
--cc=elena.reshetova@intel.com \
--cc=jgg@ziepe.ca \
--cc=jic23@kernel.org \
--cc=jpiotrowski@nvidia.com \
--cc=kas@kernel.org \
--cc=ksinyuk@kernel.org \
--cc=kvm@vger.kernel.org \
--cc=linux-api@vger.kernel.org \
--cc=linux-coco@lists.linux.dev \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lukas@wunner.de \
--cc=peter.fang@intel.com \
--cc=pgonda@google.com \
--cc=qinkun@google.com \
--cc=rick.p.edgecombe@intel.com \
--cc=rodrigo.vivi@intel.com \
--cc=sameo@meta.com \
--cc=sathyanarayanan.kuppuswamy@linux.intel.com \
--cc=sergii.dmytruk@3mdeb.com \
--cc=suzuki.poulose@arm.com \
--cc=x86@kernel.org \
/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
all inboxes | Powered by JetHome®