mbox

[PULL,0/4] OVMF patches for 2021-07-12

Message ID 20210712145630.2857814-1-philmd@redhat.com
State New
Headers show

Pull-request

https://github.com/philmd/qemu.git tags/fw-edk2-20210712

Message

Philippe Mathieu-Daudé July 12, 2021, 2:56 p.m. UTC
The following changes since commit bd38ae26cea0d1d6a97f930248df149204c210a2:

  Merge remote-tracking branch 'remotes/rth-gitlab/tags/pull-tcg-20210710' into staging (2021-07-12 11:02:39 +0100)

are available in the Git repository at:

  https://github.com/philmd/qemu.git tags/fw-edk2-20210712

for you to fetch changes up to d1e79210457323b225c369fa00e97577e0d0da95:

  MAINTAINERS: remove Laszlo Ersek's entries (2021-07-12 16:55:23 +0200)

----------------------------------------------------------------
Patches related to EDK2/OVMF

- MAINTAINERS: remove Laszlo Ersek's entries
- Introduce X86_FW_OVMF Kconfig symbol
- pc_system_ovmf_table_find: Assert that flash was parsed, document

----------------------------------------------------------------

Dov Murik (2):
  hw/i386/pc: pc_system_ovmf_table_find: Assert that flash was parsed
  hw/i386/pc: Document pc_system_ovmf_table_find

Laszlo Ersek (1):
  MAINTAINERS: remove Laszlo Ersek's entries

Philippe Mathieu-Daudé (1):
  hw/i386: Introduce X86_FW_OVMF Kconfig symbol

 include/hw/i386/pc.h          |   1 +
 hw/i386/pc_sysfw.c            | 107 ------------------------
 hw/i386/pc_sysfw_ovmf-stubs.c |  26 ++++++
 hw/i386/pc_sysfw_ovmf.c       | 151 ++++++++++++++++++++++++++++++++++
 MAINTAINERS                   |   4 +-
 hw/i386/Kconfig               |   4 +
 hw/i386/meson.build           |   2 +
 7 files changed, 185 insertions(+), 110 deletions(-)
 create mode 100644 hw/i386/pc_sysfw_ovmf-stubs.c
 create mode 100644 hw/i386/pc_sysfw_ovmf.c

Comments

Peter Maydell July 13, 2021, 10:25 a.m. UTC | #1
On Mon, 12 Jul 2021 at 16:02, Philippe Mathieu-Daudé <philmd@redhat.com> wrote:
>
> The following changes since commit bd38ae26cea0d1d6a97f930248df149204c210a2:
>
>   Merge remote-tracking branch 'remotes/rth-gitlab/tags/pull-tcg-20210710' into staging (2021-07-12 11:02:39 +0100)
>
> are available in the Git repository at:
>
>   https://github.com/philmd/qemu.git tags/fw-edk2-20210712
>
> for you to fetch changes up to d1e79210457323b225c369fa00e97577e0d0da95:
>
>   MAINTAINERS: remove Laszlo Ersek's entries (2021-07-12 16:55:23 +0200)
>
> ----------------------------------------------------------------
> Patches related to EDK2/OVMF
>
> - MAINTAINERS: remove Laszlo Ersek's entries
> - Introduce X86_FW_OVMF Kconfig symbol
> - pc_system_ovmf_table_find: Assert that flash was parsed, document
>
> ----------------------------------------------------------------

So, even though this pullreq doesn't seem to be changing gitlab CI
config, I get a "yaml invalid" failure in the pipeline:
https://gitlab.com/qemu-project/qemu/-/pipelines/335995843

"'build-edk2' job needs 'docker-edk2' job but it was not added to the pipeline"

Any ideas what that's about?

thanks
-- PMM
Philippe Mathieu-Daudé July 13, 2021, 10:35 a.m. UTC | #2
On 7/13/21 12:25 PM, Peter Maydell wrote:
> On Mon, 12 Jul 2021 at 16:02, Philippe Mathieu-Daudé <philmd@redhat.com> wrote:
>>
>> The following changes since commit bd38ae26cea0d1d6a97f930248df149204c210a2:
>>
>>   Merge remote-tracking branch 'remotes/rth-gitlab/tags/pull-tcg-20210710' into staging (2021-07-12 11:02:39 +0100)
>>
>> are available in the Git repository at:
>>
>>   https://github.com/philmd/qemu.git tags/fw-edk2-20210712
>>
>> for you to fetch changes up to d1e79210457323b225c369fa00e97577e0d0da95:
>>
>>   MAINTAINERS: remove Laszlo Ersek's entries (2021-07-12 16:55:23 +0200)
>>
>> ----------------------------------------------------------------
>> Patches related to EDK2/OVMF
>>
>> - MAINTAINERS: remove Laszlo Ersek's entries
>> - Introduce X86_FW_OVMF Kconfig symbol
>> - pc_system_ovmf_table_find: Assert that flash was parsed, document
>>
>> ----------------------------------------------------------------
> 
> So, even though this pullreq doesn't seem to be changing gitlab CI
> config, I get a "yaml invalid" failure in the pipeline:
> https://gitlab.com/qemu-project/qemu/-/pipelines/335995843
> 
> "'build-edk2' job needs 'docker-edk2' job but it was not added to the pipeline"
> 
> Any ideas what that's about?

For me this is related to what I tried to fix last year but
couldn't convince Daniel there was a problem. See this thread:
https://www.mail-archive.com/qemu-devel@nongnu.org/msg773939.html
Daniel P. Berrangé July 13, 2021, 11:16 a.m. UTC | #3
On Tue, Jul 13, 2021 at 11:25:21AM +0100, Peter Maydell wrote:
> On Mon, 12 Jul 2021 at 16:02, Philippe Mathieu-Daudé <philmd@redhat.com> wrote:
> >
> > The following changes since commit bd38ae26cea0d1d6a97f930248df149204c210a2:
> >
> >   Merge remote-tracking branch 'remotes/rth-gitlab/tags/pull-tcg-20210710' into staging (2021-07-12 11:02:39 +0100)
> >
> > are available in the Git repository at:
> >
> >   https://github.com/philmd/qemu.git tags/fw-edk2-20210712
> >
> > for you to fetch changes up to d1e79210457323b225c369fa00e97577e0d0da95:
> >
> >   MAINTAINERS: remove Laszlo Ersek's entries (2021-07-12 16:55:23 +0200)
> >
> > ----------------------------------------------------------------
> > Patches related to EDK2/OVMF
> >
> > - MAINTAINERS: remove Laszlo Ersek's entries
> > - Introduce X86_FW_OVMF Kconfig symbol
> > - pc_system_ovmf_table_find: Assert that flash was parsed, document
> >
> > ----------------------------------------------------------------
> 
> So, even though this pullreq doesn't seem to be changing gitlab CI
> config, I get a "yaml invalid" failure in the pipeline:
> https://gitlab.com/qemu-project/qemu/-/pipelines/335995843
> 
> "'build-edk2' job needs 'docker-edk2' job but it was not added to the pipeline"
> 
> Any ideas what that's about?

The rules for these two jobs are not compatible with the depedency
declared between them.

The docker-edk2 job is set to exist only when edk2.yml or Dockerfile
are changed:

 docker-edk2:
   stage: containers
   rules: # Only run this job when the Dockerfile is modified
   - changes:
     - .gitlab-ci.d/edk2.yml
     - .gitlab-ci.d/edk2/Dockerfile
     when: always


