From: Paulo Zanoni <paulo.r.zanoni@intel.com>
To: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
"igt-dev@lists.freedesktop.org" <igt-dev@lists.freedesktop.org>
Subject: Re: [igt-dev] [PATCH i-g-t v3 4/4] tests/kms_frontbuffer_tracking: Remove redundant modesets during subtest start.
Date: Thu, 05 Apr 2018 09:31:02 -0700 [thread overview]
Message-ID: <1522945862.2748.4.camel@intel.com> (raw)
In-Reply-To: <1521661661.3150.13.camel@intel.com>
Em Qua, 2018-03-21 às 12:47 -0700, Paulo Zanoni escreveu:
> Em Qui, 2018-03-01 às 16:33 +0100, Maarten Lankhorst escreveu:
> > Hey,
> >
> > Op 27-02-18 om 09:52 schreef Maarten Lankhorst:
> > > CRC capturing enables the display, then disables it again. With
> > > igt_display we can use igt_display_reset to restore the original
> > > state,
> > > without committing it to the hw.
> > >
> > > All subtests first set their own state anyway, so we can save up
> > > on
> > > the number of commits.
> >
> > I patched igt_kms to report the number of modesets..
> >
> > Without this patch running ./kms_frontbuffer_tracking on a 2 output
> > system (f2-snb-2600, forced VGA-1 enabled):
> > Performed 382 modesets
> >
> > With this patch on a 2 output system:
> > Performed 23 modesets
> >
> > On geminilake this means we save a lot of time, so could someone
> > review this series?
>
> Is there an analysis on how reducing the amount of modesets will
> *not*
> invalidade the purpose of the tests? The modesets are there for a
> reason.
Ping?
>
> >
> > Also for comparison, single output enabled, fbc-1p-rte:
> > Unpatched:
> > Performed 4 modesets
> >
> > Patched:
> > Performed 2 modesets
> >
> > Hack below:
> >
> > ---8<---
> > diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> > index 2d57369fe558..dfefe1f887ec 100644
> > --- a/lib/igt_kms.c
> > +++ b/lib/igt_kms.c
> > @@ -2154,6 +2154,8 @@ void igt_display_fini(igt_display_t *display)
> > {
> > int i;
> >
> > + igt_info("Performed %u modesets\n", display->modesets);
> > +
> > for (i = 0; i < display->n_pipes; i++)
> > igt_pipe_fini(&display->pipes[i]);
> >
> > @@ -3196,8 +3198,23 @@ static int do_display_commit(igt_display_t
> > *display,
> > igt_display_refresh(display);
> >
> > if (s == COMMIT_ATOMIC) {
> > - ret = igt_atomic_commit(display,
> > DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
> > + ret = igt_atomic_commit(display, 0, NULL);
> > +
> > + if (ret == -EINVAL) {
> > + ret = igt_atomic_commit(display,
> > DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
> > + if (!ret)
> > + display->modesets++;
> > + }
> > +
> > } else {
> > + ret = igt_atomic_commit(display,
> > DRM_MODE_ATOMIC_TEST_ONLY, NULL);
> > + if (ret == -EINVAL) {
> > + ret = igt_atomic_commit(display,
> > DRM_MODE_ATOMIC_TEST_ONLY | DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
> > + if (!ret)
> > + display->modesets++;
> > + ret = 0;
> > + }
> > +
> > for_each_pipe(display, pipe) {
> > igt_pipe_t *pipe_obj = &display-
> > > pipes[pipe];
> >
> >
> > diff --git a/lib/igt_kms.h b/lib/igt_kms.h
> > index f27e22088ce2..718ea8ce0497 100644
> > --- a/lib/igt_kms.h
> > +++ b/lib/igt_kms.h
> > @@ -357,6 +357,7 @@ struct igt_display {
> > bool has_cursor_plane;
> > bool is_atomic;
> > bool first_commit;
> > + int modesets;
> > };
> >
> > void igt_display_init(igt_display_t *display, int drm_fd);
> >
> > _______________________________________________
> > igt-dev mailing list
> > igt-dev@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/igt-dev
>
> _______________________________________________
> igt-dev mailing list
> igt-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
next prev parent reply other threads:[~2018-04-05 16:31 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-27 8:52 [igt-dev] [PATCH i-g-t v3 0/4] kms_panel_fitting and kms_frontbuffer_tracking cleanups Maarten Lankhorst
2018-02-27 8:52 ` [igt-dev] [PATCH i-g-t v3 1/4] tests/kms_panel_fitting: Test cleanups Maarten Lankhorst
2018-03-05 13:45 ` Arkadiusz Hiler
2018-02-27 8:52 ` [igt-dev] [PATCH i-g-t v3 2/4] lib/igt_kms: Fix igt_plane_reset to handle cursor planes correctly too Maarten Lankhorst
2018-03-05 13:48 ` Arkadiusz Hiler
2018-02-27 8:52 ` [igt-dev] [PATCH i-g-t v3 3/4] tests/kms_frontbuffer_tracking: Convert test to use igt_display, v3 Maarten Lankhorst
2018-03-07 15:17 ` Arkadiusz Hiler
2018-03-07 15:26 ` Arkadiusz Hiler
2018-03-07 16:40 ` Maarten Lankhorst
2018-03-08 8:57 ` Arkadiusz Hiler
2018-03-12 13:09 ` Maarten Lankhorst
2018-02-27 8:52 ` [igt-dev] [PATCH i-g-t v3 4/4] tests/kms_frontbuffer_tracking: Remove redundant modesets during subtest start Maarten Lankhorst
2018-03-01 15:33 ` Maarten Lankhorst
2018-03-21 19:47 ` Paulo Zanoni
2018-04-05 16:31 ` Paulo Zanoni [this message]
2018-04-05 19:21 ` Maarten Lankhorst
2018-04-05 19:30 ` Paulo Zanoni
2018-04-05 19:44 ` Daniel Vetter
2018-02-27 9:15 ` [igt-dev] ✓ Fi.CI.BAT: success for kms_panel_fitting and kms_frontbuffer_tracking cleanups. (rev3) Patchwork
2018-02-27 10:00 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2018-03-06 11:21 ` [igt-dev] ✓ Fi.CI.BAT: " Patchwork
2018-03-06 15:21 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1522945862.2748.4.camel@intel.com \
--to=paulo.r.zanoni@intel.com \
--cc=igt-dev@lists.freedesktop.org \
--cc=maarten.lankhorst@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.