From: "Timur Kristóf" <timur.kristof@gmail.com>
To: amd-gfx@lists.freedesktop.org, Alexander.Deucher@amd.com,
"Natalie Vock" <natalie.vock@gmx.de>,
"Amir Shetaia" <Amir.Shetaia@amd.com>,
"Marek Olšák" <maraeo@gmail.com>,
"Mario Limonciello" <mario.limonciello@amd.com>,
"Tvrtko Ursulin" <tursulin@ursulin.net>,
"Felix Kuehling" <Felix.Kuehling@amd.com>,
"Lijo Lazar" <lijo.lazar@amd.com>, "Siwei He" <siwei.he@amd.com>,
"Philip Yang" <philip.yang@amd.com>,
"Mukul Joshi" <mukul.joshi@amd.com>,
"Christian König" <christian.koenig@amd.com>
Subject: Re: [PATCH 02/14] drm/amdgpu/gfxhub: Enable retry fault interrupts when needed
Date: Thu, 02 Jul 2026 11:14:53 +0200 [thread overview]
Message-ID: <2821958.vuYhMxLoTh@timur-max> (raw)
In-Reply-To: <be24281a-465b-420b-9279-a749ebd79ba1@amd.com>
On 2026. július 2., csütörtök 10:10:10 közép-európai nyári idő Christian König
wrote:
> On 7/1/26 18:17, Timur Kristóf wrote:
> > Enable retry fault interrupts when initializing the GFXHUB
> > system aperture registers according to whether retrying
> > page faults is enabled in amdgpu (ie. amdgpu.noretry=0).
> >
> > Needs to be done for each GFXHUB version at once,
> > because none of them actually enabled this interrupt.
>
> Thinking more about it we are clearly missing something here. The retry
> fault interrupt itself should be enabled all the time.
Why would it be enabled all the time?
I haven't seen any retry faults on neither Navi 3 nor Navi 4 without enabling
the ENABLE_RETRY_FAULT_INTERRUPT bit.
>
> IIRC only the RETRY_PERMISSION_OR_INVALID_PAGE_FAULT bit in the
> VM_CONTEXT0_CNTL register should be set or cleared by the kernel driver or
> firmware to control if the HW retries the access or not.
That is clearly not the case on GFX12.1 and I haven't seen any indication that
it would be different on GFX11.x and 12.0 either.
> > ---
> >
> > drivers/gpu/drm/amd/amdgpu/gfxhub_v11_5_0.c | 9 +++++++--
> > drivers/gpu/drm/amd/amdgpu/gfxhub_v12_0.c | 9 +++++++--
> > drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c | 9 +++++++--
> > drivers/gpu/drm/amd/amdgpu/gfxhub_v1_2.c | 2 ++
> > drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c | 9 +++++++--
> > drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c | 9 +++++++--
> > drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0.c | 9 +++++++--
> > drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0_3.c | 9 +++++++--
> > 8 files changed, 51 insertions(+), 14 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/gfxhub_v11_5_0.c
> > b/drivers/gpu/drm/amd/amdgpu/gfxhub_v11_5_0.c index
> > 652eea6eae4a..ef20eafd59ae 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/gfxhub_v11_5_0.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/gfxhub_v11_5_0.c
> > @@ -155,6 +155,7 @@ static void
> > gfxhub_v11_5_0_init_gart_aperture_regs(struct amdgpu_device *adev)>
> > static void gfxhub_v11_5_0_init_system_aperture_regs(struct amdgpu_device
> > *adev) {
> >
> > uint64_t value;
> >
> > + u32 tmp;
> >
> > WREG32_SOC15(GC, 0, regGCMC_VM_AGP_BASE, 0);
> > WREG32_SOC15(GC, 0, regGCMC_VM_AGP_BOT, adev->gmc.agp_start >>
24);
> >
> > @@ -180,8 +181,12 @@ static void
> > gfxhub_v11_5_0_init_system_aperture_regs(struct amdgpu_device *adev)>
> > WREG32_SOC15(GC, 0, regGCVM_L2_PROTECTION_FAULT_DEFAULT_ADDR_HI32,
> >
> > (u32)((u64)adev->dummy_page_addr >> 44));
> >
> > - WREG32_FIELD15_PREREG(GC, 0, GCVM_L2_PROTECTION_FAULT_CNTL2,
> > - ACTIVE_PAGE_MIGRATION_PTE_READ_RETRY, 1);
> > + tmp = RREG32_SOC15(GC, 0, regGCVM_L2_PROTECTION_FAULT_CNTL2);
> > + tmp = REG_SET_FIELD(tmp, GCVM_L2_PROTECTION_FAULT_CNTL2,
> > +
ACTIVE_PAGE_MIGRATION_PTE_READ_RETRY, 1);
> > + tmp = REG_SET_FIELD(tmp, GCVM_L2_PROTECTION_FAULT_CNTL2,
> > + ENABLE_RETRY_FAULT_INTERRUPT, !
adev->gmc.noretry);
> > + WREG32_SOC15(GC, 0, regGCVM_L2_PROTECTION_FAULT_CNTL2, tmp);
> >
> > }
> >
> > static void gfxhub_v11_5_0_init_tlb_regs(struct amdgpu_device *adev)
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/gfxhub_v12_0.c
> > b/drivers/gpu/drm/amd/amdgpu/gfxhub_v12_0.c index
> > 6cbf837d50dd..ec3ff4dec674 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/gfxhub_v12_0.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/gfxhub_v12_0.c
> > @@ -158,6 +158,7 @@ static void
> > gfxhub_v12_0_init_gart_aperture_regs(struct amdgpu_device *adev)>
> > static void gfxhub_v12_0_init_system_aperture_regs(struct amdgpu_device
> > *adev) {
> >
> > uint64_t value;
> >
> > + u32 tmp;
> >
> > /* Program the AGP BAR */
> > WREG32_SOC15(GC, 0, regGCMC_VM_AGP_BASE, 0);
> >
> > @@ -184,8 +185,12 @@ static void
> > gfxhub_v12_0_init_system_aperture_regs(struct amdgpu_device *adev)>
> > WREG32_SOC15(GC, 0, regGCVM_L2_PROTECTION_FAULT_DEFAULT_ADDR_HI32,
> >
> > (u32)((u64)adev->dummy_page_addr >> 44));
> >
> > - WREG32_FIELD15_PREREG(GC, 0, GCVM_L2_PROTECTION_FAULT_CNTL2,
> > - ACTIVE_PAGE_MIGRATION_PTE_READ_RETRY, 1);
> > + tmp = RREG32_SOC15(GC, 0, regGCVM_L2_PROTECTION_FAULT_CNTL2);
> > + tmp = REG_SET_FIELD(tmp, GCVM_L2_PROTECTION_FAULT_CNTL2,
> > +
ACTIVE_PAGE_MIGRATION_PTE_READ_RETRY, 1);
> > + tmp = REG_SET_FIELD(tmp, GCVM_L2_PROTECTION_FAULT_CNTL2,
> > + ENABLE_RETRY_FAULT_INTERRUPT, !
adev->gmc.noretry);
> > + WREG32_SOC15(GC, 0, regGCVM_L2_PROTECTION_FAULT_CNTL2, tmp);
> >
> > }
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c
> > b/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c index
> > bfe247b1a333..27d7f7cb903f 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c
> > @@ -91,6 +91,7 @@ static void gfxhub_v1_0_init_gart_aperture_regs(struct
> > amdgpu_device *adev)>
> > static void gfxhub_v1_0_init_system_aperture_regs(struct amdgpu_device
> > *adev) {
> >
> > uint64_t value;
> >
> > + u32 tmp;
> >
> > if (!amdgpu_sriov_vf(adev) || adev->asic_type <= CHIP_VEGA10) {
> >
> > /* Program the AGP BAR */
> >
> > @@ -134,8 +135,12 @@ static void
> > gfxhub_v1_0_init_system_aperture_regs(struct amdgpu_device *adev)>
> > WREG32_SOC15(GC, 0,
mmVM_L2_PROTECTION_FAULT_DEFAULT_ADDR_HI32,
> >
> > (u32)((u64)adev->dummy_page_addr >>
44));
> >
> > - WREG32_FIELD15(GC, 0, VM_L2_PROTECTION_FAULT_CNTL2,
> > - ACTIVE_PAGE_MIGRATION_PTE_READ_RETRY,
1);
> > + tmp = RREG32_SOC15(GC, 0,
mmVM_L2_PROTECTION_FAULT_CNTL2);
> > + tmp = REG_SET_FIELD(tmp, VM_L2_PROTECTION_FAULT_CNTL2,
> > +
ACTIVE_PAGE_MIGRATION_PTE_READ_RETRY, 1);
> > + tmp = REG_SET_FIELD(tmp, VM_L2_PROTECTION_FAULT_CNTL2,
> > +
ENABLE_RETRY_FAULT_INTERRUPT, !adev->gmc.noretry);
> > + WREG32_SOC15(GC, 0, mmVM_L2_PROTECTION_FAULT_CNTL2,
tmp);
> >
> > }
> >
> > /* In the case squeezing vram into GART aperture, we don't use
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_2.c
> > b/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_2.c index
> > fbdf46070b38..ed9a64bc5aaa 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_2.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_2.c
> > @@ -176,6 +176,8 @@ gfxhub_v1_2_xcc_init_system_aperture_regs(struct
> > amdgpu_device *adev,>
> > tmp = RREG32_SOC15(GC, GET_INST(GC, i),
> > regVM_L2_PROTECTION_FAULT_CNTL2);
> > tmp = REG_SET_FIELD(tmp,
VM_L2_PROTECTION_FAULT_CNTL2,
> >
> >
ACTIVE_PAGE_MIGRATION_PTE_READ_RETRY, 1);
> >
> > + tmp = REG_SET_FIELD(tmp,
VM_L2_PROTECTION_FAULT_CNTL2,
> > +
ENABLE_RETRY_FAULT_INTERRUPT, !adev->gmc.noretry);
> >
> > WREG32_SOC15(GC, GET_INST(GC, i),
regVM_L2_PROTECTION_FAULT_CNTL2,
> > tmp);
> >
> > }
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c
> > b/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c index
> > 9ea593e2c719..152b2735d360 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c
> > @@ -151,6 +151,7 @@ static void gfxhub_v2_0_init_gart_aperture_regs(struct
> > amdgpu_device *adev)>
> > static void gfxhub_v2_0_init_system_aperture_regs(struct amdgpu_device
> > *adev) {
> >
> > uint64_t value;
> >
> > + u32 tmp;
> >
> > if (!amdgpu_sriov_vf(adev)) {
> >
> > /* Program the AGP BAR */
> >
> > @@ -178,8 +179,12 @@ static void
> > gfxhub_v2_0_init_system_aperture_regs(struct amdgpu_device *adev)>
> > WREG32_SOC15(GC, 0, mmGCVM_L2_PROTECTION_FAULT_DEFAULT_ADDR_HI32,
> >
> > (u32)((u64)adev->dummy_page_addr >> 44));
> >
> > - WREG32_FIELD15(GC, 0, GCVM_L2_PROTECTION_FAULT_CNTL2,
> > - ACTIVE_PAGE_MIGRATION_PTE_READ_RETRY, 1);
> > + tmp = RREG32_SOC15(GC, 0, mmGCVM_L2_PROTECTION_FAULT_CNTL2);
> > + tmp = REG_SET_FIELD(tmp, GCVM_L2_PROTECTION_FAULT_CNTL2,
> > +
ACTIVE_PAGE_MIGRATION_PTE_READ_RETRY, 1);
> > + tmp = REG_SET_FIELD(tmp, GCVM_L2_PROTECTION_FAULT_CNTL2,
> > + ENABLE_RETRY_FAULT_INTERRUPT, !
adev->gmc.noretry);
> > + WREG32_SOC15(GC, 0, mmGCVM_L2_PROTECTION_FAULT_CNTL2, tmp);
> >
> > }
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c
> > b/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c index
> > 30b90d35abd0..83c2ddbbd292 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c
> > @@ -154,6 +154,7 @@ static void gfxhub_v2_1_init_gart_aperture_regs(struct
> > amdgpu_device *adev)>
> > static void gfxhub_v2_1_init_system_aperture_regs(struct amdgpu_device
> > *adev) {
> >
> > uint64_t value;
> >
> > + u32 tmp;
> >
> > if (amdgpu_sriov_vf(adev))
> >
> > return;
> >
> > @@ -182,8 +183,12 @@ static void
> > gfxhub_v2_1_init_system_aperture_regs(struct amdgpu_device *adev)>
> > WREG32_SOC15(GC, 0, mmGCVM_L2_PROTECTION_FAULT_DEFAULT_ADDR_HI32,
> >
> > (u32)((u64)adev->dummy_page_addr >> 44));
> >
> > - WREG32_FIELD15(GC, 0, GCVM_L2_PROTECTION_FAULT_CNTL2,
> > - ACTIVE_PAGE_MIGRATION_PTE_READ_RETRY, 1);
> > + tmp = RREG32_SOC15(GC, 0, mmGCVM_L2_PROTECTION_FAULT_CNTL2);
> > + tmp = REG_SET_FIELD(tmp, GCVM_L2_PROTECTION_FAULT_CNTL2,
> > +
ACTIVE_PAGE_MIGRATION_PTE_READ_RETRY, 1);
> > + tmp = REG_SET_FIELD(tmp, GCVM_L2_PROTECTION_FAULT_CNTL2,
> > + ENABLE_RETRY_FAULT_INTERRUPT, !
adev->gmc.noretry);
> > + WREG32_SOC15(GC, 0, mmGCVM_L2_PROTECTION_FAULT_CNTL2, tmp);
> >
> > }
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0.c
> > b/drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0.c index
> > 9e6a6e13dec0..90bbb2fe4884 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0.c
> > @@ -150,6 +150,7 @@ static void gfxhub_v3_0_init_gart_aperture_regs(struct
> > amdgpu_device *adev)>
> > static void gfxhub_v3_0_init_system_aperture_regs(struct amdgpu_device
> > *adev) {
> >
> > uint64_t value;
> >
> > + u32 tmp;
> >
> > /* Program the AGP BAR */
> > WREG32_SOC15(GC, 0, regGCMC_VM_AGP_BASE, 0);
> >
> > @@ -176,8 +177,12 @@ static void
> > gfxhub_v3_0_init_system_aperture_regs(struct amdgpu_device *adev)>
> > WREG32_SOC15(GC, 0, regGCVM_L2_PROTECTION_FAULT_DEFAULT_ADDR_HI32,
> >
> > (u32)((u64)adev->dummy_page_addr >> 44));
> >
> > - WREG32_FIELD15_PREREG(GC, 0, GCVM_L2_PROTECTION_FAULT_CNTL2,
> > - ACTIVE_PAGE_MIGRATION_PTE_READ_RETRY, 1);
> > + tmp = RREG32_SOC15(GC, 0, regGCVM_L2_PROTECTION_FAULT_CNTL2);
> > + tmp = REG_SET_FIELD(tmp, GCVM_L2_PROTECTION_FAULT_CNTL2,
> > +
ACTIVE_PAGE_MIGRATION_PTE_READ_RETRY, 1);
> > + tmp = REG_SET_FIELD(tmp, GCVM_L2_PROTECTION_FAULT_CNTL2,
> > + ENABLE_RETRY_FAULT_INTERRUPT, !
adev->gmc.noretry);
> > + WREG32_SOC15(GC, 0, regGCVM_L2_PROTECTION_FAULT_CNTL2, tmp);
> >
> > }
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0_3.c
> > b/drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0_3.c index
> > b3b1085c7cd3..1b3c067ab48c 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0_3.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0_3.c
> > @@ -153,6 +153,7 @@ static void
> > gfxhub_v3_0_3_init_gart_aperture_regs(struct amdgpu_device *adev)>
> > static void gfxhub_v3_0_3_init_system_aperture_regs(struct amdgpu_device
> > *adev) {
> >
> > uint64_t value;
> >
> > + u32 tmp;
> >
> > if (amdgpu_sriov_vf(adev))
> >
> > return;
> >
> > @@ -181,8 +182,12 @@ static void
> > gfxhub_v3_0_3_init_system_aperture_regs(struct amdgpu_device *adev)>
> > WREG32_SOC15(GC, 0, regGCVM_L2_PROTECTION_FAULT_DEFAULT_ADDR_HI32,
> >
> > (u32)((u64)adev->dummy_page_addr >> 44));
> >
> > - WREG32_FIELD15_PREREG(GC, 0, GCVM_L2_PROTECTION_FAULT_CNTL2,
> > - ACTIVE_PAGE_MIGRATION_PTE_READ_RETRY, 1);
> > + tmp = RREG32_SOC15(GC, 0, regGCVM_L2_PROTECTION_FAULT_CNTL2);
> > + tmp = REG_SET_FIELD(tmp, GCVM_L2_PROTECTION_FAULT_CNTL2,
> > +
ACTIVE_PAGE_MIGRATION_PTE_READ_RETRY, 1);
> > + tmp = REG_SET_FIELD(tmp, GCVM_L2_PROTECTION_FAULT_CNTL2,
> > + ENABLE_RETRY_FAULT_INTERRUPT, !
adev->gmc.noretry);
> > + WREG32_SOC15(GC, 0, regGCVM_L2_PROTECTION_FAULT_CNTL2, tmp);
> >
> > }
next prev parent reply other threads:[~2026-07-02 9:15 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-01 16:17 [PATCH 00/14] drm/amdgpu: Improve retry fault handling (v3) Timur Kristóf
2026-07-01 16:17 ` [PATCH 01/14] drm/amdgpu: Respect noretry flag for retry faults on GFX12.1 Timur Kristóf
2026-07-02 7:58 ` Christian König
2026-07-01 16:17 ` [PATCH 02/14] drm/amdgpu/gfxhub: Enable retry fault interrupts when needed Timur Kristóf
2026-07-02 8:10 ` Christian König
2026-07-02 9:14 ` Timur Kristóf [this message]
2026-07-02 12:02 ` Christian König
2026-07-01 16:17 ` [PATCH 03/14] drm/amdgpu/ih: Don't perturb HW registers when accessing soft IH ring Timur Kristóf
2026-07-02 8:10 ` Christian König
2026-07-01 16:17 ` [PATCH 04/14] drm/amdgpu/ih: Add retry_cam_ack IH function pointer Timur Kristóf
2026-07-02 8:12 ` Christian König
2026-07-01 16:17 ` [PATCH 05/14] drm/amdgpu/ih6.1: Use IH_SW_RING_SIZE for soft IH ring instead of PAGE_SIZE Timur Kristóf
2026-07-02 8:13 ` Christian König
2026-07-01 16:17 ` [PATCH 06/14] drm/amdgpu/ih7.0: " Timur Kristóf
2026-07-02 10:15 ` Christian König
2026-07-01 16:17 ` [PATCH 07/14] drm/amdgpu/gmc11: Pass cam_index to retry fault handler Timur Kristóf
2026-07-02 10:17 ` Christian König
2026-07-01 16:17 ` [PATCH 08/14] drm/amdgpu/gmc12: " Timur Kristóf
2026-07-02 10:18 ` Christian König
2026-07-01 16:17 ` [PATCH 09/14] drm/amdgpu/gmc12: Use AMDGPU_PTE_IS_PTE flag for init_pte_flags on GFX12.0 Timur Kristóf
2026-07-02 10:19 ` Christian König
2026-07-01 16:17 ` [PATCH 10/14] drm/amdgpu/vm: Use init PTE flags and NOALLOC in amdgpu_vm_handle_fault() Timur Kristóf
2026-07-02 10:22 ` Christian König
2026-07-02 11:28 ` Timur Kristóf
2026-07-02 12:18 ` Christian König
2026-07-02 12:58 ` Timur Kristóf
2026-07-01 16:17 ` [PATCH 11/14] drm/amdgpu/ih6.0: Use MMIO ACK for retry CAM on IH 6.0 Timur Kristóf
2026-07-02 10:23 ` Christian König
2026-07-02 11:52 ` Timur Kristóf
2026-07-03 18:11 ` Joshi, Mukul
2026-07-03 18:50 ` Timur Kristóf
2026-07-03 18:45 ` Kuehling, Felix
2026-07-03 17:46 ` Joshi, Mukul
2026-07-03 18:46 ` Timur Kristóf
2026-07-06 15:28 ` Alex Deucher
2026-07-06 18:04 ` Joshi, Mukul
2026-07-06 21:27 ` Mukul Joshi
2026-07-01 16:17 ` [PATCH 12/14] drm/amdgpu/ih7.0: Use MMIO ACK instead of doorbell for retry CAM on IH 7.0 Timur Kristóf
2026-07-02 10:24 ` Christian König
2026-07-03 16:31 ` Joshi, Mukul
2026-07-03 18:41 ` Timur Kristóf
2026-07-06 17:48 ` Joshi, Mukul
2026-07-06 19:03 ` Mukul Joshi
2026-07-01 16:17 ` [PATCH 13/14] drm/amdgpu/ih6.0: Enable retry CAM on Navi 3 dGPUs Timur Kristóf
2026-07-02 10:35 ` Christian König
2026-07-01 16:17 ` [PATCH 14/14] drm/amdgpu/ih7.0: Enable retry CAM on Navi 4 dGPUs Timur Kristóf
2026-07-02 10:38 ` Christian König
2026-07-02 11:53 ` Timur Kristóf
2026-07-02 12:30 ` Christian König
2026-07-02 12:47 ` Timur Kristóf
2026-07-02 13:26 ` Alex Deucher
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=2821958.vuYhMxLoTh@timur-max \
--to=timur.kristof@gmail.com \
--cc=Alexander.Deucher@amd.com \
--cc=Amir.Shetaia@amd.com \
--cc=Felix.Kuehling@amd.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=christian.koenig@amd.com \
--cc=lijo.lazar@amd.com \
--cc=maraeo@gmail.com \
--cc=mario.limonciello@amd.com \
--cc=mukul.joshi@amd.com \
--cc=natalie.vock@gmx.de \
--cc=philip.yang@amd.com \
--cc=siwei.he@amd.com \
--cc=tursulin@ursulin.net \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.