Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add the iommu specification for hardware #3100

Merged
merged 3 commits into from
Oct 1, 2024
Merged

Conversation

qiankehan
Copy link
Contributor

@qiankehan qiankehan commented Jul 21, 2024

Pull Request Checklist

  • implement the feature
  • write the documentation
  • extend the test coverage
  • update the specification
  • adjust plugin docstring
  • modify the json schema
  • mention the version
  • include a release note

spec/hardware/iommu.fmf Outdated Show resolved Hide resolved
spec/hardware/iommu.fmf Outdated Show resolved Hide resolved
spec/hardware/iommu.fmf Outdated Show resolved Hide resolved
spec/hardware/iommu.fmf Outdated Show resolved Hide resolved
@qiankehan
Copy link
Contributor Author

Thanks for your reviews~ I have updated the PR~

@happz happz added step | provision Stuff related to the provision step specification Metadata specification (core, tests, plans, stories) area | hardware Implementation of hardware requirements labels Aug 11, 2024
@happz happz added this to the 1.36 milestone Aug 11, 2024
@qiankehan qiankehan requested review from happz and idorax August 13, 2024 04:13
@qiankehan
Copy link
Contributor Author

Hi, I have updated the PR and add the beaker plugin support. Please help review it. Thank you~

spec/hardware/iommu.fmf Outdated Show resolved Hide resolved
Copy link
Collaborator

@martinhoyer martinhoyer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure about the 'model' part. In beaker, I don't see a way to filter by (maybe I'm missing something).

While other provisioning methods could theoretically support this going forward, I wouldn't expose it to users if there is no use for it now.
We can filter by cpu to at least get the intel/amd/arm.

@happz
Copy link
Collaborator

happz commented Aug 29, 2024

I'm not sure about the 'model' part. In beaker, I don't see a way to filter by (maybe I'm missing something).

While other provisioning methods could theoretically support this going forward, I wouldn't expose it to users if there is no use for it now. We can filter by cpu to at least get the intel/amd/arm.

IIUIC, libvirt and qemu-based plugins, like virtual, can and will make use of this requirement. And I would like to avoid encoding one requirement into another, i.e. using cpu.vendor-name to pick a model of IOMMU. That complicates reasoning about requirements and makes the picture opaque: do they use it to select a CPU, or something else we don’t support yet? It’s happening with hostname quite often.

More discussion in #2392

@martinhoyer
Copy link
Collaborator

I'm not sure about the 'model' part. In beaker, I don't see a way to filter by (maybe I'm missing something).
While other provisioning methods could theoretically support this going forward, I wouldn't expose it to users if there is no use for it now. We can filter by cpu to at least get the intel/amd/arm.

IIUIC, libvirt and qemu-based plugins, like virtual, can and will make use of this requirement. And I would like to avoid encoding one requirement into another, i.e. using cpu.vendor-name to pick a model of IOMMU. That complicates reasoning about requirements and makes the picture opaque: do they use it to select a CPU, or something else we don’t support yet? It’s happening with hostname quite often.

More discussion in #2392

Ok cool, from the discussion I got the impression it'll be only used by beaker provisioning.

@martinhoyer martinhoyer removed this from the 1.36 milestone Sep 3, 2024
@thrix thrix requested a review from happz September 10, 2024 11:37
Copy link
Collaborator

@thrix thrix left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@happz happz added the status | discuss Needs more discussion before closing label Sep 10, 2024
@happz
Copy link
Collaborator

happz commented Sep 10, 2024

Added discuss label - we're still unsure about model-name being used to pick the IOMMU "model". We're considering model, model-name, but also platform, driver, and maybe other ideas. Leaving the PR open for now, we're going to get back to it next week.

@thrix thrix removed the status | discuss Needs more discussion before closing label Oct 1, 2024
@thrix
Copy link
Collaborator

thrix commented Oct 1, 2024

This was discussed on the hacking meeting, and we will go with current version.

@psss
Copy link
Collaborator

psss commented Oct 1, 2024

Just did a quick check with the following provision step config:

provision:
    how: beaker
    hardware:
        iommu:
            is-supported: true

But don't see VIRT_IOMMU mentioned in the Beaker job xml. Have I missed anything? @happz, does it work for you?

@psss psss added the release note Include a short release note, possibly with an example or demo label Oct 1, 2024
Copy link
Collaborator

@psss psss left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The change looks good, but I don't see any hardware requirement generated in the Beaker job. This would also deserve at least a short release note.

@happz
Copy link
Collaborator

happz commented Oct 1, 2024

Just did a quick check with the following provision step config:

provision:
    how: beaker
    hardware:
        iommu:
            is-supported: true

But don't see VIRT_IOMMU mentioned in the Beaker job xml. Have I missed anything? @happz, does it work for you?

I believe that is cause by the branch being outdated, it's missing this patch: 2bef9dd

@happz happz added the ci | full test Pull request is ready for the full test execution label Oct 1, 2024
@happz
Copy link
Collaborator

happz commented Oct 1, 2024

/packit build

@psss
Copy link
Collaborator

psss commented Oct 1, 2024

I believe that is cause by the branch being outdated, it's missing this patch: 2bef9dd

Right, now it works! 👍

Copy link
Collaborator

@psss psss left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added a short release note, fixed & simplified the test in 9deed7e. Now should be good for merge.

@psss
Copy link
Collaborator

psss commented Oct 1, 2024

/packit build

@psss psss added the status | ready for merge The only missing piece is to do the rebase the current 'main' and let the CI finish. label Oct 1, 2024
@psss
Copy link
Collaborator

psss commented Oct 1, 2024

/packit build

@psss
Copy link
Collaborator

psss commented Oct 1, 2024

/packit build

@psss psss merged commit d7686b4 into teemtee:main Oct 1, 2024
23 checks passed
@psss psss self-assigned this Oct 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area | hardware Implementation of hardware requirements ci | full test Pull request is ready for the full test execution release note Include a short release note, possibly with an example or demo specification Metadata specification (core, tests, plans, stories) status | ready for merge The only missing piece is to do the rebase the current 'main' and let the CI finish. step | provision Stuff related to the provision step
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants