[Intel-gfx] [PATCH i-g-t 4/8] kms_frontbuffer_tracking: Allow to skip suspend_resume sub test case.
Paulo Zanoni
przanoni at gmail.com
Mon Nov 9 05:52:20 PST 2015
2015-11-05 18:40 GMT-02:00 Ville Syrjälä <ville.syrjala at linux.intel.com>:
> On Thu, Nov 05, 2015 at 06:34:07PM -0200, Paulo Zanoni wrote:
>> 2015-11-05 16:53 GMT-02:00 Rodrigo Vivi <rodrigo.vivi at intel.com>:
>> > There are few platforms with other suspend resume bugs that breaks
>> > the full execution. So let's provide a way to skip suspend resume case.
>>
>> Well, I carry a local patch that completely disables suspend subtests
>> for the tests that I usually run, so I really understand your pain.
>> Suspend subtests take a long time to run, and they usually don't work
>> on some of the preproduction machines I still use.
>>
>> But since this problem is not specific to kms_frontbuffer_tracking,
>> maybe we could adopt an igt-wide solution here? Thomas, any idea here?
>
> -x suspend is what I tell piglit on one hsw I have here which hangs on s3.
The problem with piglit is that it runs every single subtest as a
separate test program invocation. For KMS tests this is a huge problem
since it requires generating the reference CRCs every time and it also
requires a modeset to restore fbcon every single time. For non-eDP the
cost is not big, but for eDP it adds up: running a subset of only 70
subtests on kms_frontbuffer_tracking, we go from 3:05 to 6:21 in total
execution time.
>
>>
>> >
>> > Signed-off-by: Rodrigo Vivi <rodrigo.vivi at intel.com>
>> > ---
>> > tests/kms_frontbuffer_tracking.c | 9 +++++++++
>> > 1 file changed, 9 insertions(+)
>> >
>> > diff --git a/tests/kms_frontbuffer_tracking.c b/tests/kms_frontbuffer_tracking.c
>> > index d879493..1cc1c9e 100644
>> > --- a/tests/kms_frontbuffer_tracking.c
>> > +++ b/tests/kms_frontbuffer_tracking.c
>> > @@ -237,6 +237,7 @@ struct {
>> > bool fbc_check_compression;
>> > bool fbc_check_last_action;
>> > bool no_edp;
>> > + bool no_suspend;
>> > bool small_modes;
>> > bool show_hidden;
>> > int step;
>> > @@ -250,6 +251,7 @@ struct {
>> > .fbc_check_compression = true,
>> > .fbc_check_last_action = true,
>> > .no_edp = false,
>> > + .no_suspend = false,
>> > .small_modes = false,
>> > .show_hidden= false,
>> > .step = 0,
>> > @@ -2735,6 +2737,8 @@ static void suspend_subtest(const struct test_mode *t)
>> > {
>> > struct modeset_params *params = pick_params(t);
>> >
>> > + igt_skip_on(opt.no_suspend);
>> > +
>> > prepare_subtest(t, NULL);
>> > sleep(5);
>> > igt_system_suspend_autoresume();
>> > @@ -2950,6 +2954,9 @@ static int opt_handler(int option, int option_index, void *data)
>> > case 'e':
>> > opt.no_edp = true;
>> > break;
>> > + case 'r':
>> > + opt.no_suspend = true;
>> > + break;
>> > case 'm':
>> > opt.small_modes = true;
>> > break;
>> > @@ -2992,6 +2999,7 @@ const char *help_str =
>> > " --no-fbc-compression-check Don't check for the FBC compression status\n"
>> > " --no-fbc-action-check Don't check for the FBC last action\n"
>> > " --no-edp Don't use eDP monitors\n"
>> > +" --no-suspend Don't run Suspend/Resume test cases\n"
>> > " --use-small-modes Use smaller resolutions for the modes\n"
>> > " --show-hidden Show hidden subtests\n"
>> > " --step Stop on each step so you can check the screen\n"
>> > @@ -3117,6 +3125,7 @@ int main(int argc, char *argv[])
>> > { "no-fbc-compression-check", 0, 0, 'o'},
>> > { "no-fbc-action-check", 0, 0, 'a'},
>> > { "no-edp", 0, 0, 'e'},
>> > + { "no-suspend", 0, 0, 'r'},
>> > { "use-small-modes", 0, 0, 'm'},
>> > { "show-hidden", 0, 0, 'i'},
>> > { "step", 0, 0, 't'},
>> > --
>> > 2.4.3
>> >
>> > _______________________________________________
>> > Intel-gfx mailing list
>> > Intel-gfx at lists.freedesktop.org
>> > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>>
>>
>>
>> --
>> Paulo Zanoni
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
> --
> Ville Syrjälä
> Intel OTC
--
Paulo Zanoni
More information about the Intel-gfx
mailing list