On Fri, Sep 5, 2025 at 6:54 AM Borislav Petkov <b...@alien8.de> wrote:
>
> On Tue, Sep 02, 2025 at 12:53:32PM -0400, Alex Deucher wrote:
> > Older GPUs did not support memory protection, so the kernel
> > driver would validate the command submissions (CS) from userspace
> > to avoid the GPU accessing any memory it shouldn't.
> >
> > Change any error messages in that validatio to dev_warn_once() to
> > avoid spamming the kernel log in the event of a bad CS.  If users
> > see any of these messages they should report them to the user space
> > component, which in most cases is mesa
> > (https://gitlab.freedesktop.org/mesa/mesa/-/issues).
> >
> > Cc: Borislav Petkov (AMD) <b...@alien8.de>
> > Link: 
> > https://lore.kernel.org/r/20250829171655.GBaLHgh3VOvuM1UfJg@fat_crate.local
> > Signed-off-by: Alex Deucher <alexander.deuc...@amd.com>
> > ---
> >  drivers/gpu/drm/radeon/evergreen_cs.c | 520 +++++++++++++-------------
> >  drivers/gpu/drm/radeon/r100.c         | 215 +++++------
> >  drivers/gpu/drm/radeon/r200.c         |  34 +-
> >  drivers/gpu/drm/radeon/r300.c         |  66 ++--
> >  drivers/gpu/drm/radeon/r600_cs.c      | 445 +++++++++++-----------
> >  drivers/gpu/drm/radeon/radeon_cs.c    |   2 +-
> >  6 files changed, 648 insertions(+), 634 deletions(-)
>
> Btw, now that I had to reboot the workstation, I thought I'll apply yours to
> test it. You've missed one spot, see below. :-)
>

Whoops.  thanks.  I've squashed this into the original patch.

> With that additional debug added, I see now:
>
> [   25.877593] radeon 0000:1d:00.0: vbo resource seems too big (524289) for 
> the bo (524288)
>
> which looks like some buffer limits mis-counting. The bo is obviously of 1^19
> buffer size while one of those "size" and "offset" things are off by one.
>
> If anyone wants to debug, the program which causes this is conky version:
> 1.11.6-2 in debian. It starts spewing the warnings when I start it and since
> it.

The size and offset come from userspace, so it's likely a mesa issue.
I've reported it here:
https://gitlab.freedesktop.org/mesa/mesa/-/issues/13838

Alex

>
> Thx.
>
> ---
> diff --git a/drivers/gpu/drm/radeon/evergreen_cs.c 
> b/drivers/gpu/drm/radeon/evergreen_cs.c
> index d49e59626e39..1162cb5d75ed 100644
> --- a/drivers/gpu/drm/radeon/evergreen_cs.c
> +++ b/drivers/gpu/drm/radeon/evergreen_cs.c
> @@ -2418,7 +2418,8 @@ static int evergreen_packet3_check(struct 
> radeon_cs_parser *p,
>                                 size = radeon_get_ib_value(p, idx+1+(i*8)+1);
>                                 if (p->rdev && (size + offset) > 
> radeon_bo_size(reloc->robj)) {
>                                         /* force size to size of the buffer */
> -                                       dev_warn_ratelimited(p->dev, "vbo 
> resource seems too big for the bo\n");
> +                                       dev_warn_once(p->dev, "vbo resource 
> seems too big (%d) for the bo (%ld)\n",
> +                                                     size + offset, 
> radeon_bo_size(reloc->robj));
>                                         ib[idx+1+(i*8)+1] = 
> radeon_bo_size(reloc->robj) - offset;
>                                 }
>
> --
> Regards/Gruss,
>     Boris.
>
> https://people.kernel.org/tglx/notes-about-netiquette

Reply via email to