mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Sasha Levin <Alexander.Levin@microsoft.com>
To: "stable@vger.kernel.org" <stable@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Cc: Emily Deng <Emily.Deng@amd.com>, Monk Liu <Monk.Liu@amd.com>,
	Alex Deucher <alexander.deucher@amd.com>,
	Sasha Levin <Alexander.Levin@microsoft.com>
Subject: [PATCH AUTOSEL 4.18 20/56] amdgpu: fix multi-process hang issue
Date: Thu, 20 Sep 2018 02:47:41 +0000	[thread overview]
Message-ID: <20180920024716.58490-20-alexander.levin@microsoft.com> (raw)
In-Reply-To: <20180920024716.58490-1-alexander.levin@microsoft.com>

From: Emily Deng <Emily.Deng@amd.com>

[ Upstream commit 2f40c6eac74a2a60921cdec9e9a8a57e88e31434 ]

SWDEV-146499: hang during multi vulkan process testing

cause:
the second frame's PREAMBLE_IB have clear-state
and LOAD actions, those actions ruin the pipeline
that is still doing process in the previous frame's
work-load IB.

fix:
need insert pipeline sync if have context switch for
SRIOV (because only SRIOV will report PREEMPTION flag
to UMD)

Signed-off-by: Monk Liu <Monk.Liu@amd.com>
Signed-off-by: Emily Deng <Emily.Deng@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
index 7aaa263ad8c7..6b5d4a20860d 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
@@ -164,8 +164,10 @@ int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned num_ibs,
 		return r;
 	}
 
+	need_ctx_switch = ring->current_ctx != fence_ctx;
 	if (ring->funcs->emit_pipeline_sync && job &&
 	    ((tmp = amdgpu_sync_get_fence(&job->sched_sync, NULL)) ||
+	     (amdgpu_sriov_vf(adev) && need_ctx_switch) ||
 	     amdgpu_vm_need_pipeline_sync(ring, job))) {
 		need_pipe_sync = true;
 		dma_fence_put(tmp);
@@ -196,7 +198,6 @@ int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned num_ibs,
 	}
 
 	skip_preamble = ring->current_ctx == fence_ctx;
-	need_ctx_switch = ring->current_ctx != fence_ctx;
 	if (job && ring->funcs->emit_cntxcntl) {
 		if (need_ctx_switch)
 			status |= AMDGPU_HAVE_CTX_SWITCH;
-- 
2.17.1

  parent reply	other threads:[~2018-09-20  2:56 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-20  2:47 [PATCH AUTOSEL 4.18 01/56] ARM: OMAP2+: Fix null hwmod for ti-sysc debug Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 02/56] ARM: OMAP2+: Fix module address for modules using mpu_rt_idx Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 03/56] bus: ti-sysc: Fix module register ioremap for larger offsets Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 04/56] qed: Wait for ready indication before rereading the shmem Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 05/56] qed: Wait for MCP halt and resume commands to take place Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 06/56] qed: Prevent a possible deadlock during driver load and unload Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 07/56] qed: Avoid sending mailbox commands when MFW is not responsive Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 08/56] thermal: of-thermal: disable passive polling when thermal zone is disabled Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 09/56] isofs: reject hardware sector size > 2048 bytes Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 10/56] mmc: atmel-mci: fix bad logic of sg_copy_{from,to}_buffer conversion Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 11/56] mmc: android-goldfish: " Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 12/56] bus: ti-sysc: Fix no_console_suspend handling Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 13/56] ARM: dts: omap4-droid4: fix vibrations on Droid 4 Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 14/56] bpf, sockmap: fix sock_hash_alloc and reject zero-sized keys Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 15/56] bpf, sockmap: fix sock hash count in alloc_sock_hash_elem Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 16/56] tls: possible hang when do_tcp_sendpages hits sndbuf is full case Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 17/56] bpf: sockmap: write_space events need to be passed to TCP handler Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 18/56] drm/amdgpu: fix VM clearing for the root PD Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 19/56] drm/amdgpu: fix preamble handling Sasha Levin
