From: "Moger, Babu" <babu.moger@amd.com>
To: Peter Newman <peternewman@google.com>
Cc: corbet@lwn.net, tony.luck@intel.com, reinette.chatre@intel.com,
tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
dave.hansen@linux.intel.com, james.morse@arm.com,
dave.martin@arm.com, fenghuay@nvidia.com, x86@kernel.org,
hpa@zytor.com, paulmck@kernel.org, akpm@linux-foundation.org,
thuth@redhat.com, rostedt@goodmis.org, ardb@kernel.org,
gregkh@linuxfoundation.org, daniel.sneddon@linux.intel.com,
jpoimboe@kernel.org, alexandre.chartre@oracle.com,
pawan.kumar.gupta@linux.intel.com, thomas.lendacky@amd.com,
perry.yuan@amd.com, seanjc@google.com, kai.huang@intel.com,
xiaoyao.li@intel.com, kan.liang@linux.intel.com,
xin3.li@intel.com, ebiggers@google.com, xin@zytor.com,
sohil.mehta@intel.com, andrew.cooper3@citrix.com,
mario.limonciello@amd.com, linux-doc@vger.kernel.org,
linux-kernel@vger.kernel.org, maciej.wieczor-retman@intel.com,
eranian@google.com, Xiaojian.Du@amd.com, gautham.shenoy@amd.com
Subject: Re: [PATCH v13 00/27] x86/resctrl : Support AMD Assignable Bandwidth Monitoring Counters (ABMC)
Date: Tue, 20 May 2025 10:28:41 -0500 [thread overview]
Message-ID: <4dbcea13-382e-4af2-960d-0e66652cc2f5@amd.com> (raw)
In-Reply-To: <CALPaoChSzzU5mzMZsdT6CeyEn0WD1qdT9fKCoNW_ty4tojtrkw@mail.gmail.com>
Hi Peter,
Thanks for trying the series.
On 5/19/25 10:59, Peter Newman wrote:
> Hi Babu,
>
> On Fri, May 16, 2025 at 12:52 AM Babu Moger <babu.moger@amd.com> wrote:
>>
>>
>> This series adds the support for Assignable Bandwidth Monitoring Counters
>> (ABMC). It is also called QoS RMID Pinning feature
>>
>> Series is written such that it is easier to support other assignable
>> features supported from different vendors.
>>
>> The feature details are documented in the APM listed below [1].
>> [1] AMD64 Architecture Programmer's Manual Volume 2: System Programming
>> Publication # 24593 Revision 3.41 section 19.3.3.3 Assignable Bandwidth
>> Monitoring (ABMC). The documentation is available at
>> Link: https://bugzilla.kernel.org/show_bug.cgi?id=206537
>>
>> The patches are based on top of commit
>> 92a09c47464d0 (tag: v6.15-rc5, tip/irq/merge) Linux 6.15-rc5
>> plus
>> https://lore.kernel.org/lkml/20250515165855.31452-1-james.morse@arm.com/
>>
>> It is very clear these patches will go after James's resctrl FS/ARCH
>> restructure. Hoping to avoid one review cycle due to the merge.
>>
>> # Introduction
>>
>> Users can create as many monitor groups as RMIDs supported by the hardware.
>> However, bandwidth monitoring feature on AMD system only guarantees that
>> RMIDs currently assigned to a processor will be tracked by hardware.
>> The counters of any other RMIDs which are no longer being tracked will be
>> reset to zero. The MBM event counters return "Unavailable" for the RMIDs
>> that are not tracked by hardware. So, there can be only limited number of
>> groups that can give guaranteed monitoring numbers. With ever changing
>> configurations there is no way to definitely know which of these groups
>> are being tracked for certain point of time. Users do not have the option
>> to monitor a group or set of groups for certain period of time without
>> worrying about counter being reset in between.
>>
>> The ABMC feature provides an option to the user to assign a hardware
>> counter to an RMID, event pair and monitor the bandwidth as long as it is
>> assigned. The assigned RMID will be tracked by the hardware until the user
>> unassigns it manually. There is no need to worry about counters being reset
>> during this period. Additionally, the user can specify a bitmask identifying
>> the specific bandwidth types from the given source to track with the counter.
>>
>> Without ABMC enabled, monitoring will work in current 'default' mode without
>> assignment option.
>>
>> # History
>>
>> Earlier implementation of ABMC had dependancy on BMEC (Bandwidth Monitoring
>> Event Configuration). Peter had concerns with that implementation because
>> it may be not be compatible with ARM's MPAM.
>>
>> Here are the threads discussing the concerns and new interface to address the concerns.
>> https://lore.kernel.org/lkml/CALPaoCg97cLVVAcacnarp+880xjsedEWGJPXhYpy4P7=ky4MZw@mail.gmail.com/
>> https://lore.kernel.org/lkml/CALPaoCiii0vXOF06mfV=kVLBzhfNo0SFqt4kQGwGSGVUqvr2Dg@mail.gmail.com/
>>
>> Here are the finalized requirements based on the discussion:
>>
>> * Remove BMEC dependency on the ABMC feature.
>>
>> * Eliminate global assignment listing. The interface
>> /sys/fs/resctrl/info/L3_MON/mbm_assign_control is no longer required.
>>
>> * Create the configuration directories at /sys/fs/resctrl/info/L3_MON/counter_configs/.
>> The configuration file names should be free-form, allowing users to create them as needed.
>>
>> * Perform assignment listing at the group level by introducing mbm_L3_assignments
>> in each monitoring group. The listing should provide the following details:
>>
>> Event Configuration: Specifies the event configuration applied. This will be crucial
>> when "mkdir" on event configuration is added in the future, leading to the creation
>> of mon_data/mon_l3_*/<event configuration>.
>>
>> Domains: Identifies the domains where the configuration is applied, supporting multi-domain setups.
>>
>> Assignment Type: Indicates whether the assignment is Exclusive (e or d), Shared (s), or Unassigned (_).
>>
>> * Provide option to enable or disable auto assignment when new group is created.
>
> So far I was able to reenable MBM on AMD implementations (for some
> users) while deferring on the counter assignment interface discussion
> by just making shared assignment the default for newly-created groups.
> Until they want to upgrade assignments to exclusive or break down
> traffic with multiple counters to watch a particular group more
> closely, they won't need to change any assignments.
>
> Just pointing out that this turned out to be a useful first step in
> deploying ABMC support.
Thank you.
>
>>
>> This series tries to address all the requirements listed above.
>>
>> # Implementation details
>>
>> Create a generic interface aimed to support user space assignment of scarce
>> counters used for monitoring. First usage of interface is by ABMC with option
>> to expand usage to "soft-ABMC" and MPAM counters in future.
>
> I'll try to identify any issues I've encountered with "soft-ABMC".
> Hopefully I'll be able to share a sample implementation based on these
> patches soon.
That would be wonderful.
>
> There's now more interest in Google for allowing explicit control of
> where RMIDs are assigned on Intel platforms. Even though the number of
> RMIDs implemented by hardware tends to be roughly the number of
> containers they want to support, they often still need to create
> containers when all RMIDs have already been allocated, which is not
> currently allowed. Once the container has been created and starts
> running, it's no longer possible to move its threads into a monitoring
> group whenever RMIDs should become available again, so it's important
> for resctrl to maintain an accurate task list for a container even
> when RMIDs are not available.
>
>>
>> Feature adds following interface files:
>>
>> /sys/fs/resctrl/info/L3_MON/mbm_assign_mode: Reports the list of assignable
>> monitoring features supported. The enclosed brackets indicate which
>> feature is enabled.
>>
>> /sys/fs/resctrl/info/L3_MON/num_mbm_cntrs: Reports the number of monitoring
>> counters available for assignment.
>
> Earlier I discussed with Reinette[1] what num_mbm_cntrs should
> represent in a "soft-ABMC" implementation where assignment is
> implemented by assigning an RMID, which would result in all events
> being assigned at once.
>
> My main concern is how many "counters" you can assign by assigning
> RMIDs. I recall Reinette proposed reporting the number of groups which
> can be assigned separately from counters which can be assigned.
More context may be needed here. Currently, num_mbm_cntrs indicates the
number of counters available per domain, which is 32.
At the moment, we can assign 2 counters to each group, meaning each RMID
can be associated with 2 hardware counters. In theory, it's possible to
assign all 32 hardware counters to a group—allowing one RMID to be linked
with up to 32 counters. However, we currently lack the interface to
support that level of assignment.
For now, the plan is to support basic assignment and expand functionality
later once we have the necessary data structure and requirements.
>
>>
>> /sys/fs/resctrl/info/L3_MON/available_mbm_cntrs: Reports the number of monitoring
>> counters free in each domain.
>>
>> /sys/fs/resctrl/info/L3_MON/counter_configs : Directory to hold the counter configuration.
>>
>> /sys/fs/resctrl/info/L3_MON/counter_configs/mbm_total_bytes/event_filter : Default configuration
>> for MBM total events.
>>
>> /sys/fs/resctrl/info/L3_MON/counter_configs/mbm_local_bytes/event_filter : Default configuration
>> for MBM local events.
>
> IIUC, this needs to be implemented now so you can drop BMEC with this series?
This series hides the configuration files (mbm_local_bytes_config and
mbm_total_bytes_config) required for BMEC when ABMC is enabled.
When the user switches back to "default" mode, BMEC becomes available
again. I believe it's a good approach to keep it this way.
>
>>
>> /sys/fs/resctrl/mbm_L3_assignments: Interface to list or modify assignment states on each group.
>>
>> # Examples
>>
>> a. Check if ABMC support is available
>> #mount -t resctrl resctrl /sys/fs/resctrl/
>>
>> # cat /sys/fs/resctrl/info/L3_MON/mbm_assign_mode
>> [mbm_cntr_assign]
>> default
>>
>> ABMC feature is detected and it is enabled.
>>
>> b. Check how many ABMC counters are available.
>>
>> # cat /sys/fs/resctrl/info/L3_MON/num_mbm_cntrs
>> 32
>>
>> c. Check how many ABMC counters are available in each domain.
>>
>> # cat /sys/fs/resctrl/info/L3_MON/available_mbm_cntrs
>> 0=30;1=30
>>
>> d. Check default counter configuration.
>>
>> # cat /sys/fs/resctrl/info/L3_MON/counter_configs/mbm_total_bytes/event_filter
>> local_reads, remote_reads, local_non_temporal_writes, remote_non_temporal_writes,
>> local_reads_slow_memory, remote_reads_slow_memory, dirty_victim_writes_all
>>
>> # cat /sys/fs/resctrl/info/L3_MON/counter_configs/mbm_local_bytes/event_filter
>> local_reads, local_non_temporal_writes, local_reads_slow_memory
>>
>> e. Series adds a new interface file "mbm_L3_assignments" in each monitoring group
>> to list and modify any group's monitoring states.
>
> To confirm, would we have "mbm_<resource_name>_assignments" for each
> resource where MBM-ish events could be assigned?
This is a group-level property—it resides within each group and is not
related to any specific resource.
>
>>
>> The list is displayed in the following format:
>>
>> <Event configuration>:<Domain id>=<Assignment type>
>
> For soft-ABMC assignment, is there just a single event configuration
> representing all the events tracked by the RMID?
I’m not sure about the details of how soft-ABMC will be supported. It’s
not available at the moment, but I believe it can be added once soft-ABMC
support is in place.
>
>>
>> Event configuration: A valid event configuration listed in the
>> /sys/fs/resctrl/info/L3_MON/counter_configs directory.
>>
>> Domain ID: A valid domain ID number.
>>
>> Assignment types:
>>
>> _ : No event configuration assigned
>>
>> e : Event configuration assigned in exclusive mode
>>
>> To list the default group states:
>> # cat /sys/fs/resctrl/mbm_L3_assignments
>> mbm_total_bytes:0=e;1=e
>> mbm_local_bytes:0=e;1=e
>>
>> To unassign the configuration of mbm_total_bytes on domain 0:
>> #echo "mbm_total_bytes:0=_" > mbm_L3_assignments
>> #cat mbm_L3_assignments
>> mbm_total_bytes:0=_;1=e
>> mbm_local_bytes:0=e;1=e
>>
>> To unassign the mbm_total_bytes configuration on all domains:
>> $echo "mbm_total_bytes:*=_" > mbm_L3_assignments
>> $cat mbm_L3_assignments
>> mbm_total_bytes:0=_;1=_
>> mbm_local_bytes:0=e;1=e
>>
>> To assign the mbm_total_bytes configuration on all domains in exclusive mode:
>> $echo "mbm_total_bytes:*=e" > mbm_L3_assignments
>> $cat mbm_L3_assignments
>> mbm_total_bytes:0=e;1=e
>> mbm_local_bytes:0=e;1=e
>>
>> g. Read the events mbm_total_bytes and mbm_local_bytes of the default group.
>> There is no change in reading the events with ABMC. If the event is unassigned
>> when reading, then the read will come back as "Unassigned".
>>
>> # cat /sys/fs/resctrl/mon_data/mon_L3_00/mbm_total_bytes
>> 779247936
>> # cat /sys/fs/resctrl/mon_data/mon_L3_00/mbm_local_bytes
>> 765207488
>>
>> h. Check the default event configurations.
>>
>> #cat /sys/fs/resctrl/info/L3_MON/counter_configs/mbm_total_bytes/event_filter
>> local_reads, remote_reads, local_non_temporal_writes, remote_non_temporal_writes,
>> local_reads_slow_memory, remote_reads_slow_memory, dirty_victim_writes_all
>>
>> #cat /sys/fs/resctrl/info/L3_MON/counter_configs/mbm_local_bytes/event_filter
>> local_reads, local_non_temporal_writes, local_reads_slow_memory
>
> These look like the BMEC event names converted from camel case. Will
> event filter programming be portable?
Yes, that’s correct. The event types (reads, writes, etc.) supported by
both BMEC and ABMC are the same, so I’ve used generalized names here.
As for portability, I can’t comment, since I’m not familiar with how event
configuration is handled in MPAM or other architectures.
>
> Thanks,
> -Peter
>
>
> [1] https://lore.kernel.org/lkml/b3babdac-da08-4dfd-9544-47db31d574f5@intel.com/
--
Thanks
Babu Moger
next prev parent reply other threads:[~2025-05-20 15:28 UTC|newest]
Thread overview: 114+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-15 22:51 Babu Moger
2025-05-15 22:51 ` [PATCH v13 01/27] x86/cpufeatures: Add support for " Babu Moger
2025-05-22 20:51 ` Reinette Chatre
2025-05-27 17:23 ` Moger, Babu
2025-05-27 17:54 ` Reinette Chatre
2025-05-27 18:40 ` Moger, Babu
2025-05-27 23:42 ` Reinette Chatre
2025-05-28 16:18 ` Moger, Babu
2025-05-15 22:51 ` [PATCH v13 02/27] x86/resctrl: Add ABMC feature in the command line options Babu Moger
2025-05-15 22:51 ` [PATCH v13 03/27] x86/resctrl: Consolidate monitoring related data from rdt_resource Babu Moger
2025-05-22 20:52 ` Reinette Chatre
2025-05-27 18:49 ` Moger, Babu
2025-05-15 22:51 ` [PATCH v13 04/27] x86/resctrl: Detect Assignable Bandwidth Monitoring feature details Babu Moger
2025-05-22 20:54 ` Reinette Chatre
2025-05-27 19:52 ` Moger, Babu
2025-05-27 20:15 ` Moger, Babu
2025-05-15 22:51 ` [PATCH v13 05/27] x86/resctrl: Add support to enable/disable AMD ABMC feature Babu Moger
2025-05-22 20:56 ` Reinette Chatre
2025-05-27 20:21 ` Moger, Babu
2025-05-15 22:51 ` [PATCH v13 06/27] x86/resctrl: Introduce the interface to display monitor mode Babu Moger
2025-05-22 20:56 ` Reinette Chatre
2025-05-27 20:33 ` Moger, Babu
2025-05-15 22:51 ` [PATCH v13 07/27] x86/resctrl: Introduce interface to display number of monitoring counters Babu Moger
2025-05-15 22:51 ` [PATCH v13 08/27] x86/resctrl: Introduce mbm_cntr_cfg to track assignable counters at domain Babu Moger
2025-05-22 21:02 ` Reinette Chatre
2025-05-28 16:56 ` Moger, Babu
2025-05-28 17:34 ` Reinette Chatre
2025-05-28 19:05 ` Moger, Babu
2025-05-15 22:51 ` [PATCH v13 09/27] x86/resctrl: Introduce interface to display number of free MBM counters Babu Moger
2025-05-15 22:51 ` [PATCH v13 10/27] x86/resctrl: Add data structures and definitions for ABMC assignment Babu Moger
2025-05-22 21:10 ` Reinette Chatre
2025-05-28 19:15 ` Moger, Babu
2025-05-15 22:51 ` [PATCH v13 11/27] x86/resctrl: Implement resctrl_arch_config_cntr() to assign a counter with ABMC Babu Moger
2025-05-22 21:51 ` Reinette Chatre
2025-05-22 22:16 ` Luck, Tony
2025-05-23 21:08 ` Luck, Tony
2025-05-26 13:14 ` Peter Newman
2025-05-27 21:41 ` Luck, Tony
2025-05-28 21:41 ` Moger, Babu
2025-05-28 22:00 ` Luck, Tony
2025-05-28 22:13 ` Luck, Tony
2025-05-28 23:48 ` Moger, Babu
2025-06-09 14:01 ` Moger, Babu
2025-05-28 21:39 ` Moger, Babu
2025-05-15 22:51 ` [PATCH v13 12/27] x86/resctrl: Introduce event configuration modes Babu Moger
2025-05-22 22:05 ` Reinette Chatre
2025-05-29 15:21 ` Moger, Babu
2025-05-15 22:51 ` [PATCH v13 13/27] x86/resctrl: Add the functionality to assign MBM events Babu Moger
2025-05-22 22:41 ` Reinette Chatre
2025-05-29 16:05 ` Moger, Babu
2025-05-15 22:51 ` [PATCH v13 14/27] x86/resctrl: Add the functionality to unassign " Babu Moger
2025-05-22 22:49 ` Reinette Chatre
2025-05-29 16:25 ` Moger, Babu
2025-05-15 22:52 ` [PATCH v13 15/27] x86/resctrl: Report 'Unassigned' for MBM events in mbm_cntr_assign mode Babu Moger
2025-05-22 23:01 ` Reinette Chatre
2025-05-29 16:58 ` Moger, Babu
2025-05-15 22:52 ` [PATCH v13 16/27] x86/resctrl: Pass entire struct rdtgroup rather than passing individual members Babu Moger
2025-05-22 23:05 ` Reinette Chatre
2025-05-29 18:07 ` Moger, Babu
2025-05-15 22:52 ` [PATCH v13 17/27] x86/resctrl: Add the support for reading ABMC counters Babu Moger
2025-05-22 23:31 ` Reinette Chatre
2025-05-29 18:25 ` Moger, Babu
2025-05-15 22:52 ` [PATCH v13 18/27] x86/resctrl: Add definitions for MBM event configuration Babu Moger
2025-05-23 4:41 ` Reinette Chatre
2025-05-29 19:00 ` Moger, Babu
2025-05-29 20:58 ` Reinette Chatre
2025-06-03 13:41 ` Moger, Babu
2025-05-15 22:52 ` [PATCH v13 19/27] x86/resctrl: Add event configuration directory under info/L3_MON/ Babu Moger
2025-05-23 4:43 ` Reinette Chatre
2025-05-29 19:54 ` Moger, Babu
2025-05-15 22:52 ` [PATCH v13 20/27] x86/resctrl: Provide interface to update the event configurations Babu Moger
2025-05-23 4:45 ` Reinette Chatre
2025-05-29 22:35 ` Moger, Babu
2025-05-15 22:52 ` [PATCH v13 21/27] x86/resctrl: Introduce mbm_assign_on_mkdir to configure assignments Babu Moger
2025-05-23 4:48 ` Reinette Chatre
2025-05-29 23:03 ` Moger, Babu
2025-05-30 20:54 ` Reinette Chatre
2025-06-03 14:00 ` Moger, Babu
2025-05-15 22:52 ` [PATCH v13 22/27] x86/resctrl: Auto assign/unassign counters when mbm_cntr_assign is enabled Babu Moger
2025-05-15 22:52 ` [PATCH v13 23/27] x86/resctrl: Introduce mbm_L3_assignments to list assignments in a group Babu Moger
2025-05-23 4:47 ` Reinette Chatre
2025-05-30 0:55 ` Moger, Babu
2025-05-15 22:52 ` [PATCH v13 24/27] x86/resctrl: Introduce the interface to modify " Babu Moger
2025-05-26 9:48 ` Peter Newman
2025-05-27 15:24 ` Moger, Babu
2025-05-15 22:52 ` [PATCH v13 25/27] x86/resctrl: Hide the BMEC related files when mbm_cnt_assign is enabled Babu Moger
2025-05-15 22:52 ` [PATCH v13 26/27] x86/resctrl: Introduce the interface to switch between monitor modes Babu Moger
2025-05-15 22:52 ` [PATCH v13 27/27] x86/resctrl: Configure mbm_cntr_assign mode if supported Babu Moger
2025-05-19 15:59 ` [PATCH v13 00/27] x86/resctrl : Support AMD Assignable Bandwidth Monitoring Counters (ABMC) Peter Newman
2025-05-20 15:28 ` Moger, Babu [this message]
2025-05-20 16:06 ` Reinette Chatre
2025-05-20 17:51 ` Moger, Babu
2025-05-20 18:23 ` Reinette Chatre
2025-05-20 23:25 ` Moger, Babu
2025-05-20 23:44 ` Reinette Chatre
2025-05-21 9:18 ` Peter Newman
2025-05-21 23:03 ` Reinette Chatre
2025-05-21 23:43 ` Luck, Tony
2025-05-22 0:10 ` Reinette Chatre
2025-05-22 0:21 ` Luck, Tony
2025-05-22 8:47 ` Peter Newman
2025-05-22 16:32 ` Reinette Chatre
2025-05-22 17:21 ` Luck, Tony
2025-05-22 15:44 ` Moger, Babu
2025-05-22 16:33 ` Reinette Chatre
2025-05-22 19:15 ` Moger, Babu
2025-06-10 23:19 ` Moger, Babu
2025-06-11 18:29 ` Reinette Chatre
2025-06-11 21:21 ` Moger, Babu
2025-05-21 14:27 ` Peter Newman
2025-05-21 23:05 ` Reinette Chatre
2025-05-22 9:14 ` Peter Newman
2025-05-22 16:33 ` Reinette Chatre
2025-05-22 20:44 ` Reinette Chatre
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=4dbcea13-382e-4af2-960d-0e66652cc2f5@amd.com \
--to=babu.moger@amd.com \
--cc=Xiaojian.Du@amd.com \
--cc=akpm@linux-foundation.org \
--cc=alexandre.chartre@oracle.com \
--cc=andrew.cooper3@citrix.com \
--cc=ardb@kernel.org \
--cc=bp@alien8.de \
--cc=corbet@lwn.net \
--cc=daniel.sneddon@linux.intel.com \
--cc=dave.hansen@linux.intel.com \
--cc=dave.martin@arm.com \
--cc=ebiggers@google.com \
--cc=eranian@google.com \
--cc=fenghuay@nvidia.com \
--cc=gautham.shenoy@amd.com \
--cc=gregkh@linuxfoundation.org \
--cc=hpa@zytor.com \
--cc=james.morse@arm.com \
--cc=jpoimboe@kernel.org \
--cc=kai.huang@intel.com \
--cc=kan.liang@linux.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=seanjc@google.com \
--cc=sohil.mehta@intel.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=xin@zytor.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®