Re: [PATCH v4 2/2] perf vendor events hygon: Add Hygon Data Fabric PMU events and metrics

Qi Liu <[email protected]>
Newsgroups org.kernel.vger.linux-perf-users,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
Hi Ian,

Thanks for your reply:)

On 8/18/2026 6:12 AM, Ian Rogers wrote:
> On Tue, Aug 4, 2026 at 12:00 AM Qi Liu <[email protected]> wrote:
>>
>> Add perf JSON event definitions and metrics for the Hygon Data Fabric (DF)
>> uncore PMU.
>>
>> Signed-off-by: Qi Liu <[email protected]>
>> ---
>>   tools/perf/pmu-events/Build                   |   2 +-
>>   .../arch/x86/hygonm1/data-fabric.json         |  87 ++++++++++
>>   .../arch/x86/hygonm4/data-fabric.json         | 122 ++++++++++++++
>>   .../arch/x86/hygonm6/data-fabric.json         | 154 ++++++++++++++++++
>>   tools/perf/pmu-events/arch/x86/mapfile.csv    |   3 +
>>   tools/perf/pmu-events/jevents.py              |   2 +
>>   6 files changed, 369 insertions(+), 1 deletion(-)
>>   create mode 100644 tools/perf/pmu-events/arch/x86/hygonm1/data-fabric.json
>>   create mode 100644 tools/perf/pmu-events/arch/x86/hygonm4/data-fabric.json
>>   create mode 100644 tools/perf/pmu-events/arch/x86/hygonm6/data-fabric.json
>>
>> diff --git a/tools/perf/pmu-events/Build b/tools/perf/pmu-events/Build
>> index 372773b998e4..79a9b4cad202 100644
>> --- a/tools/perf/pmu-events/Build
>> +++ b/tools/perf/pmu-events/Build
>> @@ -95,7 +95,7 @@ endif
>>
>>   ifeq ($(JEVENTS_ARCH),$(filter $(JEVENTS_ARCH),x86 all))
>>   # Generate Intel Json
>> -INTELS := $(shell ls -d pmu-events/arch/x86/*|grep -v amdzen|grep -v mapfile.csv)
>> +INTELS := $(shell ls -d pmu-events/arch/x86/*|grep -v amdzen|grep -v hygon|grep -v mapfile.csv)
>>   INTEL_METRICS = $(foreach x,$(INTELS),$(OUTPUT)$(x)/extra-metrics.json)
>>   INTEL_METRICGROUPS = $(foreach x,$(INTELS),$(OUTPUT)$(x)/extra-metricgroups.json)
>>   GEN_JSON += $(INTEL_METRICS) $(INTEL_METRICGROUPS)
>> diff --git a/tools/perf/pmu-events/arch/x86/hygonm1/data-fabric.json b/tools/perf/pmu-events/arch/x86/hygonm1/data-fabric.json
>> new file mode 100644
>> index 000000000000..99c243bd9ba0
>> --- /dev/null
>> +++ b/tools/perf/pmu-events/arch/x86/hygonm1/data-fabric.json
>> @@ -0,0 +1,87 @@
>> +[
>> +  {
>> +    "EventName": "cpu_read_requests_cs_0",
>> +    "BriefDescription": "The number of CPU read requests to memory: Data (64B): CS0",
> 
> Does "Data (64B)" mean that each count should be scaled by 64 and the
> units are bytes? In which case adding:
> "ScaleUnit": "64Bytes",
> Would cause the count to be multiplied by 64 in the perf stat output
> and the unit Bytes to be added.
> 
Thank you for pointing this out. Yes, for these CPU memory-request events, Data 
(64B) means that each count represents a 64-byte data unit. I will add 
"ScaleUnit": "64Bytes" so that perf stat reports the scaled value in Bytes.

The I/O request events are different: each request may carry either 32B or 64B, 
so I will keep those unscaled and retain the separate minimum/maximum bandwidth 
metrics.

> Would it be possible to define terms like CS0?
Thank you. I will replace uses such as CS0 with Coherent Slave 0 (CS0) in the 
event descriptions.>
>> +    "EventCode": "0x2",
>> +    "UMask": "0x07",
>> +    "ConstId": "0x0",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "cpu_read_requests_cs_1",
>> +    "BriefDescription": "The number of CPU read requests to memory: Data (64B): CS1",
>> +    "EventCode": "0x2",
>> +    "UMask": "0x07",
>> +    "ConstId": "0x1",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "cpu_write_requests_cs_0",
>> +    "BriefDescription": "The number of CPU write requests to memory: Data (64B): CS0",
>> +    "EventCode": "0x2",
>> +    "UMask": "0x08",
>> +    "ConstId": "0x0",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "cpu_write_requests_cs_1",
>> +    "BriefDescription": "The number of CPU write requests to memory: Data (64B): CS1",
>> +    "EventCode": "0x2",
>> +    "UMask": "0x08",
>> +    "ConstId": "0x1",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "io_read_requests_cs_0",
>> +    "BriefDescription": "The number of inbound I/O read requests to memory: Data (32B or 64B): CS0",
>> +    "EventCode": "0x3",
>> +    "UMask": "0x0F",
>> +    "ConstId": "0x0",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "io_read_requests_cs_1",
>> +    "BriefDescription": "The number of inbound I/O read requests to memory: Data (32B or 64B): CS1",
>> +    "EventCode": "0x3",
>> +    "UMask": "0x0F",
>> +    "ConstId": "0x1",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "io_write_requests_cs_0",
>> +    "BriefDescription": "The number of inbound I/O write requests to memory: Data (32B or 64B): CS0",
>> +    "EventCode": "0x3",
>> +    "UMask": "0x70",
>> +    "ConstId": "0x0",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "io_write_requests_cs_1",
>> +    "BriefDescription": "The number of inbound I/O write requests to memory: Data (32B or 64B): CS1",
>> +    "EventCode": "0x3",
>> +    "UMask": "0x70",
>> +    "ConstId": "0x1",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "MetricName": "cpu_memory_bandwidth",
>> +    "MetricExpr": "(cpu_read_requests_cs_0 + cpu_read_requests_cs_1 + cpu_write_requests_cs_0 + cpu_write_requests_cs_1) * 64 / (duration_time * 1e6)",
>> +    "BriefDescription": "Total CPU memory access bandwidth",
>> +    "MetricGroup": "DF_Memory_BW",
>> +    "ScaleUnit": "1MB/s"
>> +  },
>> +  {
>> +    "MetricName": "io_memory_max_bandwidth",
>> +    "MetricExpr": "(io_read_requests_cs_0 + io_read_requests_cs_1 + io_write_requests_cs_0 + io_write_requests_cs_1) * 64 / (duration_time * 1e6)",
>> +    "BriefDescription": "Maximum inbound I/O memory access bandwidth (upper bound, assuming 64B per request. Actual inbound I/O requests may be 32B or 64B)",
>> +    "MetricGroup": "DF_Memory_BW",
>> +    "ScaleUnit": "1MB/s"
>> +  },
>> +  {
>> +    "MetricName": "io_memory_min_bandwidth",
>> +    "MetricExpr": "(io_read_requests_cs_0 + io_read_requests_cs_1 + io_write_requests_cs_0 + io_write_requests_cs_1) * 32 / (duration_time * 1e6)",
>> +    "BriefDescription": "Minimum inbound I/O memory access bandwidth (lower bound, assuming 32B per request. Actual inbound I/O requests may be 32B or 64B)",
>> +    "MetricGroup": "DF_Memory_BW",
>> +    "ScaleUnit": "1MB/s"
>> +  }
>> +]
>> diff --git a/tools/perf/pmu-events/arch/x86/hygonm4/data-fabric.json b/tools/perf/pmu-events/arch/x86/hygonm4/data-fabric.json
>> new file mode 100644
>> index 000000000000..f32dcea7061c
>> --- /dev/null
>> +++ b/tools/perf/pmu-events/arch/x86/hygonm4/data-fabric.json
>> @@ -0,0 +1,122 @@
>> +[
>> +  {
>> +    "EventName": "cpu_read_requests_cs_0",
>> +    "BriefDescription": "The number of CPU read requests to memory: Data (64B): CS0",
>> +    "EventCode": "0x2",
>> +    "UMask": "0x07",
>> +    "ConstId": "0x0",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "cpu_read_requests_cs_1",
>> +    "BriefDescription": "The number of CPU read requests to memory: Data (64B): CS1",
>> +    "EventCode": "0x2",
>> +    "UMask": "0x07",
>> +    "ConstId": "0x1",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "cpu_read_requests_cs_2",
>> +    "BriefDescription": "The number of CPU read requests to memory: Data (64B): CS2",
>> +    "EventCode": "0x2",
>> +    "UMask": "0x07",
>> +    "ConstId": "0x2",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "cpu_write_requests_cs_0",
>> +    "BriefDescription": "The number of CPU write requests to memory: Data (64B): CS0",
>> +    "EventCode": "0x2",
>> +    "UMask": "0x08",
>> +    "ConstId": "0x0",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "cpu_write_requests_cs_1",
>> +    "BriefDescription": "The number of CPU write requests to memory: Data (64B): CS1",
>> +    "EventCode": "0x2",
>> +    "UMask": "0x08",
>> +    "ConstId": "0x1",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "cpu_write_requests_cs_2",
>> +    "BriefDescription": "The number of CPU write requests to memory: Data (64B): CS2",
>> +    "EventCode": "0x2",
>> +    "UMask": "0x08",
>> +    "ConstId": "0x2",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "io_read_requests_cs_0",
>> +    "BriefDescription": "The number of inbound I/O read requests to memory: Data (32B or 64B): CS0",
>> +    "EventCode": "0x3",
>> +    "UMask": "0x0F",
>> +    "ConstId": "0x0",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "io_read_requests_cs_1",
>> +    "BriefDescription": "The number of inbound I/O read requests to memory: Data (32B or 64B): CS1",
>> +    "EventCode": "0x3",
>> +    "UMask": "0x0F",
>> +    "ConstId": "0x1",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "io_read_requests_cs_2",
>> +    "BriefDescription": "The number of inbound I/O read requests to memory: Data (32B or 64B): CS2",
>> +    "EventCode": "0x3",
>> +    "UMask": "0x0F",
>> +    "ConstId": "0x2",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "io_write_requests_cs_0",
>> +    "BriefDescription": "The number of inbound I/O write requests to memory: Data (32B or 64B): CS0",
>> +    "EventCode": "0x3",
>> +    "UMask": "0x70",
>> +    "ConstId": "0x0",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "io_write_requests_cs_1",
>> +    "BriefDescription": "The number of inbound I/O write requests to memory: Data (32B or 64B): CS1",
>> +    "EventCode": "0x3",
>> +    "UMask": "0x70",
>> +    "ConstId": "0x1",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "io_write_requests_cs_2",
>> +    "BriefDescription": "The number of inbound I/O write requests to memory: Data (32B or 64B): CS2",
>> +    "EventCode": "0x3",
>> +    "UMask": "0x70",
>> +    "ConstId": "0x2",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "MetricName": "cpu_memory_bandwidth",
>> +    "MetricExpr": "(cpu_read_requests_cs_0 + cpu_read_requests_cs_1 + cpu_read_requests_cs_2 + cpu_write_requests_cs_0 + cpu_write_requests_cs_1 + cpu_write_requests_cs_2) * 64 / (duration_time * 1e6)",
>> +    "MetricConstraint": "NO_GROUP_EVENTS",
>> +    "BriefDescription": "Total CPU memory access bandwidth",
>> +    "MetricGroup": "DF_Memory_BW",
>> +    "ScaleUnit": "1MB/s"
>> +  },
>> +  {
>> +    "MetricName": "io_memory_max_bandwidth",
>> +    "MetricExpr": "(io_read_requests_cs_0 + io_read_requests_cs_1 + io_read_requests_cs_2 + io_write_requests_cs_0 + io_write_requests_cs_1 + io_write_requests_cs_2) * 64 / (duration_time * 1e6)",
>> +    "MetricConstraint": "NO_GROUP_EVENTS",
>> +    "BriefDescription": "Maximum inbound I/O memory access bandwidth (upper bound, assuming 64B per request. Actual inbound I/O requests may be 32B or 64B)",
>> +    "MetricGroup": "DF_Memory_BW",
>> +    "ScaleUnit": "1MB/s"
>> +  },
>> +  {
>> +    "MetricName": "io_memory_min_bandwidth",
>> +    "MetricExpr": "(io_read_requests_cs_0 + io_read_requests_cs_1 + io_read_requests_cs_2 + io_write_requests_cs_0 + io_write_requests_cs_1 + io_write_requests_cs_2) * 32 / (duration_time * 1e6)",
>> +    "MetricConstraint": "NO_GROUP_EVENTS",
>> +    "BriefDescription": "Minimum inbound I/O memory access bandwidth (lower bound, assuming 32B per request. Actual inbound I/O requests may be 32B or 64B)",
>> +    "MetricGroup": "DF_Memory_BW",
>> +    "ScaleUnit": "1MB/s"
>> +  }
>> +]
>> diff --git a/tools/perf/pmu-events/arch/x86/hygonm6/data-fabric.json b/tools/perf/pmu-events/arch/x86/hygonm6/data-fabric.json
>> new file mode 100644
>> index 000000000000..bff5c0959d82
>> --- /dev/null
>> +++ b/tools/perf/pmu-events/arch/x86/hygonm6/data-fabric.json
>> @@ -0,0 +1,154 @@
>> +[
>> +  {
>> +    "EventName": "cpu_read_requests_cs_0",
>> +    "BriefDescription": "The number of CPU read requests to memory: Data (64B): CS0",
>> +    "EventCode": "0x2",
>> +    "UMask": "0x07",
>> +    "ConstId": "0x0",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "cpu_read_requests_cs_1",
>> +    "BriefDescription": "The number of CPU read requests to memory: Data (64B): CS1",
>> +    "EventCode": "0x2",
>> +    "UMask": "0x07",
>> +    "ConstId": "0x1",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "cpu_read_requests_cs_2",
>> +    "BriefDescription": "The number of CPU read requests to memory: Data (64B): CS2",
>> +    "EventCode": "0x2",
>> +    "UMask": "0x07",
>> +    "ConstId": "0x2",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "cpu_read_requests_cs_3",
>> +    "BriefDescription": "The number of CPU read requests to memory: Data (64B): CS3",
>> +    "EventCode": "0x2",
>> +    "UMask": "0x07",
>> +    "ConstId": "0x3",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "cpu_write_requests_cs_0",
>> +    "BriefDescription": "The number of CPU write requests to memory: Data (64B): CS0",
>> +    "EventCode": "0x2",
>> +    "UMask": "0x08",
>> +    "ConstId": "0x0",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "cpu_write_requests_cs_1",
>> +    "BriefDescription": "The number of CPU write requests to memory: Data (64B): CS1",
>> +    "EventCode": "0x2",
>> +    "UMask": "0x08",
>> +    "ConstId": "0x1",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "cpu_write_requests_cs_2",
>> +    "BriefDescription": "The number of CPU write requests to memory: Data (64B): CS2",
>> +    "EventCode": "0x2",
>> +    "UMask": "0x08",
>> +    "ConstId": "0x2",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "cpu_write_requests_cs_3",
>> +    "BriefDescription": "The number of CPU write requests to memory: Data (64B): CS3",
>> +    "EventCode": "0x2",
>> +    "UMask": "0x08",
>> +    "ConstId": "0x3",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "io_read_requests_cs_0",
>> +    "BriefDescription": "The number of inbound I/O read requests to memory: Data (32B or 64B): CS0",
>> +    "EventCode": "0x3",
>> +    "UMask": "0x0F",
>> +    "ConstId": "0x0",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "io_read_requests_cs_1",
>> +    "BriefDescription": "The number of inbound I/O read requests to memory: Data (32B or 64B): CS1",
>> +    "EventCode": "0x3",
>> +    "UMask": "0x0F",
>> +    "ConstId": "0x1",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "io_read_requests_cs_2",
>> +    "BriefDescription": "The number of inbound I/O read requests to memory: Data (32B or 64B): CS2",
>> +    "EventCode": "0x3",
>> +    "UMask": "0x0F",
>> +    "ConstId": "0x2",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "io_read_requests_cs_3",
>> +    "BriefDescription": "The number of inbound I/O read requests to memory: Data (32B or 64B): CS3",
>> +    "EventCode": "0x3",
>> +    "UMask": "0x0F",
>> +    "ConstId": "0x3",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "io_write_requests_cs_0",
>> +    "BriefDescription": "The number of inbound I/O write requests to memory: Data (32B or 64B): CS0",
>> +    "EventCode": "0x3",
>> +    "UMask": "0x70",
>> +    "ConstId": "0x0",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "io_write_requests_cs_1",
>> +    "BriefDescription": "The number of inbound I/O write requests to memory: Data (32B or 64B): CS1",
>> +    "EventCode": "0x3",
>> +    "UMask": "0x70",
>> +    "ConstId": "0x1",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "io_write_requests_cs_2",
>> +    "BriefDescription": "The number of inbound I/O write requests to memory: Data (32B or 64B): CS2",
>> +    "EventCode": "0x3",
>> +    "UMask": "0x70",
>> +    "ConstId": "0x2",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "EventName": "io_write_requests_cs_3",
>> +    "BriefDescription": "The number of inbound I/O write requests to memory: Data (32B or 64B): CS3",
>> +    "EventCode": "0x3",
>> +    "UMask": "0x70",
>> +    "ConstId": "0x3",
>> +    "Unit": "HYGON_DF"
>> +  },
>> +  {
>> +    "MetricName": "cpu_memory_bandwidth",
>> +    "MetricExpr": "(cpu_read_requests_cs_0 + cpu_read_requests_cs_1 + cpu_read_requests_cs_2 + cpu_read_requests_cs_3 + cpu_write_requests_cs_0 + cpu_write_requests_cs_1 + cpu_write_requests_cs_2 + cpu_write_requests_cs_3) * 64 / (duration_time * 1e6)",
>> +    "MetricConstraint": "NO_GROUP_EVENTS",
>> +    "BriefDescription": "Total CPU memory access bandwidth",
>> +    "MetricGroup": "DF_Memory_BW",
>> +    "ScaleUnit": "1MB/s"
>> +  },
>> +  {
>> +    "MetricName": "io_memory_max_bandwidth",
>> +    "MetricExpr": "(io_read_requests_cs_0 + io_read_requests_cs_1 + io_read_requests_cs_2 + io_read_requests_cs_3 + io_write_requests_cs_0 + io_write_requests_cs_1 + io_write_requests_cs_2 + io_write_requests_cs_3) * 64 / (duration_time * 1e6)",
>> +    "MetricConstraint": "NO_GROUP_EVENTS",
>> +    "BriefDescription": "Maximum inbound I/O memory access bandwidth (upper bound, assuming 64B per request. Actual inbound I/O requests may be 32B or 64B)",
>> +    "MetricGroup": "DF_Memory_BW",
>> +    "ScaleUnit": "1MB/s"
>> +  },
>> +  {
>> +    "MetricName": "io_memory_min_bandwidth",
>> +    "MetricExpr": "(io_read_requests_cs_0 + io_read_requests_cs_1 + io_read_requests_cs_2 + io_read_requests_cs_3 + io_write_requests_cs_0 + io_write_requests_cs_1 + io_write_requests_cs_2 + io_write_requests_cs_3) * 32 / (duration_time * 1e6)",
>> +    "MetricConstraint": "NO_GROUP_EVENTS",
>> +    "BriefDescription": "Minimum inbound I/O memory access bandwidth (lower bound, assuming 32B per request. Actual inbound I/O requests may be 32B or 64B)",
>> +    "MetricGroup": "DF_Memory_BW",
>> +    "ScaleUnit": "1MB/s"
>> +  }
>> +]
>> diff --git a/tools/perf/pmu-events/arch/x86/mapfile.csv b/tools/perf/pmu-events/arch/x86/mapfile.csv
>> index 50a403b429b1..ba17117245d1 100644
>> --- a/tools/perf/pmu-events/arch/x86/mapfile.csv
>> +++ b/tools/perf/pmu-events/arch/x86/mapfile.csv
>> @@ -45,3 +45,6 @@ AuthenticAMD-25-([245][[:xdigit:]]|[[:xdigit:]]),v1,amdzen3,core
>>   AuthenticAMD-25-[[:xdigit:]]+,v1,amdzen4,core
>>   AuthenticAMD-26-([12467][[:xdigit:]]|[[:xdigit:]]),v1,amdzen5,core
>>   AuthenticAMD-26-[[:xdigit:]]+,v1,amdzen6,core
>> +HygonGenuine-24-[0123],v1,hygonm1,core
>> +HygonGenuine-24-[45],v1,hygonm4,core
>> +HygonGenuine-24-(1[012345678]|[6789ABCDEF]),v1,hygonm6,core
>> diff --git a/tools/perf/pmu-events/jevents.py b/tools/perf/pmu-events/jevents.py
>> index 376dc2d24162..63ae3a763a4f 100755
>> --- a/tools/perf/pmu-events/jevents.py
>> +++ b/tools/perf/pmu-events/jevents.py
>> @@ -294,6 +294,7 @@ class JsonEvent:
>>             'L3PMC': 'amd_l3',
>>             'DFPMC': 'amd_df',
>>             'UMCPMC': 'amd_umc',
>> +          'HYGON_DF': 'hygon_df',
>>             'cpu_core': 'cpu_core',
>>             'cpu_atom': 'cpu_atom',
>>             'ali_drw': 'ali_drw',
>> @@ -390,6 +391,7 @@ class JsonEvent:
>>           ('Invert', 'inv='),
>>           ('SampleAfterValue', 'period='),
>>           ('UMask', 'umask='),
>> +        ('ConstId', 'constid='),
> 
> Is Const a shortening of Constant? It seems a little redundant in the
> format name. Would CsId be more intention revealing? I don't know what
> CS means, but this at least looks a little more intuitive to me than
> Constant :-)
> 
Thank you for the suggestion. ConstId stands for Component Select ID. It 
identifies the selected Data Fabric component instance, and I agree that the 
current name is not particularly intuitive. I will rename it to CompId 
(Component ID) in the next revision.

Thanks,
Qi> Thanks,
> Ian
> 
>>           ('NodeType', 'type='),
>>           ('RdWrMask', 'rdwrmask='),
>>           ('EnAllCores', 'enallcores='),
>> --
>> 2.34.1
>>
>>
>>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.