[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <91b485f7-ffd9-65ce-5656-5659a48968b4@linux.intel.com>
Date: Tue, 31 Jan 2023 15:54:58 +0800
From: Baolu Lu <baolu.lu@...ux.intel.com>
To: kan.liang@...ux.intel.com, joro@...tes.org, will@...nel.org,
dwmw2@...radead.org, robin.murphy@....com, robert.moore@...el.com,
rafael.j.wysocki@...el.com, lenb@...nel.org, iommu@...ts.linux.dev,
linux-kernel@...r.kernel.org
Cc: baolu.lu@...ux.intel.com, yu-cheng.yu@...el.com
Subject: Re: [PATCH V4 0/7] iommu/vt-d: Support performance monitoring for
IOMMU
On 2023/1/29 4:04, kan.liang@...ux.intel.com wrote:
> From: Kan Liang<kan.liang@...ux.intel.com>
>
> Changes since V3:
> - Fix issues found by "./scripts/checkpatch.pl --strict" scripts
> Doesn't fix the "macros should not use a trailing semicolon" warning,
> since the macros has to include several struct and functions to
> further reduce the code duplication.
> - To fix the 0 value filter issue, introduce new "*_filter_en" attrs
> for each filter. The end user must set both filter_en and filter
> to utilize a filter.
> - Re-organize the layout of config1 and config2.
>
> Changes since V2:
> - Move ecmd_submit_sync() to iommu.c to avoid #ifdef CONFIG_INTEL_IOMMU
>
> Changes since V1:
> - The cap and ecap registers are always in the first page. It's not
> necessary to use the reg size in dmar_validate_one_drhd(). (Patch 1)
> - Move reg_size up and pair it with reg_base_addr in struct
> dmar_drhd_unit (Patch 1)
> - Update the year of Copyright (Patch 2)
> - Return 0 if PMS is not supported (Patch 2)
> - Refine the comments and add a pr_warn for per-counter capabilities
> check (Patch 2)
> - Remove unnecessary iommu_pmu->num_cntr = i (Patch 2)
> - Remove has_ob of ecmd_submit_sync() (Patch 3)
> - Remove the helpers from non-INTEL_IOMMU. (Patch 3)
> - Still keep #ifdef CONFIG_INTEL_IOMMU for ecmd_submit_sync() to
> avoid compile warning with non-INTEL_IOMMU config.
> - Use pr_warn_once() to replace WARN_ONCE() (Patch 4 & 6)
> - Free iommu PMU if it fails to be registered. (Patch 4)
> - Remove unnecessary 'handled' variable. (Patch 6)
>
> A performance monitoring infrastructure, perfmon, is introduced with
> the VT-d Spec 4.0. The purpose of perfmon is to support collection of
> information about key events occurring during operation of the remapping
> hardware, to aid performance tuning and debug. The patch series is to
> support the perfmon for IOMMU.
>
> To facilitate the perfmon support, the patch series also supports two
> new generic features of VT-d Spec 4.0.
> - Support the 'size' field to retrieve the accurate size of the register
> set for each dmar device from DRHD. (Patch 1)
> - Support the new Enhanced Command Interface. (Patch 3)
>
> With the patch series, users can collect the performance data of IOMMU
> via Linux perf tool. For example,
>
> $ perf stat -e dmar1/iommu_requests,filter_ats_en=0x1,filter_ats=0x1/
> -a sleep 1
>
> Performance counter stats for 'system wide':
>
> 368,947 dmar1/iommu_requests,filter_ats_en=0x1,filter_ats=0x1/
>
> 1.002592074 seconds time elapsed
>
> Kan Liang (7):
> iommu/vt-d: Support size of the register set in DRHD
> iommu/vt-d: Retrieve IOMMU perfmon capability information
> iommu/vt-d: Support Enhanced Command Interface
> iommu/vt-d: Add IOMMU perfmon support
> iommu/vt-d: Support cpumask for IOMMU perfmon
> iommu/vt-d: Add IOMMU perfmon overflow handler support
> iommu/vt-d: Enable IOMMU perfmon support
Patches queued for v6.3. Thank you!
https://lore.kernel.org/linux-iommu/20230131073740.378984-1-baolu.lu@linux.intel.com/
Best regards,
baolu
Powered by blists - more mailing lists