mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Moger, Babu" <bmoger@amd.com>
To: Peter Newman <peternewman@google.com>,
	Reinette Chatre <reinette.chatre@intel.com>
Cc: babu.moger@amd.com, corbet@lwn.net, tglx@linutronix.de,
	mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com,
	fenghua.yu@intel.com, x86@kernel.org, hpa@zytor.com,
	thuth@redhat.com, paulmck@kernel.org, rostedt@goodmis.org,
	akpm@linux-foundation.org, xiongwei.song@windriver.com,
	pawan.kumar.gupta@linux.intel.com,
	daniel.sneddon@linux.intel.com, perry.yuan@amd.com,
	sandipan.das@amd.com, kai.huang@intel.com, xiaoyao.li@intel.com,
	seanjc@google.com, jithu.joseph@intel.com, brijesh.singh@amd.com,
	xin3.li@intel.com, ebiggers@google.com,
	andrew.cooper3@citrix.com, mario.limonciello@amd.com,
	james.morse@arm.com, tan.shaopeng@fujitsu.com,
	tony.luck@intel.com, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, maciej.wieczor-retman@intel.com,
	eranian@google.com, jpoimboe@kernel.org, thomas.lendacky@amd.com
Subject: Re: [PATCH v9 14/26] x86/resctrl: Introduce interface to display number of free counters
Date: Thu, 28 Nov 2024 13:35:09 -0600	[thread overview]
Message-ID: <4bf82744-da09-43c3-b8f1-7fc203d1c1c3@amd.com> (raw)
In-Reply-To: <CALPaoCj+zWq1vkHVbXYP0znJbe6Ke3PXPWjtri5AFgD9cQDCUg@mail.gmail.com>

Hi Peter,