The build-edk2 job is set to exist based on a wide variety of
changes

 build-edk2:
   stage: build
   needs: ['docker-edk2']
   rules: # Only run this job when ...
   - changes: # ... roms/edk2/ is modified (submodule updated)
     - roms/edk2/*
     when: always
   - if: '$CI_COMMIT_REF_NAME =~ /^edk2/' # or the branch/tag starts with 'edk2'
     when: always
   - if: '$CI_COMMIT_MESSAGE =~ /edk2/i' # or last commit description contains 'EDK2'
     when: always


If those jobs were independant those different sets of conditions
would be ok.  The build-edk2 job, however, has a 'needs' clause
adding a depdancy on 'docker-edk2'.

Given this dependancy, in *EVERY* scenario were 'build-edk2' job
exists, the 'docker-edk2' job *MUST* also exist. This isn't the
case, hence the failed pipeline.

This can be fixed by taking the 'rules' from 'build-edk2' and
also applying them to 'docker-edk2'.

Regards,
Daniel
Daniel P. Berrangé July 13, 2021, 11:22 a.m. UTC | #4
On Tue, Jul 13, 2021 at 12:35:18PM +0200, Philippe Mathieu-Daudé wrote:
> On 7/13/21 12:25 PM, Peter Maydell wrote:
> > On Mon, 12 Jul 2021 at 16:02, Philippe Mathieu-Daudé <philmd@redhat.com> wrote:
> >>
> >> The following changes since commit bd38ae26cea0d1d6a97f930248df149204c210a2:
> >>
> >>   Merge remote-tracking branch 'remotes/rth-gitlab/tags/pull-tcg-20210710' into staging (2021-07-12 11:02:39 +0100)
> >>
> >> are available in the Git repository at:
> >>
> >>   https://github.com/philmd/qemu.git tags/fw-edk2-20210712
> >>
> >> for you to fetch changes up to d1e79210457323b225c369fa00e97577e0d0da95:
> >>
> >>   MAINTAINERS: remove Laszlo Ersek's entries (2021-07-12 16:55:23 +0200)
> >>
> >> ----------------------------------------------------------------
> >> Patches related to EDK2/OVMF
> >>
> >> - MAINTAINERS: remove Laszlo Ersek's entries
> >> - Introduce X86_FW_OVMF Kconfig symbol
> >> - pc_system_ovmf_table_find: Assert that flash was parsed, document
> >>
> >> ----------------------------------------------------------------
> > 
> > So, even though this pullreq doesn't seem to be changing gitlab CI
> > config, I get a "yaml invalid" failure in the pipeline:
> > https://gitlab.com/qemu-project/qemu/-/pipelines/335995843
> > 
> > "'build-edk2' job needs 'docker-edk2' job but it was not added to the pipeline"
> > 
> > Any ideas what that's about?
> 
> For me this is related to what I tried to fix last year but
> couldn't convince Daniel there was a problem. See this thread:
> https://www.mail-archive.com/qemu-devel@nongnu.org/msg773939.html

The situation was different back then, as there was no direct 'needs'
relation between the jobs.

This is also addressing a different issue, which I better understand
now. The filtering based on file names is unreliable when combined
with git pushes. Gitlab looks at the files modified in the delta beween
what is pushed as what already exists on the remote branch. So if you
push 3 changes to a branch, and then push another 2 changes later,
files modified by the first 3 changes won't be considered by the filter
rules, leading to unexpected execution behaviour.

Essentially filtering based on filename is only sane when used with
merge requests, not pushes, because a merge request has a well defined
base commit against which file changes are evaluated.

Regards,
Daniel
Philippe Mathieu-Daudé July 14, 2021, 9:41 a.m. UTC | #5
On 7/13/21 1:16 PM, Daniel P. Berrangé wrote:
> On Tue, Jul 13, 2021 at 11:25:21AM +0100, Peter Maydell wrote:
>> On Mon, 12 Jul 2021 at 16:02, Philippe Mathieu-Daudé <philmd@redhat.com> wrote:
>>>
>>> The following changes since commit bd38ae26cea0d1d6a97f930248df149204c210a2:
>>>
>>>   Merge remote-tracking branch 'remotes/rth-gitlab/tags/pull-tcg-20210710' into staging (2021-07-12 11:02:39 +0100)
>>>
>>> are available in the Git repository at:
>>>
>>>   https://github.com/philmd/qemu.git tags/fw-edk2-20210712
>>>
>>> for you to fetch changes up to d1e79210457323b225c369fa00e97577e0d0da95:
>>>
>>>   MAINTAINERS: remove Laszlo Ersek's entries (2021-07-12 16:55:23 +0200)
>>>
>>> ----------------------------------------------------------------
>>> Patches related to EDK2/OVMF
>>>
>>> - MAINTAINERS: remove Laszlo Ersek's entries
>>> - Introduce X86_FW_OVMF Kconfig symbol
>>> - pc_system_ovmf_table_find: Assert that flash was parsed, document
>>>
>>> ----------------------------------------------------------------
>>
>> So, even though this pullreq doesn't seem to be changing gitlab CI
>> config, I get a "yaml invalid" failure in the pipeline:
>> https://gitlab.com/qemu-project/qemu/-/pipelines/335995843
>>
>> "'build-edk2' job needs 'docker-edk2' job but it was not added to the pipeline"
>>
>> Any ideas what that's about?
> 
> The rules for these two jobs are not compatible with the depedency
> declared between them.
> 
> The docker-edk2 job is set to exist only when edk2.yml or Dockerfile
> are changed:
> 
>  docker-edk2:
>    stage: containers
>    rules: # Only run this job when the Dockerfile is modified
>    - changes:
>      - .gitlab-ci.d/edk2.yml
>      - .gitlab-ci.d/edk2/Dockerfile
>      when: always
> 
> 
> The build-edk2 job is set to exist based on a wide variety of
> changes
> 
>  build-edk2:
>    stage: build
>    needs: ['docker-edk2']
>    rules: # Only run this job when ...
>    - changes: # ... roms/edk2/ is modified (submodule updated)
>      - roms/edk2/*
>      when: always
>    - if: '$CI_COMMIT_REF_NAME =~ /^edk2/' # or the branch/tag starts with 'edk2'
>      when: always
>    - if: '$CI_COMMIT_MESSAGE =~ /edk2/i' # or last commit description contains 'EDK2'
>      when: always
> 
> 
> If those jobs were independant those different sets of conditions
> would be ok.  The build-edk2 job, however, has a 'needs' clause
> adding a depdancy on 'docker-edk2'.
> 
> Given this dependancy, in *EVERY* scenario were 'build-edk2' job
> exists, the 'docker-edk2' job *MUST* also exist. This isn't the
> case, hence the failed pipeline.
> 
> This can be fixed by taking the 'rules' from 'build-edk2' and
> also applying them to 'docker-edk2'.

Thank you for figuring the problem and clearly explaining it!

Phil.