[Mesa-dev] [PATCH] radeon/llvm: Allocate space for kernel metadata operands

Tom Stellard tom at stellard.net
Thu Jul 3 10:16:58 PDT 2014


On Thu, Jul 03, 2014 at 11:55:25AM -0500, Aaron Watry wrote:
> On Thu, Jul 3, 2014 at 10:59 AM, Alex Deucher <alexdeucher at gmail.com> wrote:
> > Someone mentioned stability issues with cedar with the golden register
> > kernel patch.  Can you see if skipping the golden register setup
> > helps?  If so can you narrow down which registers are problematic?
> 
> I'll give it a shot and see if it helps.  I can reliably break the
> machine currently with luxrays' slg4 program, and the gpu doesn't
> recover after 10-sec as it should.
>

Can you file a bug for this and post the output of R600_DEBUG=cs for this
program?  If I look at it I should be able to get an idea of what might
be causing the lockup.

-Tom

> I tried Tom's wavefront-size workaround with no apparent change.  It's
> possible that we're messing something up in the instruction
> selection/lowering, but I'll give the kernel change a try first.
> 
> --Aaron
> 
> >
> > Alex
> >
> >> and I'm getting an instruction selection error on radeonsi.  Haven't
> >> managed to track that down yet, but at least it means that all
> >> required built-ins/defines for luxrays are now present (at least with
> >> my own libclc tree), at least with image support disabled in luxrays.
> >>
> >> If you enable image support, I believe that it is still going to fail
> >> due to mismatches/oddness with the number of supported pixel formats.
> >>
> >> --Aaron
> >>
> >>> Reviewed-by: Tom Stellard <thomas.stellard at amd.com>
> >>>
> >>>> Signed-off-by: Aaron Watry <awatry at gmail.com>
> >>>> CC: Tom Stellard <thomas.stellard at amd.com>
> >>>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76223
> >>>> ---
> >>>>  src/gallium/drivers/radeon/radeon_llvm_util.c | 10 +++++++---
> >>>>  1 file changed, 7 insertions(+), 3 deletions(-)
> >>>>
> >>>> diff --git a/src/gallium/drivers/radeon/radeon_llvm_util.c b/src/gallium/drivers/radeon/radeon_llvm_util.c
> >>>> index 2ace91f..ec11559 100644
> >>>> --- a/src/gallium/drivers/radeon/radeon_llvm_util.c
> >>>> +++ b/src/gallium/drivers/radeon/radeon_llvm_util.c
> >>>> @@ -100,13 +100,17 @@ LLVMModuleRef radeon_llvm_get_kernel_module(LLVMContextRef ctx, unsigned index,
> >>>>       kernel_metadata = MALLOC(num_kernels * sizeof(LLVMValueRef));
> >>>>       LLVMGetNamedMetadataOperands(mod, "opencl.kernels", kernel_metadata);
> >>>>       for (i = 0; i < num_kernels; i++) {
> >>>> -             LLVMValueRef kernel_signature, kernel_function;
> >>>> +             LLVMValueRef kernel_signature, *kernel_function;
> >>>> +             unsigned num_kernel_md_operands;
> >>>>               if (i == index) {
> >>>>                       continue;
> >>>>               }
> >>>>               kernel_signature = kernel_metadata[i];
> >>>> -             LLVMGetMDNodeOperands(kernel_signature, &kernel_function);
> >>>> -             LLVMDeleteFunction(kernel_function);
> >>>> +             num_kernel_md_operands = LLVMGetMDNodeNumOperands(kernel_signature);
> >>>> +             kernel_function = MALLOC(num_kernel_md_operands * sizeof (LLVMValueRef));
> >>>> +             LLVMGetMDNodeOperands(kernel_signature, kernel_function);
> >>>> +             LLVMDeleteFunction(*kernel_function);
> >>>> +             FREE(kernel_function);
> >>>>       }
> >>>>       FREE(kernel_metadata);
> >>>>       radeon_llvm_optimize(mod);
> >>>> --
> >>>> 1.9.1
> >>>>
> >>>> _______________________________________________
> >>>> mesa-dev mailing list
> >>>> mesa-dev at lists.freedesktop.org
> >>>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
> >> _______________________________________________
> >> mesa-dev mailing list
> >> mesa-dev at lists.freedesktop.org
> >> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list