On 11/28/2024 5:10 AM, Peter Newman wrote:
> Hi Babu, Reinette,
> 
> On Wed, Nov 27, 2024 at 8:05 PM Reinette Chatre
> <reinette.chatre@intel.com> wrote:
>>
>> Hi Babu,
>>
>> On 11/27/24 6:57 AM, Moger, Babu wrote:
>>> Hi Reinette,
>>>
>>> On 11/26/2024 5:56 PM, Reinette Chatre wrote:
>>>> Hi Babu,
>>>>
>>>> On 11/26/24 3:31 PM, Moger, Babu wrote:
>>>>> On 11/25/2024 1:00 PM, Reinette Chatre wrote:
>>>>>> On 11/22/24 3:36 PM, Moger, Babu wrote:
>>>>>>> On 11/21/2024 3:12 PM, Reinette Chatre wrote:
>>>>>>>> On 11/19/24 11:20 AM, Moger, Babu wrote:
>>>>>>>>> On 11/15/24 18:31, Reinette Chatre wrote:
>>>>>>>>>> On 10/29/24 4:21 PM, Babu Moger wrote:
>>>>>>>>>>> Provide the interface to display the number of free monitoring counters
>>>>>>>>>>> available for assignment in each doamin when mbm_cntr_assign is supported.
>>>>>>>>>>>
>>>>>>>>>>> Signed-off-by: Babu Moger <babu.moger@amd.com>
>>>>>>>>>>> ---
>>>>>>>>>>> v9: New patch.
>>>>>>>>>>> ---
>>>>>>>>>>>      Documentation/arch/x86/resctrl.rst     |  4 ++++
>>>>>>>>>>>      arch/x86/kernel/cpu/resctrl/monitor.c  |  1 +
>>>>>>>>>>>      arch/x86/kernel/cpu/resctrl/rdtgroup.c | 33 ++++++++++++++++++++++++++
>>>>>>>>>>>      3 files changed, 38 insertions(+)
>>>>>>>>>>>
>>>>>>>>>>> diff --git a/Documentation/arch/x86/resctrl.rst b/Documentation/arch/x86/resctrl.rst
>>>>>>>>>>> index 2f3a86278e84..2bc58d974934 100644
>>>>>>>>>>> --- a/Documentation/arch/x86/resctrl.rst
>>>>>>>>>>> +++ b/Documentation/arch/x86/resctrl.rst
>>>>>>>>>>> @@ -302,6 +302,10 @@ with the following files:
>>>>>>>>>>>          memory bandwidth tracking to a single memory bandwidth event per
>>>>>>>>>>>          monitoring group.
>>>>>>>>>>>      +"available_mbm_cntrs":
>>>>>>>>>>> +    The number of free monitoring counters available assignment in each domain
>>>>>>>>>>
>>>>>>>>>> "The number of free monitoring counters available assignment" -> "The number of monitoring
>>>>>>>>>> counters available for assignment"?
>>>>>>>>>>
>>>>>>>>>> (not taking into account how text may change after addressing Peter's feedback)
>>>>>>>>>
>>>>>>>>> How about this?
>>>>>>>>>
>>>>>>>>> "The number of monitoring counters available for assignment in each domain
>>>>>>>>> when the architecture supports mbm_cntr_assign mode. There are a total of
>>>>>>>>> "num_mbm_cntrs" counters are available for assignment. Counters can be
>>>>>>>>> assigned or unassigned individually in each domain. A counter is available
>>>>>>>>> for new assignment if it is unassigned in all domains."
>>>>>>>>
>>>>>>>> Please consider the context of this paragraph. It follows right after the description
>>>>>>>> of "num_mbm_cntrs" that states "Up to two counters can be assigned per monitoring group".
>>>>>>>> I think it is confusing to follow that with a paragraph that states "Counters can be
>>>>>>>> assigned or unassigned individually in each domain." I wonder if it may be helpful to
>>>>>>>> use a different term ... for example a counter is *assigned* to an event of a monitoring
>>>>>>>> group but this assignment may be to specified (not yet supported) or all (this work) domains while
>>>>>>>> it is only *programmed*/*activated* to specified domains. Of course, all of this documentation
>>>>>>>> needs to remain coherent if future work decides to indeed support per-domain assignment.
>>>>>>>>
>>>>>>>
>>>>>>> Little bit lost here. Please help me.
>>>>>>
>>>>>> I think this highlights the uncertainty this interface brings. How do you expect users
>>>>>> to use this interface? At this time I think this interface can create a lot of confusion.
>>>>>> For example, consider a hypothetical system with three domains and four counters that
>>>>>> has the following state per mbm_assign_control:
>>>>>>
>>>>>> //0=tl;1=_;2=l #default group uses counters 0 and 1 to monitor total and local MBM
>>>>>> /m1/0=_;1=t;2=t #monitor group m1 uses counter 2, just for total MBM
>>>>>> /m2/0=l;1=_;2=l #monitor group m2 uses counter 3, just for local MBM
>>>>>> /m3/0=_;1=_;2=_
>>>>>>
>>>>>> Since, in this system there are only four counters available, and
>>>>>> they have all been assigned, then there are no new counters available for
>>>>>> assignment.
>>>>>>
>>>>>> If I understand correctly, available_mbm_cntrs will read:
>>>>>> 0=1;1=3;2=1
>>>>>
>>>>> Yes. Exactly. This causes confusion to the user.
>>>>>>
>>>>>> How is a user to interpret the above numbers? It does not reflect
>>>>>> that no counter can be assigned to m3, instead it reflects which of the
>>>>>> already assigned counters still need to be activated on domains.
>>>>>> If, for example, a user is expected to use this file to know how
>>>>>> many counters can still be assigned, should it not reflect the actual
>>>>>> available counters. In the above scenario it will then be:
>>>>>> 0=0;1=0;2=0
>>>>>
>>>>> We can also just print
>>>>> #cat available_mbm_cntrs
>>>>> 0
>>>>>
>>>>> The domain specific information is not important here.
>>>>> That was my original idea. We can go back to that definition. That is more clear to the user.
>>>>
>>>> Tony's response [1] still applies.
>>>>
>>>> I believe Tony's suggestion [2] considered that the available counters will be the
>>>> same for every domain for this implementation. That is why my example noted:
>>>> "0=0;1=0;2=0"
>>>
>>> yes. We can keep it like this.
>>>
>>>>
>>>> The confusion surrounding the global allocator seems to be prevalent ([3], [4]) as folks
>>>> familiar with resctrl attempt to digest the work. The struggle to make this documentation clear
>>>> makes me more concerned how this feature will be perceived by users who are not as familiar with
>>>> resctrl internals. I think that it may be worth it to take a moment and investigate what it will take
>>>> to implement a per-domain counter allocator. The hardware supports it and I suspect that the upfront
>>>> work to do the enabling will make it easier for users to adopt and understand the feature.
>>>>
>>>> What do you think?
>>>
>>> It adds more complexity for sure.
>>
>> I do see a difference in data structures used but the additional complexity is not
>> obvious to me. It seems like there will be one fewer data structure, the
>> global bitmap, and I think that will actually bring with it some simplification since
>> there is no longer the need to coordinate between the per-domain and global counters,
>> for example the logic that only frees a global counter if it is no longer used by a domain.
>>
>> This may also simplify the update of the monitor event config (BMEC) since it can be
>> done directly on counters of the domain instead of needing to go back and forth between
>> global and per-domain counters.
>>
>>>
>>> 1. Each group needs to remember counter ids in each domain for each event.
>>>     For example:
>>>     Resctrl group mon1
>>>      Total event
>>>      dom 0 cntr_id 1,
>>>      dom 1 cntr_id 10
>>>      dom 2 cntr_id 11
>>>
>>>     Local event
>>>      dom 0 cntr_id 2,
>>>      dom 1 cntr_id 15
>>>      dom 2 cntr_id 10
>>
>> Indeed. The challenge here is that domains may come and go so it cannot be a simple
>> static array. As an alternative it can be an xarray indexed by the domain ID with
>> pointers to a struct like below to contain the counters associated with the monitor
>> group:
>>          struct cntr_id {
>>                  u32     mbm_total;
>>                  u32     mbm_local;
>>          }
>>
>>
>> Thinking more about how this array needs to be managed made me wonder how the
>> current implementation deals with domains that come and go. I do not think
>> this is currently handled. For example, if a new domain comes online and
>> monitoring groups had counters dynamically assigned, then these counters are
>> not configured to the newly online domain.

I am trying to understand the details of your approach here.
> 
> In my prototype, I allocated a counter id-indexed array to each
> monitoring domain structure for tracking the counter allocations,
> because the hardware counters are all domain-scoped. That way the
> tracking data goes away when the hardware does.
> 
> I was focused on allowing all pending counter updates to a domain
> resulting from a single mbm_assign_control write to be batched and
> processed in a single IPI, so I structured the counter tracker
> something like this:

Not sure what you meant here. How are you batching two IPIs for two domains?

#echo "//0=t;1=t" > /sys/fs/resctrl/info/L3_MON/mbm_assign_control

This is still a single write. Two IPIs are sent separately, one for each 
domain.

Are you doing something different?

> 
> struct resctrl_monitor_cfg {
>      int closid;
>      int rmid;
>      int evtid;
>      bool dirty;
> };
> 
> This mirrors the info needed in whatever register configures the
> counter, plus a dirty flag to skip over the ones that don't need to be
> updated.

This is what my understanding of your implementation.

diff --git a/include/linux/resctrl.h b/include/linux/resctrl.h
index d94abba1c716..9cebf065cc97 100644
--- a/include/linux/resctrl.h
+++ b/include/linux/resctrl.h
@@ -94,6 +94,13 @@ struct rdt_ctrl_domain {
         u32                             *mbps_val;
  };

+struct resctrl_monitor_cfg {
+    int closid;
+    int rmid;
+    int evtid;
+    bool dirty;
+};
+
  /**
   * struct rdt_mon_domain - group of CPUs sharing a resctrl monitor 
resource
   * @hdr:               common header for different domain types
@@ -116,6 +123,7 @@ struct rdt_mon_domain {
         struct delayed_work             cqm_limbo;
         int                             mbm_work_cpu;
         int                             cqm_work_cpu;
+     /* Allocate num_mbm_cntrs entries in each domain */
+       struct resctrl_monitor_cfg      *mon_cfg;
  };


When a user requests an assignment for total event to the default group 
for domain 0, you go search in rdt_mon_domain(dom 0) for empty mon_cfg 
entry.

If there is an empty entry, then use that entry for assignment and 
update closid, rmid, evtid and dirty = 1. We can get all these 
information from default group here.

Does this make sense?

> 
> For the benefit of displaying mbm_assign_control, I put a pointer back
> to any counter array entry allocated in the mbm_state struct only
> because it's an existing structure that exists for every rmid-domain
> combination.

Pointer in mbm_state may not be required here.

We are going to loop over resctrl groups. We can search the 
rdt_mon_domain to see if specific closid, rmid, evtid is already 
assigned or not in that domain.

> 
> I didn't need to change the rdtgroup structure.

Ok. That is good.

> 
>>
>>>
>>>
>>> 2. We should have a bitmap of "available counters" in each domain. We have
>>> this already. But allocation method changes.
>>
>> Would allocation/free not be simpler with only the per-domain bitmap needing
>> to be consulted?
>>
>> One implementation change I can think of is the dynamic assign of counters when
>> a monitor group is created. Now a free counter needs to be found in each
>> domain. Here it can be discussed if it should be an "all or nothing"
>> assignment but the handling does not seem to be complex and would need to be
>> solved eventually anyway.
>>
>>> 3. Dynamic allocation/free of the counters
>>>
>>> There could be some more things which I can't think right now. It might
>>> come up when we start working on it.
>>>
>>> It is doable. But, is it worth adding this complexity? I am not sure.
>>
>> Please elaborate where you see that this is too complex.
>>
>>>
>>> Peter mentioned earlier that he was not interested in domain specific
>>> assignments. He was only interested in all domain ("*") implementation.
>>
>> Peter's most recent message indicates otherwise:
>> https://lore.kernel.org/all/CALPaoCgiHEaY_cDbCo=537JJ7mkYZDFFDs9heYvtQ80fXuuvWQ@mail.gmail.com/
> 
> For now, I'm focused on managing the domains locally whenever possible
> to avoid all IPIs, as this gives me the least overhead.
> 
> I'm also prototyping the 'T' vs 't' approach that Reinette
> suggested[1], as this may take a lot of performance pressure off the
> mbm_assign_control interface, as most of the routine updates to
> counter assignments would be automated.
> 
> -Peter
> 
> [1] https://lore.kernel.org/lkml/7ee63634-3b55-4427-8283-8e3d38105f41@intel.com/
> 

