[PATCH igt 7/9] msm/mapping: Handle larger gmem file size

Kamil Konieczny kamil.konieczny at linux.intel.com
Wed Jul 2 07:48:35 UTC 2025


Hi Rob,
On 2025-07-01 at 11:01:06 -0700, Rob Clark wrote:
> On Tue, Jul 1, 2025 at 9:21 AM Kamil Konieczny
> <kamil.konieczny at linux.intel.com> wrote:
> >
> > Hi Rob,
> > On 2025-06-30 at 11:09:01 -0700, Rob Clark wrote:
> > > From: Rob Clark <rob.clark at oss.qualcomm.com>
> > >
> > > If running on a system with full desktop environment, the file will be
> > > much larger than 0x4000 bytes.
> > >
> > > Signed-off-by: Rob Clark <rob.clark at oss.qualcomm.com>
> > > ---
> > >  tests/msm/msm_mapping.c | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/tests/msm/msm_mapping.c b/tests/msm/msm_mapping.c
> > > index 03a9e814c931..978ea18375dd 100644
> > > --- a/tests/msm/msm_mapping.c
> > > +++ b/tests/msm/msm_mapping.c
> > > @@ -122,7 +122,7 @@ endswith(const char *str, const char *end)
> > >  static uint64_t
> > >  get_bo_addr(int drm_fd, const char *name)
> > >  {
> > > -     char buf[0x4000];
> > > +     char buf[0x80000];
> >
> > If it is that big why not malloc() it?
> 
> in kernel, for sure.  But userspace stack size is multiple MB at least
> 
> BR,
> -R

You are reading "gem" debugfs below, so this buffer in igt is in
userspace, no need for it to be on stack. Btw you just discovered
a bug in igt, imho this function should give sizeof(buf) to caller
here to igt_debugfs_read():

igt_debugfs_read(drm_fd, "gem", buf, sizeof(buf));

Also imho it should be calloc() to avoid garbage later on in buf.
Or if it should read all of debugfs node, make it like:

int igt_debugfs_read_all(int drm_fd, char *, char **buf);

and let it alloc *buf, and later realloc this *buf if needed.

Regards,
Kamil

> 
> > Regards,
> > Kamil
> >
> > >       char *p = buf;
> > >
> > >       igt_debugfs_read(drm_fd, "gem", buf);
> > > --
> > > 2.50.0
> > >


More information about the igt-dev mailing list