Re: [PATCH i-g-t] kms_cursor_crc: Move igt_pipe_crc_{new, free} to init

Daniel Vetter
2014-05-22T20:23:53Z

On Thu, May 22, 2014 at 08:12:58PM +0300, Ville Syrjälä wrote:
> On Thu, May 22, 2014 at 10:06:37AM -0700, Matt Roper wrote:
> > On Thu, May 22, 2014 at 08:01:09PM +0300, Ville Syrjälä wrote:
> > > On Thu, May 22, 2014 at 09:47:39AM -0700, Matt Roper wrote:
> > > > If a subtest fails, cleanup_crtc() never gets called. Currently that
> > > > also causes igt_pipe_crc_free() to never be called, leading all
> > > > subsequent subtests to also fail with -EBUSY at igt_pipe_crc_new().
> > > > Move the calls to igt_pipe_crc_{new,free} into igt_main so that
> > > > we don't need to worry about closing and reopening the CRC
> > > > filedescriptor for each subtest.
> > >
> > > IIRC we can't call them at init because when you call igt_pipe_crc_new()
> > > the pipe->port mapping has to be properly set up so that the auto crc
> > > source will know what to do.
> > >
> > > The subtest failure case is the reason why at the start of every subtest
> > > we call igt_pipe_crc_free() before calling igt_pipe_crc_new(). Are you
> > > saying that's not working as intended?
> >
> > Right, you're working on a fresh test_data structure for each call of
> > run_test(), so you've already lost the test_data->pipe_crc pointer that
> > you're trying to check for NULL there.
> >
> > I guess the right fix is to move the pipe_crc pointer up into data_t
> > rather than test_data_t?
>
> I guess just kill test_data_t and shovel everything into data_t. I don't
> remember why the test_data_t came to be there, but I don't think it
> serves any purpose anymore.

Also just run igts with piglit. That runs every subtest separately which
helps a lot for such issues. Running all the tests is kinda just the
quick&hacky versions if you're wreaking havoc with a single tests.

Otoh for that I just run one subtest through the cmdline switch. So not
sure how much we should bother here really ...
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch