-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
Change QEMU netdev to Unix domain socket #21594
Change QEMU netdev to Unix domain socket #21594
Conversation
I'm open to split this PR into separate commits like:
|
This passed full e2e suite on a Windows machine. |
@baude @n1hility @jakecorrenti Could you take a look as you were doing reviews of my previous PRs on the same topic. |
d6b0f38
to
6c5309b
Compare
40a8dae
to
e0465dd
Compare
Removed Windows machine provider from this commit - reduced the scope of changes to refactoring only. |
e0465dd
to
5c48b0e
Compare
Ephemeral COPR build failed. @containers/packit-build please check. |
3c701dc
to
a31b3a1
Compare
a31b3a1
to
734f713
Compare
@baude do you see this getting into release or this change will not make it anyway? |
code LGTM but I want a @baude head nod |
734f713
to
d8be413
Compare
Rebased to latest main to use extracted wait for the socket function. This changeset should be now as compact as possible. |
d8be413
to
8628485
Compare
If this is being accepted, will also allow to close #18314 as "won't implement", as, so far, there were no newer features identified, which are breaking for the Podman machine. |
@baude did you by any chance have time to take a look at this? |
looking now! |
my one concern is that business with the fd being passed as an extrafile was crucial at one time. does this approach actually mitigate the need or ignore it ? |
It was the only option before QEMU 7.2.0 (QEMU 7.2.0 is now the oldest LTS still receiving fixes in upstream QEMU). This is one of the recaps of the changes why it had become possible to use AF_UNIX directly https://john-millikin.com/improved-unix-socket-networking-in-qemu-7.2 I can dig the PATCH series from QEMU mailing list as well. IIRC the main reason it was not exposed as netdev before, because of the incomplete parser for parameters, not that it was technically an issue to use AF_UNIX netdev directly. |
Here is the PATCH with details from the author https://lists.gnu.org/archive/html/qemu-devel/2022-10/msg03516.html I'm not sure if it is the latest revision, but the main idea was not changed through revision versions, only fixes and adjustments were applied. It is mostly old socket netdev combined with new QAPI for parameter input. |
QEMU 7.2.0 has been released in December, 2022 (https://www.qemu.org/2022/12/14/qemu-7-2-0/). My assumption was that this is old enough to become the baseline for the next generation Podman Machine (where compatibility breakages already happening - like removing QEMU support from official MacOS version, where all these machines will be eliminated and the storage format changes in general). If this is still a no go I would probably rework this into moving this change into Windows specific part and keeping Unix part with FDs. This is the part which makes current QEMU machine code not cross platform, but there are multiple ways mitigating this. |
To provide a summary: Pros:
Cons:
@jakecorrenti @baude I listed these pros and cons and provided technical details in my previous comment, now, I will leave it for your team to decide if this is a good fit for Podman now or not. Thank you a lot for your time and reviews! |
Podman 5.0 breaks the config file anyway so this shouldn't be an issue. Only we if we decide to implement some migration we need to keep this in mind but I don't think we will. |
This change migrates to new QEMU stream netdev added in 7.2.0. It also unifies how gvproxy is used in QEMU and AppleHV. Signed-off-by: Arthur Sengileyev <[email protected]>
8628485
to
656bf7b
Compare
/approve |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: arixmkii, baude The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
@arixmkii is this rebased to the latest (as of today) main branch ? |
@baude yes, it is only 2 commits behind main. |
ill babysit and assume this is a flake. |
Fixes #21544
This change migrates to new QEMU stream netdev added in 7.2.0. It also unifies how gvproxy is used in QEMU and AppleHV.
This change will require manual fixes to QEMU machine configurations migrated from 4.x, but 5.0 version is the only good point to do so. My previous work was with preserving old FD code, but it makes the codebase really messy.
It replaces my previous work from:
#21252
#17473
#18488
Does this PR introduce a user-facing change?
[NO NEW TESTS NEEDED]