Re: [Mesa-dev] Running the CI pipeline on personal Mesa branches

2019-12-09 Thread Rob Clark
On Mon, Dec 9, 2019 at 2:27 AM Michel Dänzer  wrote:
>
> On 2019-12-07 12:56 a.m., Rob Clark wrote:
>
> > It would be nice if there was some way to setup some conservative
> > filters to exclude groups of tests, ie. if only paths changed were
> > under src/freedreno or src/gallium/drivers/freedreno, then no need to
> > run panfrost CI, and visa versa.  We probably shouldn't try to fine
> > tune that *too* much at this risk of skipping tests that should have
> > run, but seems like there should be same safe low hanging fruit to cut
> > down on CI runs in common cases.
>
> Lots of people suggest something like this, but most of them probably
> imagine it to be easier than it actually is. :)
>
> See https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2569 .
>

yeah, it does seem like it is more complex than it sounds.. I'm glad
to see there is some work on that.  There are a lot more CI jobs that
I'd *like* to be able to run (maybe some can be scheduled jobs rather
than per-MR).. for example modern adreno can be both an IMR and a
tiler, so we really have two different render paths which could have
their own bugs.. I'd love to be able to test both forcing tiling and
sysmem render paths..  maybe don't have to happen on every MR, but
freeing up CI runner bandwidth to run additional tests seems useful.

BR,
-R
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] Running the CI pipeline on personal Mesa branches

2019-12-09 Thread Michel Dänzer
On 2019-12-07 12:56 a.m., Rob Clark wrote:
> On Fri, Dec 6, 2019 at 3:46 PM Bas Nieuwenhuizen
>  wrote:
>>
>> On Fri, Dec 6, 2019 at 10:49 AM Michel Dänzer  wrote:
>>>
>>>
>>> I just merged
>>> https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2794 , which
>>> affects people who want to run the CI pipeline on personal Mesa branches:
>>>
>>> Pushing changes to a personal branch now always creates a pipeline, but
>>> none of the jobs in it run by default. (There are no longer any special
>>> branch names affecting this, because creating MRs from such special
>>> branches resulted in duplicate CI job runs)
>>>
>>> The container stage jobs can be triggered manually from the GitLab UI
>>> (and maybe also via the GitLab API, for people who'd like to automate
>>> this? I haven't looked into that). The build/test stage jobs run
>>> automatically once all their dependencies have passed.
>>>
>>> As an example, in order to run one of the "piglit-*" test jobs, one has
>>> to manually trigger the "x86_build" and "x86_test" jobs.
>>>
>>> The pipelines created for merge requests still run all jobs by default
>>> as before.
>>>
>>>
>>> The main motivation for these changes is to avoid wasting CI runner
>>> resources. In that same spirit, please also cancel any unneeded
>>> build/test jobs. This can be done already before those jobs start
>>> running, e.g. while the container stage jobs run.
>>
>> No complaint about not running the pipelines by default in personal
>> repositories, but expecting people to cancel automatically spawned CI
>> jobs as normal part of their workflow seems incredibly fiddly and
>> fragile to me.

I'm not sure what you mean by fragile, but maybe my wording was too
strong. It's not really "expected", I just want people to be aware that
CI runner resources are finite, and wasting them affects others as well
as oneself.


>> Are we *that* constrained?

We are a bit privileged here in Europe, as things are usually calm
during our mornings. For people in North America, it tends to be pretty
painful to merge an MR. (If we had a merge bot, that should mostly
eliminate that pain tough)


> It would be nice if there was some way to setup some conservative
> filters to exclude groups of tests, ie. if only paths changed were
> under src/freedreno or src/gallium/drivers/freedreno, then no need to
> run panfrost CI, and visa versa.  We probably shouldn't try to fine
> tune that *too* much at this risk of skipping tests that should have
> run, but seems like there should be same safe low hanging fruit to cut
> down on CI runs in common cases.

Lots of people suggest something like this, but most of them probably
imagine it to be easier than it actually is. :)

See https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2569 .


-- 
Earthling Michel Dänzer   |   https://redhat.com
Libre software enthusiast | Mesa and X developer
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Re: [Mesa-dev] Running the CI pipeline on personal Mesa branches