2018-09-20  2:47 ` Sasha Levin [this message]
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 21/56] net/ncsi: Fixup .dumpit message flags and ID check in Netlink handler Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 22/56] tcp_bbr: add bbr_check_probe_rtt_done() helper Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 24/56] net: hns: fix length and page_offset overflow when CONFIG_ARM64_64K_PAGES Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 23/56] tcp_bbr: in restart from idle, see if we should exit PROBE_RTT Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 25/56] net: hns: fix skb->truesize underestimation Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 26/56] net: hns3: fix page_offset overflow when CONFIG_ARM64_64K_PAGES Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 28/56] ice: Report stats for allocated queues via ethtool stats Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 27/56] ice: Fix multiple static analyser warnings Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 29/56] ice: Clean control queues only when they are initialized Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 30/56] ice: Fix bugs in control queue processing Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 31/56] ice: Use order_base_2 to calculate higher power of 2 Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 32/56] ice: Set VLAN flags correctly Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 33/56] tools: bpftool: return from do_event_pipe() on bad arguments Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 34/56] ice: Fix a few null pointer dereference issues Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 35/56] ice: Fix potential return of uninitialized value Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 36/56] e1000: check on netif_running() before calling e1000_up() Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 38/56] ixgbe: fix driver behaviour after issuing VFLR Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 37/56] e1000: ensure to free old tx/rx rings in set_ringparam() Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 39/56] i40e: Fix for Tx timeouts when interface is brought up if DCB is enabled Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 41/56] crypto: chtls - fix null dereference chtls_free_uld() Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 40/56] i40e: fix condition of WARN_ONCE for stat strings Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 42/56] crypto: cavium/nitrox - fix for command corruption in queue full case with backlog submissions Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 43/56] hwmon: (ina2xx) fix sysfs shunt resistor read access Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 44/56] hwmon: (adt7475) Make adt7475_read_word() return errors Sasha Levin
2018-09-20  2:47 ` [PATCH AUTOSEL 4.18 45/56] Revert "ARM: dts: imx7d: Invert legacy PCI irq mapping" Sasha Levin
2018-09-20  2:48 ` [PATCH AUTOSEL 4.18 46/56] drm/amdgpu: Enable/disable gfx PG feature in rlc safe mode Sasha Levin
2018-09-20  2:48 ` [PATCH AUTOSEL 4.18 47/56] drm/amdgpu: Update power state at the end of smu hw_init Sasha Levin
2018-09-20  2:48 ` [PATCH AUTOSEL 4.18 48/56] ata: ftide010: Add a quirk for SQ201 Sasha Levin
2018-09-20  2:48 ` [PATCH AUTOSEL 4.18 49/56] nvme-fcloop: Fix dropped LS's to removed target port Sasha Levin
2018-09-20  2:48 ` [PATCH AUTOSEL 4.18 50/56] ARM: dts: omap4-droid4: Fix emmc errors seen on some devices Sasha Levin
2018-09-20  2:48 ` [PATCH AUTOSEL 4.18 51/56] drm/amdgpu: Need to set moved to true when evict bo Sasha Levin
2018-09-20  2:48 ` [PATCH AUTOSEL 4.18 52/56] arm/arm64: smccc-1.1: Make return values unsigned long Sasha Levin
2018-09-20  2:48 ` [PATCH AUTOSEL 4.18 54/56] i2c: i801: Allow ACPI AML access I/O ports not reserved for SMBus Sasha Levin
2018-09-20  2:48 ` [PATCH AUTOSEL 4.18 53/56] arm/arm64: smccc-1.1: Handle function result as parameters Sasha Levin
2018-09-20  2:48 ` [PATCH AUTOSEL 4.18 55/56] clk: x86: Set default parent to 48Mhz Sasha Levin
2018-09-20  2:48 ` [PATCH AUTOSEL 4.18 56/56] x86/pti: Fix section mismatch warning/error Sasha Levin

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=20180920024716.58490-20-alexander.levin@microsoft.com \
    --to=alexander.levin@microsoft.com \
    --cc=Emily.Deng@amd.com \
    --cc=Monk.Liu@amd.com \
    --cc=alexander.deucher@amd.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    /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

Powered by JetHome