-- 
- Babu Moger


  reply	other threads:[~2024-11-28 19:35 UTC|newest]

Thread overview: 115+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-29 23:21 [PATCH v9 00/26] x86/resctrl : Support AMD Assignable Bandwidth Monitoring Counters (ABMC) Babu Moger
2024-10-29 23:21 ` [PATCH v9 01/26] x86/resctrl: Add __init attribute for the functions called in resctrl_late_init Babu Moger
2024-11-15 23:21   ` Reinette Chatre
2024-11-18 17:44     ` Moger, Babu
2024-11-18 22:07       ` Reinette Chatre
2024-11-20 20:02         ` Moger, Babu
2024-10-29 23:21 ` [PATCH v9 02/26] x86/cpufeatures: Add support for Assignable Bandwidth Monitoring Counters (ABMC) Babu Moger
2024-10-29 23:21 ` [PATCH v9 03/26] x86/resctrl: Add ABMC feature in the command line options Babu Moger
2024-10-29 23:21 ` [PATCH v9 04/26] x86/resctrl: Consolidate monitoring related data from rdt_resource Babu Moger
2024-10-29 23:21 ` [PATCH v9 05/26] x86/resctrl: Detect Assignable Bandwidth Monitoring feature details Babu Moger
2024-10-29 23:21 ` [PATCH v9 06/26] x86/resctrl: Introduce resctrl_file_fflags_init() to initialize fflags Babu Moger
2024-10-29 23:21 ` [PATCH v9 07/26] x86/resctrl: Add support to enable/disable AMD ABMC feature Babu Moger
2024-10-29 23:21 ` [PATCH v9 08/26] x86/resctrl: Introduce the interface to display monitor mode Babu Moger
2024-11-16  0:00   ` Reinette Chatre
2024-11-18 19:04     ` Moger, Babu
2024-11-18 22:07       ` Reinette Chatre
2024-11-22 18:25         ` Moger, Babu
2024-11-22 21:37           ` Reinette Chatre
2024-11-23  0:02             ` Moger, Babu
2024-11-25 18:17               ` Reinette Chatre
2024-11-26 17:09                 ` Moger, Babu
2024-11-26 19:01                   ` Reinette Chatre
2024-11-26 21:57                     ` Moger, Babu
2024-10-29 23:21 ` [PATCH v9 09/26] x86/resctrl: Introduce interface to display number of monitoring counters Babu Moger
2024-11-16  0:06   ` Reinette Chatre
2024-11-18 21:31     ` Moger, Babu
2025-02-03 13:26       ` Peter Newman
2024-10-29 23:21 ` [PATCH v9 10/26] x86/resctrl: Introduce bitmap mbm_cntr_free_map to track assignable counters Babu Moger
2024-11-16  0:11   ` Reinette Chatre
2024-10-29 23:21 ` [PATCH v9 11/26] x86/resctrl: Introduce mbm_total_cfg and mbm_local_cfg in struct rdt_hw_mon_domain Babu Moger
2024-10-29 23:21 ` [PATCH v9 12/26] x86/resctrl: Remove MSR reading of event configuration value Babu Moger
2024-11-16  0:24   ` Reinette Chatre
2024-11-19 16:50     ` Moger, Babu
2024-10-29 23:21 ` [PATCH v9 13/26] x86/resctrl: Introduce mbm_cntr_map to track assignable counters at domain Babu Moger
2024-10-29 23:21 ` [PATCH v9 14/26] x86/resctrl: Introduce interface to display number of free counters Babu Moger
2024-10-29 23:57   ` Luck, Tony
2024-10-30 14:15     ` Moger, Babu
2024-11-04 14:14   ` Peter Newman
2024-11-04 17:31     ` Moger, Babu
2024-11-16  0:31   ` Reinette Chatre
2024-11-19 19:20     ` Moger, Babu
2024-11-21 21:12       ` Reinette Chatre
2024-11-22 23:36         ` Moger, Babu
2024-11-25 19:00           ` Reinette Chatre
2024-11-26 23:31             ` Moger, Babu
2024-11-26 23:56               ` Reinette Chatre
2024-11-27 14:57                 ` Moger, Babu
2024-11-27 19:05                   ` Reinette Chatre
2024-11-28 11:10                     ` Peter Newman
2024-11-28 19:35                       ` Moger, Babu [this message]
2024-11-29  9:59                         ` Peter Newman
2024-11-29 17:06                           ` Moger, Babu
2024-12-02 10:43                             ` Peter Newman
2024-12-02 15:02                               ` Moger, Babu
2024-12-02 18:33                             ` Reinette Chatre
2024-12-02 19:48                               ` Moger, Babu
2024-12-02 20:15                                 ` Reinette Chatre
2024-12-02 20:42                                   ` Moger, Babu
2024-12-02 21:09                                     ` Reinette Chatre
2024-12-02 21:28                                       ` Moger, Babu
2024-12-02 21:47                                         ` Reinette Chatre
2024-12-02 22:06                                           ` Moger, Babu
2024-10-29 23:21 ` [PATCH v9 15/26] x86/resctrl: Add data structures and definitions for ABMC assignment Babu Moger
2024-11-16  0:35   ` Reinette Chatre
2024-10-29 23:21 ` [PATCH v9 16/26] x86/resctrl: Introduce cntr_id in mongroup for assignments Babu Moger
2024-11-16  0:38   ` Reinette Chatre
2024-11-19 20:02     ` Moger, Babu
2024-10-29 23:21 ` [PATCH v9 17/26] x86/resctrl: Implement resctrl_arch_config_cntr() to assign a counter with ABMC Babu Moger
2024-10-29 23:54   ` Luck, Tony
2024-10-30 14:14     ` Moger, Babu
2024-11-16  0:44   ` Reinette Chatre
2024-11-19 20:12     ` Moger, Babu
2024-11-21 20:18       ` Reinette Chatre
2024-11-22 18:54         ` Moger, Babu
2024-11-22 21:52           ` Reinette Chatre
2024-11-23  0:15             ` Moger, Babu
2024-10-29 23:21 ` [PATCH v9 18/26] x86/resctrl: Add the interface to assign/update counter assignment Babu Moger
2024-11-16  0:57   ` Reinette Chatre
2024-11-20 18:05     ` Moger, Babu
2024-11-21 20:50       ` Reinette Chatre
2024-11-22 21:04         ` Moger, Babu
2024-11-22 22:07           ` Reinette Chatre
2024-11-23  0:09             ` Moger, Babu
2024-12-04  4:16   ` Fenghua Yu
2024-10-29 23:21 ` [PATCH v9 19/26] x86/resctrl: Add the interface to unassign a MBM counter Babu Moger
2024-11-04 14:16   ` Peter Newman
2024-11-04 18:21     ` Moger, Babu
2024-11-05 10:35       ` Peter Newman
2024-11-05 19:58         ` Moger, Babu
2024-10-29 23:21 ` [PATCH v9 20/26] x86/resctrl: Auto assign/unassign counters when mbm_cntr_assign is enabled Babu Moger
2024-11-18 17:18   ` Reinette Chatre
2024-11-22  0:22     ` Moger, Babu
2024-11-22  0:26       ` Moger, Babu
2024-11-22 18:12         ` Reinette Chatre
2024-11-22 21:34           ` Moger, Babu
2024-12-04  4:16   ` Fenghua Yu
2024-12-04 17:03     ` Reinette Chatre
2024-12-04 17:14     ` Moger, Babu
2024-12-04 17:19       ` Moger, Babu
2024-10-29 23:21 ` [PATCH v9 21/26] x86/resctrl: Report "Unassigned" for MBM events in mbm_cntr_assign mode Babu Moger
2024-11-18 17:39   ` Reinette Chatre
2024-11-20 19:14     ` Moger, Babu
2024-10-29 23:21 ` [PATCH v9 22/26] x86/resctrl: Introduce the interface to switch between monitor modes Babu Moger
2024-10-29 23:21 ` [PATCH v9 23/26] x86/resctrl: Configure mbm_cntr_assign mode if supported Babu Moger
2024-11-18 19:23   ` Reinette Chatre
2024-11-20 18:59     ` Moger, Babu
2024-10-29 23:21 ` [PATCH v9 24/26] x86/resctrl: Update assignments on event configuration changes Babu Moger
2024-11-18 19:43   ` Reinette Chatre
2024-11-21  2:14     ` Moger, Babu
2024-11-21 20:58       ` Reinette Chatre
2024-11-22 20:12         ` Moger, Babu
2024-10-29 23:21 ` [PATCH v9 25/26] x86/resctrl: Introduce interface to list assignment states of all the groups Babu Moger
2024-10-29 23:21 ` [PATCH v9 26/26] x86/resctrl: Introduce interface to modify assignment states of " Babu Moger
2024-11-18 21:51   ` Reinette Chatre
2024-11-21 20:29     ` Moger, Babu

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=4bf82744-da09-43c3-b8f1-7fc203d1c1c3@amd.com \
    --to=bmoger@amd.com \
    --cc=akpm@linux-foundation.org \
    --cc=andrew.cooper3@citrix.com \
    --cc=babu.moger@amd.com \
    --cc=bp@alien8.de \
    --cc=brijesh.singh@amd.com \
    --cc=corbet@lwn.net \
    --cc=daniel.sneddon@linux.intel.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=ebiggers@google.com \
    --cc=eranian@google.com \
    --cc=fenghua.yu@intel.com \
    --cc=hpa@zytor.com \
    --cc=james.morse@arm.com \
    --cc=jithu.joseph@intel.com \
    --cc=jpoimboe@kernel.org \
    --cc=kai.huang@intel.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maciej.wieczor-retman@intel.com \
    --cc=mario.limonciello@amd.com \
    --cc=mingo@redhat.com \
    --cc=paulmck@kernel.org \
    --cc=pawan.kumar.gupta@linux.intel.com \
    --cc=perry.yuan@amd.com \
    --cc=peternewman@google.com \
    --cc=reinette.chatre@intel.com \
    --cc=rostedt@goodmis.org \
    --cc=sandipan.das@amd.com \
    --cc=seanjc@google.com \
    --cc=tan.shaopeng@fujitsu.com \
    --cc=tglx@linutronix.de \
    --cc=thomas.lendacky@amd.com \
    --cc=thuth@redhat.com \
    --cc=tony.luck@intel.com \
    --cc=x86@kernel.org \
    --cc=xiaoyao.li@intel.com \
    --cc=xin3.li@intel.com \
    --cc=xiongwei.song@windriver.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

all inboxes | Powered by JetHome®