2019-12-06 Thread Eric Anholt
On Fri, Dec 6, 2019 at 3:56 PM Rob Clark  wrote:
>
> On Fri, Dec 6, 2019 at 3:46 PM Bas Nieuwenhuizen
>  wrote:
> >
> > On Fri, Dec 6, 2019 at 10:49 AM Michel Dänzer  wrote:
> > >
> > >
> > > I just merged
> > > https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2794 , which
> > > affects people who want to run the CI pipeline on personal Mesa branches:
> > >
> > > Pushing changes to a personal branch now always creates a pipeline, but
> > > none of the jobs in it run by default. (There are no longer any special
> > > branch names affecting this, because creating MRs from such special
> > > branches resulted in duplicate CI job runs)
> > >
> > > The container stage jobs can be triggered manually from the GitLab UI
> > > (and maybe also via the GitLab API, for people who'd like to automate
> > > this? I haven't looked into that). The build/test stage jobs run
> > > automatically once all their dependencies have passed.
> > >
> > > As an example, in order to run one of the "piglit-*" test jobs, one has
> > > to manually trigger the "x86_build" and "x86_test" jobs.
> > >
> > > The pipelines created for merge requests still run all jobs by default
> > > as before.
> > >
> > >
> > > The main motivation for these changes is to avoid wasting CI runner
> > > resources. In that same spirit, please also cancel any unneeded
> > > build/test jobs. This can be done already before those jobs start
> > > running, e.g. while the container stage jobs run.
> >
> > No complaint about not running the pipelines by default in personal
> > repositories, but expecting people to cancel automatically spawned CI
> > jobs as normal part of their workflow seems incredibly fiddly and
> > fragile to me. Are we *that* constrained?
> >
>
> It would be nice if there was some way to setup some conservative
> filters to exclude groups of tests, ie. if only paths changed were
> under src/freedreno or src/gallium/drivers/freedreno, then no need to
> run panfrost CI, and visa versa.  We probably shouldn't try to fine
> tune that *too* much at this risk of skipping tests that should have
> run, but seems like there should be same safe low hanging fruit to cut
> down on CI runs in common cases.
>
> I guess maybe that only helps if the bottleneck are the hw CI runners,
> which might not be the case.. I'm not sure.

Our bottleneck, every time I go check, is in x86_64 build/test job slots.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Re: [Mesa-dev] Running the CI pipeline on personal Mesa branches

2019-12-06 Thread Rob Clark
On Fri, Dec 6, 2019 at 3:46 PM Bas Nieuwenhuizen
 wrote:
>
> On Fri, Dec 6, 2019 at 10:49 AM Michel Dänzer  wrote:
> >
> >
> > I just merged
> > https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2794 , which
> > affects people who want to run the CI pipeline on personal Mesa branches:
> >
> > Pushing changes to a personal branch now always creates a pipeline, but
> > none of the jobs in it run by default. (There are no longer any special
> > branch names affecting this, because creating MRs from such special
> > branches resulted in duplicate CI job runs)
> >
> > The container stage jobs can be triggered manually from the GitLab UI
> > (and maybe also via the GitLab API, for people who'd like to automate
> > this? I haven't looked into that). The build/test stage jobs run
> > automatically once all their dependencies have passed.
> >
> > As an example, in order to run one of the "piglit-*" test jobs, one has
> > to manually trigger the "x86_build" and "x86_test" jobs.
> >
> > The pipelines created for merge requests still run all jobs by default
> > as before.
> >
> >
> > The main motivation for these changes is to avoid wasting CI runner
> > resources. In that same spirit, please also cancel any unneeded
> > build/test jobs. This can be done already before those jobs start
> > running, e.g. while the container stage jobs run.
>
> No complaint about not running the pipelines by default in personal
> repositories, but expecting people to cancel automatically spawned CI
> jobs as normal part of their workflow seems incredibly fiddly and
> fragile to me. Are we *that* constrained?
>

It would be nice if there was some way to setup some conservative
filters to exclude groups of tests, ie. if only paths changed were
under src/freedreno or src/gallium/drivers/freedreno, then no need to
run panfrost CI, and visa versa.  We probably shouldn't try to fine
tune that *too* much at this risk of skipping tests that should have
run, but seems like there should be same safe low hanging fruit to cut
down on CI runs in common cases.

I guess maybe that only helps if the bottleneck are the hw CI runners,
which might not be the case.. I'm not sure.

BR,
-R
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Re: [Mesa-dev] Running the CI pipeline on personal Mesa branches

2019-12-06 Thread Bas Nieuwenhuizen
On Fri, Dec 6, 2019 at 10:49 AM Michel Dänzer  wrote:
>
>
> I just merged
> https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2794 , which
> affects people who want to run the CI pipeline on personal Mesa branches:
>
> Pushing changes to a personal branch now always creates a pipeline, but
> none of the jobs in it run by default. (There are no longer any special
> branch names affecting this, because creating MRs from such special
> branches resulted in duplicate CI job runs)
>
> The container stage jobs can be triggered manually from the GitLab UI
> (and maybe also via the GitLab API, for people who'd like to automate
> this? I haven't looked into that). The build/test stage jobs run
> automatically once all their dependencies have passed.
>
> As an example, in order to run one of the "piglit-*" test jobs, one has
> to manually trigger the "x86_build" and "x86_test" jobs.
>
> The pipelines created for merge requests still run all jobs by default
> as before.
>
>
> The main motivation for these changes is to avoid wasting CI runner
> resources. In that same spirit, please also cancel any unneeded
> build/test jobs. This can be done already before those jobs start
> running, e.g. while the container stage jobs run.

No complaint about not running the pipelines by default in personal
repositories, but expecting people to cancel automatically spawned CI
jobs as normal part of their workflow seems incredibly fiddly and
fragile to me. Are we *that* constrained?


>
>
> --
> Earthling Michel Dänzer   |   https://redhat.com
> Libre software enthusiast | Mesa and X developer
> ___
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev