Message ID | 20191002120136.1777161-7-arnd@arndb.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | amdgpu build fixes | expand |
> Apparently this bug is still present in both the released clang-9 > and the current development version of clang-10. > I was hoping we would not need a workaround in clang-9+, but > it seems that we do. I think I'd rather: 1. mark AMDGPU BROKEN if CC_IS_CLANG. There are numerous other issues building a working driver here. 2. Fix the compiler bug.
On Wed, Oct 02, 2019 at 09:51:37AM -0700, 'Nick Desaulniers' via Clang Built Linux wrote: > > Apparently this bug is still present in both the released clang-9 > > and the current development version of clang-10. > > I was hoping we would not need a workaround in clang-9+, but > > it seems that we do. > > I think I'd rather: > 1. mark AMDGPU BROKEN if CC_IS_CLANG. There are numerous other issues building > a working driver here. The only reason I am not thrilled about this is we will lose out on warning coverage while the compiler bug gets fixed. I think the AMDGPU drivers have been the single biggest source of clang warnings. I think something like: depends on CC_IS_GCC || (CC_IS_CLANG && COMPILE_TEST) would end up avoiding the runtime issues and give us warning coverage. The only issue is that we would still need this patch... Cheers, Nathan
On Wed, Oct 2, 2019 at 10:07 AM Nathan Chancellor <natechancellor@gmail.com> wrote: > > On Wed, Oct 02, 2019 at 09:51:37AM -0700, 'Nick Desaulniers' via Clang Built Linux wrote: > > > Apparently this bug is still present in both the released clang-9 > > > and the current development version of clang-10. > > > I was hoping we would not need a workaround in clang-9+, but > > > it seems that we do. Here's a fix: https://reviews.llvm.org/D68356 Can't possibly land until clang-10 though. > > > > I think I'd rather: > > 1. mark AMDGPU BROKEN if CC_IS_CLANG. There are numerous other issues building > > a working driver here. > > The only reason I am not thrilled about this is we will lose out on > warning coverage while the compiler bug gets fixed. I think the AMDGPU > drivers have been the single biggest source of clang warnings. > > I think something like: > > depends on CC_IS_GCC || (CC_IS_CLANG && COMPILE_TEST) > > would end up avoiding the runtime issues and give us warning coverage. > The only issue is that we would still need this patch... > > Cheers, > Nathan
diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c index 78452cf0115d..39459cd8ddef 100644 --- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c @@ -961,6 +961,7 @@ static uint32_t sdma_v4_0_rb_cntl(struct amdgpu_ring *ring, uint32_t rb_cntl) /* Set ring buffer size in dwords */ uint32_t rb_bufsz = order_base_2(ring->ring_size / 4); + barrier(); /* work around https://bugs.llvm.org/show_bug.cgi?id=42576 */ rb_cntl = REG_SET_FIELD(rb_cntl, SDMA0_GFX_RB_CNTL, RB_SIZE, rb_bufsz); #ifdef __BIG_ENDIAN rb_cntl = REG_SET_FIELD(rb_cntl, SDMA0_GFX_RB_CNTL, RB_SWAP_ENABLE, 1);
Code in the amdgpu driver triggers a bug when using clang to build an arm64 kernel: /tmp/sdma_v4_0-f95fd3.s: Assembler messages: /tmp/sdma_v4_0-f95fd3.s:44: Error: selected processor does not support `bfc w0,#1,#5' I expect this to be fixed in llvm soon, but we can also work around it by inserting a barrier() that prevents the optimization. Link: https://bugs.llvm.org/show_bug.cgi?id=42576 Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- Apparently this bug is still present in both the released clang-9 and the current development version of clang-10. I was hoping we would not need a workaround in clang-9+, but it seems that we do. --- drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 1 + 1 file changed, 1 insertion(+)