https://wiki.qemu.org/api.php?action=feedcontributions&user=Mjt&feedformat=atomQEMU - User contributions [en]2024-03-29T01:46:54ZUser contributionsMediaWiki 1.39.1https://wiki.qemu.org/index.php?title=Planning/7.2&diff=11678Planning/7.22024-02-21T09:19:15Z<p>Mjt: v7.2.10</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2022-08-30<br />
| Beginning of development phase<br />
|-<br />
| 2022-11-1<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2022-11-8<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2022-11-15<br />
| Tag rc1<br />
|-<br />
| 2022-11-22<br />
| Tag rc2<br />
|-<br />
| 2022-11-29<br />
| Tag rc3<br />
|-<br />
| 2022-12-06<br />
| <strike>Release; or tag rc4 if needed</strike> Tag rc4<br />
|-<br />
| 2022-12-13<br />
| <strike>Release if we needed an rc4</strike> Release<br />
|-<br />
| 2023-03-30<br />
| Tag v7.2.1<br />
|-<br />
| 2023-04-20<br />
| Freeze for 7.2.2 stable release<br />
|-<br />
| 2023-04-22<br />
| Tag v7.2.2<br />
|-<br />
| 2023-05-27<br />
| Freeze for 7.2.3 stable release<br />
|-<br />
| 2023-05-29<br />
| Tag v7.2.3<br />
|-<br />
| 2023-07-06<br />
| Freeze for 7.2.4 stable release<br />
|-<br />
| 2023-07-08<br />
| Tag v7.2.4<br />
|-<br />
| 2023-08-05<br />
| Freeze for 7.2.5 stable release<br />
|-<br />
| 2023-08-07<br />
| Tag v7.2.5<br />
|-<br />
| 2023-09-19<br />
| Freeze for 7.2.6 stable release<br />
|-<br />
| 2023-09-21<br />
| Tag v7.2.6<br />
|-<br />
| 2023-11-19<br />
| Freeze for 7.2.7 stable/bugfix release<br />
|-<br />
| 2023-11-21<br />
| Tag v7.2.7<br />
|-<br />
| 2023-12-20<br />
| Freeze for 7.2.8 stable/bugfix release<br />
|-<br />
| 2023-12-22<br />
| Tag v7.2.8<br />
|-<br />
| 2024-01-27<br />
| Freeze for 7.2.9 stable/bugfix release<br />
|-<br />
| 2024-01-29<br />
| Tag v7.2.9<br />
|-<br />
| 2024-04-02<br />
| Freeze for 7.2.10 stable/bugfix release<br />
|-<br />
| 2024-04-04<br />
| Tag v7.2.10<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/7<br />
<br />
=== Other release ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
https://gitlab.com/mjt0k/qemu/-/commits/staging-7.2/<br />
<br />
https://gitlab.com/qemu-project/qemu/-/commits/staging-7.2/<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/7.2]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/8.2&diff=11677Planning/8.22024-02-21T08:05:36Z<p>Mjt: v8.2.2</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2023-08-22<br />
| Beginning of development phase<br />
|-<br />
| 2023-11-07<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2023-11-14<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2023-11-21<br />
| Tag rc1<br />
|-<br />
| 2023-11-28<br />
| Tag rc2<br />
|-<br />
| 2023-12-05<br />
| Tag rc3<br />
|-<br />
| 2023-12-12<br />
| Release; or tag rc4 if needed<br />
|-<br />
| 2023-12-19<br />
| Release if we needed an rc4<br />
|-<br />
| 2024-01-27<br />
| Freeze for 8.2.1 stable/bugfix release<br />
|-<br />
| 2024-01-29<br />
| Tag v8.2.1<br />
|-<br />
| 2024-04-02<br />
| Freeze for 8.2.2 stable/bugfix release<br />
|-<br />
| 2024-04-04<br />
| Tag v8.2.2<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/10<br />
<br />
== Other release info ==<br />
<br />
Currently queued patches for the next stable/bugfix release, if any:<br />
<br />
https://gitlab.com/mjt0k/qemu/-/commits/staging-8.2/<br />
<br />
https://gitlab.com/qemu-project/qemu/-/commits/staging-8.2/<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/8.2]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/8.0&diff=11609Planning/8.02024-01-18T20:19:49Z<p>Mjt: no-more-releases</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2022-12-14<br />
| Beginning of development phase<br />
|-<br />
| 2023-03-07<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2023-03-14<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2023-03-21<br />
| Tag rc1<br />
|-<br />
| 2023-03-28<br />
| Tag rc2<br />
|-<br />
| <strike>2023-04-04</strike> 2023-04-05<br />
| Tag rc3<br />
|-<br />
| <strike>2023-04-11</strike> 2023-04-13<br />
| <strike>Release; or tag rc4 if needed</strike> tag rc4<br />
|-<br />
| <strike>2023-04-18</strike> 2023-04-19<br />
| Release<br />
|-<br />
| 2023-05-27<br />
| Freeze for 8.0.1 stable release<br />
|-<br />
| 2023-05-29<br />
| Tag v8.0.1<br />
|-<br />
| 2023-05-30<br />
| Tag v8.0.2 (a bugfix for 8.0.1 release)<br />
|-<br />
| 2023-07-06<br />
| Freeze for 8.0.3 stable release<br />
|-<br />
| 2023-07-08<br />
| Tag v8.0.3<br />
|-<br />
| 2023-08-05<br />
| Freeze for 8.0.4 stable release<br />
|-<br />
| 2023-08-07<br />
| Tag v8.0.4<br />
|-<br />
| 2023-09-19<br />
| Freeze for 8.0.5 stable release<br />
|-<br />
| 2023-09-21<br />
| Tag v8.0.5 (no more 8.0.x releases are planned at this time)<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/8<br />
<br />
=== Other release info ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/8.0]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/7.2&diff=11608Planning/7.22024-01-18T14:07:26Z<p>Mjt: v7.2.9</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2022-08-30<br />
| Beginning of development phase<br />
|-<br />
| 2022-11-1<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2022-11-8<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2022-11-15<br />
| Tag rc1<br />
|-<br />
| 2022-11-22<br />
| Tag rc2<br />
|-<br />
| 2022-11-29<br />
| Tag rc3<br />
|-<br />
| 2022-12-06<br />
| <strike>Release; or tag rc4 if needed</strike> Tag rc4<br />
|-<br />
| 2022-12-13<br />
| <strike>Release if we needed an rc4</strike> Release<br />
|-<br />
| 2023-03-30<br />
| Tag v7.2.1<br />
|-<br />
| 2023-04-20<br />
| Freeze for 7.2.2 stable release<br />
|-<br />
| 2023-04-22<br />
| Tag v7.2.2<br />
|-<br />
| 2023-05-27<br />
| Freeze for 7.2.3 stable release<br />
|-<br />
| 2023-05-29<br />
| Tag v7.2.3<br />
|-<br />
| 2023-07-06<br />
| Freeze for 7.2.4 stable release<br />
|-<br />
| 2023-07-08<br />
| Tag v7.2.4<br />
|-<br />
| 2023-08-05<br />
| Freeze for 7.2.5 stable release<br />
|-<br />
| 2023-08-07<br />
| Tag v7.2.5<br />
|-<br />
| 2023-09-19<br />
| Freeze for 7.2.6 stable release<br />
|-<br />
| 2023-09-21<br />
| Tag v7.2.6<br />
|-<br />
| 2023-11-19<br />
| Freeze for 7.2.7 stable/bugfix release<br />
|-<br />
| 2023-11-21<br />
| Tag v7.2.7<br />
|-<br />
| 2023-12-20<br />
| Freeze for 7.2.8 stable/bugfix release<br />
|-<br />
| 2023-12-22<br />
| Tag v7.2.8<br />
|-<br />
| 2024-01-27<br />
| Freeze for 7.2.9 stable/bugfix release<br />
|-<br />
| 2024-01-29<br />
| Tag v7.2.9<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/7<br />
<br />
=== Other release ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
https://gitlab.com/mjt0k/qemu/-/commits/staging-7.2/<br />
<br />
https://gitlab.com/qemu-project/qemu/-/commits/staging-7.2/<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/7.2]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/7.2&diff=11607Planning/7.22024-01-18T14:06:32Z<p>Mjt: </p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2022-08-30<br />
| Beginning of development phase<br />
|-<br />
| 2022-11-1<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2022-11-8<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2022-11-15<br />
| Tag rc1<br />
|-<br />
| 2022-11-22<br />
| Tag rc2<br />
|-<br />
| 2022-11-29<br />
| Tag rc3<br />
|-<br />
| 2022-12-06<br />
| <strike>Release; or tag rc4 if needed</strike> Tag rc4<br />
|-<br />
| 2022-12-13<br />
| <strike>Release if we needed an rc4</strike> Release<br />
|-<br />
| 2023-03-30<br />
| Tag v7.2.1<br />
|-<br />
| 2023-04-20<br />
| Freeze for 7.2.2 stable release<br />
|-<br />
| 2023-04-22<br />
| Tag v7.2.2<br />
|-<br />
| 2023-05-27<br />
| Freeze for 7.2.3 stable release<br />
|-<br />
| 2023-05-29<br />
| Tag v7.2.3<br />
|-<br />
| 2023-07-06<br />
| Freeze for 7.2.4 stable release<br />
|-<br />
| 2023-07-08<br />
| Tag v7.2.4<br />
|-<br />
| 2023-08-05<br />
| Freeze for 7.2.5 stable release<br />
|-<br />
| 2023-08-07<br />
| Tag v7.2.5<br />
|-<br />
| 2023-09-19<br />
| Freeze for 7.2.6 stable release<br />
|-<br />
| 2023-09-21<br />
| Tag v7.2.6<br />
|-<br />
| 2023-11-19<br />
| Freeze for 7.2.7 stable/bugfix release<br />
|-<br />
| 2023-11-21<br />
| Tag v7.2.7<br />
|-<br />
| 2023-12-20<br />
| Freeze for 7.2.8 stable/bugfix release<br />
|-<br />
| 2023-12-22<br />
| Tag v7.2.8<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/7<br />
<br />
=== Other release ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
https://gitlab.com/mjt0k/qemu/-/commits/staging-7.2/<br />
<br />
https://gitlab.com/qemu-project/qemu/-/commits/staging-7.2/<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/7.2]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/8.1&diff=11606Planning/8.12024-01-18T12:54:13Z<p>Mjt: </p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2023-04-20<br />
| Beginning of development phase<br />
|-<br />
| 2023-07-11<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2023-07-18<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2023-07-25<br />
| Tag rc1<br />
|-<br />
| 2023-08-01<br />
| Tag rc2<br />
|-<br />
| 2023-08-08<br />
| Tag rc3<br />
|-<br />
| 2023-08-15<br />
| <strike>Release; or</strike> tag rc4 if needed<br />
|-<br />
| 2023-08-22<br />
| Release <strike>if we needed an rc4</strike><br />
|-<br />
| 2023-09-19<br />
| Freeze for 8.1.1 stable/bugfix release<br />
|-<br />
| 2023-09-21<br />
| Tag v8.1.1. Please note: v8.1.1 is being released with known, still unfixed in qemu/master, bugs, also existing in v8.1.0<br />
|-<br />
| 2023-10-14<br />
| Freeze for 8.1.2 stable/bugfix release<br />
|-<br />
| 2023-10-16<br />
| Tag v8.1.2<br />
|-<br />
| 2023-11-19<br />
| Freeze for 8.1.3 stable/bugfix release<br />
|-<br />
| 2023-11-21<br />
| Tag v8.1.3<br />
|-<br />
| 2023-12-20<br />
| Freeze for 8.1.4 stable/bugfix release<br />
|-<br />
| 2023-12-22<br />
| Tag v8.1.4<br />
|-<br />
| 2024-01-27<br />
| Freeze for 8.1.5 stable/bugfix release<br />
|-<br />
| 2024-01-29<br />
| Tag v8.1.5 (no subsequent 8.1.x stable releases are planned after this point)<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/9<br />
<br />
=== Other release info ===<br />
<br />
Currently queued patches for the next stable/bugfix release, if any:<br />
<br />
https://gitlab.com/mjt0k/qemu/-/commits/staging-8.1/<br />
<br />
https://gitlab.com/qemu-project/qemu/-/commits/staging-8.1/<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/8.1]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/8.1&diff=11605Planning/8.12024-01-18T12:48:52Z<p>Mjt: 8.1.5</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2023-04-20<br />
| Beginning of development phase<br />
|-<br />
| 2023-07-11<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2023-07-18<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2023-07-25<br />
| Tag rc1<br />
|-<br />
| 2023-08-01<br />
| Tag rc2<br />
|-<br />
| 2023-08-08<br />
| Tag rc3<br />
|-<br />
| 2023-08-15<br />
| <strike>Release; or</strike> tag rc4 if needed<br />
|-<br />
| 2023-08-22<br />
| Release <strike>if we needed an rc4</strike><br />
|-<br />
| 2023-09-19<br />
| Freeze for 8.1.1 stable/bugfix release<br />
|-<br />
| 2023-09-21<br />
| Tag v8.1.1. Please note: v8.1.1 is being released with known, still unfixed in qemu/master, bugs, also existing in v8.1.0<br />
|-<br />
| 2023-10-14<br />
| Freeze for 8.1.2 stable/bugfix release<br />
|-<br />
| 2023-10-16<br />
| Tag v8.1.2<br />
|-<br />
| 2023-11-19<br />
| Freeze for 8.1.3 stable/bugfix release<br />
|-<br />
| 2023-11-21<br />
| Tag v8.1.3<br />
|-<br />
| 2023-12-20<br />
| Freeze for 8.1.4 stable/bugfix release<br />
|-<br />
| 2023-12-22<br />
| Tag v8.1.4<br />
|-<br />
| 2024-01-27<br />
| Freeze for 8.1.5 stable/bugfix release<br />
|-<br />
| 2024-01-29<br />
| Tag v8.1.5 (no subsequent stable releases are planned after this point)<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/9<br />
<br />
=== Other release info ===<br />
<br />
Currently queued patches for the next stable/bugfix release, if any:<br />
<br />
https://gitlab.com/mjt0k/qemu/-/commits/staging-8.1/<br />
<br />
https://gitlab.com/qemu-project/qemu/-/commits/staging-8.1/<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/8.1]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/8.1&diff=11604Planning/8.12024-01-18T10:34:29Z<p>Mjt: /* Other release info */</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2023-04-20<br />
| Beginning of development phase<br />
|-<br />
| 2023-07-11<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2023-07-18<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2023-07-25<br />
| Tag rc1<br />
|-<br />
| 2023-08-01<br />
| Tag rc2<br />
|-<br />
| 2023-08-08<br />
| Tag rc3<br />
|-<br />
| 2023-08-15<br />
| <strike>Release; or</strike> tag rc4 if needed<br />
|-<br />
| 2023-08-22<br />
| Release <strike>if we needed an rc4</strike><br />
|-<br />
| 2023-09-19<br />
| Freeze for 8.1.1 stable/bugfix release<br />
|-<br />
| 2023-09-21<br />
| Tag v8.1.1. Please note: v8.1.1 is being released with known, still unfixed in qemu/master, bugs, also existing in v8.1.0<br />
|-<br />
| 2023-10-14<br />
| Freeze for 8.1.2 stable/bugfix release<br />
|-<br />
| 2023-10-16<br />
| Tag v8.1.2<br />
|-<br />
| 2023-11-19<br />
| Freeze for 8.1.3 stable/bugfix release<br />
|-<br />
| 2023-11-21<br />
| Tag v8.1.3<br />
|-<br />
| 2023-12-20<br />
| Freeze for 8.1.4 stable/bugfix release<br />
|-<br />
| 2023-12-22<br />
| Tag v8.1.4<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/9<br />
<br />
=== Other release info ===<br />
<br />
Currently queued patches for the next stable/bugfix release, if any:<br />
<br />
https://gitlab.com/mjt0k/qemu/-/commits/staging-8.1/<br />
<br />
https://gitlab.com/qemu-project/qemu/-/commits/staging-8.1/<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/8.1]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/8.2&diff=11603Planning/8.22024-01-18T10:33:55Z<p>Mjt: </p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2023-08-22<br />
| Beginning of development phase<br />
|-<br />
| 2023-11-07<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2023-11-14<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2023-11-21<br />
| Tag rc1<br />
|-<br />
| 2023-11-28<br />
| Tag rc2<br />
|-<br />
| 2023-12-05<br />
| Tag rc3<br />
|-<br />
| 2023-12-12<br />
| Release; or tag rc4 if needed<br />
|-<br />
| 2023-12-19<br />
| Release if we needed an rc4<br />
|-<br />
| 2024-01-27<br />
| Freeze for 8.2.1 stable/bugfix release<br />
|-<br />
| 2024-01-29<br />
| Tag v8.2.1 <br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/10<br />
<br />
== Other release info ==<br />
<br />
Currently queued patches for the next stable/bugfix release, if any:<br />
<br />
https://gitlab.com/mjt0k/qemu/-/commits/staging-8.2/<br />
<br />
https://gitlab.com/qemu-project/qemu/-/commits/staging-8.2/<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/8.2]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/8.2&diff=11602Planning/8.22024-01-18T10:09:16Z<p>Mjt: </p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2023-08-22<br />
| Beginning of development phase<br />
|-<br />
| 2023-11-07<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2023-11-14<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2023-11-21<br />
| Tag rc1<br />
|-<br />
| 2023-11-28<br />
| Tag rc2<br />
|-<br />
| 2023-12-05<br />
| Tag rc3<br />
|-<br />
| 2023-12-12<br />
| Release; or tag rc4 if needed<br />
|-<br />
| 2023-12-19<br />
| Release if we needed an rc4<br />
|-<br />
| 2024-01-27<br />
| Freeze for 8.2.1 stable/bugfix release<br />
|-<br />
| 2024-01-29<br />
| Tag v8.2.1 <br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/10<br />
<br />
Currently queued patches for the next stable/bugfix release, if any:<br />
<br />
https://gitlab.com/mjt0k/qemu/-/commits/staging-8.2/<br />
<br />
https://gitlab.com/qemu-project/qemu/-/commits/staging-8.2/<br />
<br />
=== Other release info ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/8.2]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/8.2&diff=11601Planning/8.22024-01-18T10:08:39Z<p>Mjt: </p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2023-08-22<br />
| Beginning of development phase<br />
|-<br />
| 2023-11-07<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2023-11-14<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2023-11-21<br />
| Tag rc1<br />
|-<br />
| 2023-11-28<br />
| Tag rc2<br />
|-<br />
| 2023-12-05<br />
| Tag rc3<br />
|-<br />
| 2023-12-12<br />
| Release; or tag rc4 if needed<br />
|-<br />
| 2023-12-19<br />
| Release if we needed an rc4<br />
|-<br />
| 2024-01-27<br />
| Freeze for 8.2.1 stable/bugfix release<br />
|-<br />
| 2024-01-29<br />
| Tag v8.2.1 <br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/10<br />
<br />
Currently queued patches for the next stable:<br />
<br />
https://gitlab.com/mjt0k/qemu/-/commits/staging-8.2/<br />
<br />
https://gitlab.com/qemu-project/qemu/-/commits/staging-8.2/<br />
<br />
=== Other release info ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/8.2]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/8.2&diff=11600Planning/8.22024-01-18T07:49:59Z<p>Mjt: v8.2.1</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2023-08-22<br />
| Beginning of development phase<br />
|-<br />
| 2023-11-07<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2023-11-14<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2023-11-21<br />
| Tag rc1<br />
|-<br />
| 2023-11-28<br />
| Tag rc2<br />
|-<br />
| 2023-12-05<br />
| Tag rc3<br />
|-<br />
| 2023-12-12<br />
| Release; or tag rc4 if needed<br />
|-<br />
| 2023-12-19<br />
| Release if we needed an rc4<br />
|-<br />
| 2024-01-27<br />
| Freeze for 8.2.1 stable/bugfix release<br />
|-<br />
| 2024-01-29<br />
| Tag v8.2.1 <br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/10<br />
<br />
=== Other release info ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/8.2]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/7.2&diff=11563Planning/7.22023-12-11T18:16:42Z<p>Mjt: v7.2.8</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2022-08-30<br />
| Beginning of development phase<br />
|-<br />
| 2022-11-1<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2022-11-8<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2022-11-15<br />
| Tag rc1<br />
|-<br />
| 2022-11-22<br />
| Tag rc2<br />
|-<br />
| 2022-11-29<br />
| Tag rc3<br />
|-<br />
| 2022-12-06<br />
| <strike>Release; or tag rc4 if needed</strike> Tag rc4<br />
|-<br />
| 2022-12-13<br />
| <strike>Release if we needed an rc4</strike> Release<br />
|-<br />
| 2023-03-30<br />
| Tag v7.2.1<br />
|-<br />
| 2023-04-20<br />
| Freeze for 7.2.2 stable release<br />
|-<br />
| 2023-04-22<br />
| Tag v7.2.2<br />
|-<br />
| 2023-05-27<br />
| Freeze for 7.2.3 stable release<br />
|-<br />
| 2023-05-29<br />
| Tag v7.2.3<br />
|-<br />
| 2023-07-06<br />
| Freeze for 7.2.4 stable release<br />
|-<br />
| 2023-07-08<br />
| Tag v7.2.4<br />
|-<br />
| 2023-08-05<br />
| Freeze for 7.2.5 stable release<br />
|-<br />
| 2023-08-07<br />
| Tag v7.2.5<br />
|-<br />
| 2023-09-19<br />
| Freeze for 7.2.6 stable release<br />
|-<br />
| 2023-09-21<br />
| Tag v7.2.6<br />
|-<br />
| 2023-11-19<br />
| Freeze for 7.2.7 stable/bugfix release<br />
|-<br />
| 2023-11-21<br />
| Tag v7.2.7<br />
|-<br />
| 2023-12-20<br />
| Freeze for 7.2.8 stable/bugfix release<br />
|-<br />
| 2023-12-22<br />
| Tag v7.2.8<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/7<br />
<br />
=== Other release ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/7.2]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/8.1&diff=11562Planning/8.12023-12-11T18:15:12Z<p>Mjt: v8.1.4</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2023-04-20<br />
| Beginning of development phase<br />
|-<br />
| 2023-07-11<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2023-07-18<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2023-07-25<br />
| Tag rc1<br />
|-<br />
| 2023-08-01<br />
| Tag rc2<br />
|-<br />
| 2023-08-08<br />
| Tag rc3<br />
|-<br />
| 2023-08-15<br />
| <strike>Release; or</strike> tag rc4 if needed<br />
|-<br />
| 2023-08-22<br />
| Release <strike>if we needed an rc4</strike><br />
|-<br />
| 2023-09-19<br />
| Freeze for 8.1.1 stable/bugfix release<br />
|-<br />
| 2023-09-21<br />
| Tag v8.1.1. Please note: v8.1.1 is being released with known, still unfixed in qemu/master, bugs, also existing in v8.1.0<br />
|-<br />
| 2023-10-14<br />
| Freeze for 8.1.2 stable/bugfix release<br />
|-<br />
| 2023-10-16<br />
| Tag v8.1.2<br />
|-<br />
| 2023-11-19<br />
| Freeze for 8.1.3 stable/bugfix release<br />
|-<br />
| 2023-11-21<br />
| Tag v8.1.3<br />
|-<br />
| 2023-12-20<br />
| Freeze for 8.1.4 stable/bugfix release<br />
|-<br />
| 2023-12-22<br />
| Tag v8.1.4<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/9<br />
<br />
=== Other release info ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/8.1]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=ChangeLog/8.2&diff=11549ChangeLog/8.22023-11-13T21:48:55Z<p>Mjt: /* User-mode emulation */</p>
<hr />
<div>== System emulation ==<br />
<br />
=== Removed features and incompatible changes ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/removed-features.html 'Removed features'] page for details of suggested replacement functionality.<br />
<br />
* The HAX accelerator is not supported anymore; [https://github.com/intel/haxm#status the project has been retired]. Use "whpx" or "hvf" respectively on Windows and macOS.<br />
* The old machine types pc-i440fx-1.4 to pc-i440fx-1.7 have been removed; use a newer machine type instead<br />
* In addition to <tt>-audiodev</tt> and <tt>-audio</tt>, QEMU does not create default audio backends anymore if the <tt>-nodefaults</tt> option are used on the command line.<br />
* If an audio backend is created with <tt>-audiodev</tt>, each audio client (a sound card or VNC) that wants to use it has to specify an <tt>audiodev=</tt> property. Previously, the first audiodev command line option would be used as a fallback. However <tt>-audio</tt> can now be used to configure one or more default audio backends, in lieu of the (deprecated and now removed) <tt>QEMU_AUDIO_*</tt> environment variables.<br />
* Running QEMU with KVM requires Linux 4.4 or newer. A future version of QEMU will increase the minimum requirement for Arm hosts to Linux 4.19 (also when running KVM); if this is too restrictive for your use case, please contact us at qemu-devel@nongnu.org.<br />
<br />
=== New deprecated options and features ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/deprecated.html "Deprecated Features"] chapter of the QEMU System Emulation User's Guide for further details of the deprecations and their suggested replacements.<br />
<br />
=== 68k ===<br />
<br />
* The Macintosh Quadra 800 (q800) emulation now can boot:<br />
** MacOS 7.1 - 8.1, with or without virtual memory enabled<br />
** A/UX 3.0.1<br />
** NetBSD 9.3<br />
** Linux (via EMILE)<br />
<br />
=== Alpha ===<br />
<br />
=== Arm ===<br />
* The following machines support the new <tt>audiodev</tt> property: integratorcp, musicpal, n800, n810, realview-eb, realview-eb-mpcore, realview-pb-a8, realview-pbx-a9, akita, borzoi, spitz, terrier, versatilepb, versatileab, vexpress-a9, vexpress-a15, xlnx-zcu102 z2<br />
* Xilinx Versal board now models the CFU/CFI<br />
* Xilinx Versal board now models the TRNG device<br />
* New CPU type: cortex-a710<br />
* New architectural features now emulated:<br />
** FEAT_PACQARMA3<br />
** FEAT_EPAC<br />
** FEAT_Pauth2<br />
** FEAT_FPAC<br />
** FEAT_FPACCOMBINE<br />
** FEAT_TIDCP1<br />
** FEAT_MOPS<br />
** FEAT_HBC<br />
** FEAT_HPMN0<br />
* The SMMUv3 now advertises the SMMUv3.1-XNX feature<br />
<br />
=== AVR ===<br />
<br />
=== Hexagon ===<br />
<br />
=== HPPA ===<br />
* New 64-bit PA-RISC 2.0 CPU emulation, enable with "-cpu hppa64" and "-cpu hppa" for 32-bit CPU (default)<br />
* New HP C3700 machine emulation, includes an emulated Astro memory controller and some Elroy PCI bridges<br />
* Start 64-bit machine with "-machine C3700" and 32-bit CPU with "-machine B160L"<br />
* Improved TLB performance<br />
* Block-TLB (BTLB) support for 32-bit PA-RISC CPUs<br />
* New SeaBIOS-hppa version 10 to support HP C3000 with Astro & Elroy<br />
<br />
=== LoongArch ===<br />
<br />
=== Microblaze ===<br />
<br />
=== MIPS ===<br />
* The <tt>fuloong2e</tt> machine supports the new <tt>audiodev</tt> property.<br />
<br />
=== Nios2 ===<br />
* signal tests disabled due to bitrot<br />
<br />
=== OpenRISC ===<br />
<br />
=== PowerPC ===<br />
* The <tt>pegasos2</tt> and <tt>40p</tt> machines support the new <tt>audiodev</tt> property.<br />
<br />
=== Renesas RX ===<br />
<br />
=== Renesas SH ===<br />
<br />
=== RISC-V ===<br />
==== ISA and Extensions ====<br />
* Add zmmul isa string<br />
* Add smepmp isa string<br />
* Add RISC-V vector cryptographic instruction set support<br />
* Implement WARL behaviour for mcountinhibit/mcounteren<br />
* Add Zihintntl extension ISA string to DTS<br />
* Fix zfa fleq.d and fltq.d<br />
* Add RISC-V KVM AIA Support<br />
* Fix riscv,pmu DT node path in the virt machine<br />
* Update CSR bits name for svadu extension<br />
* Mark zicond non-experimental<br />
* Align the AIA model to v1.0 ratified spec<br />
* Use env_archcpu for better performance<br />
* Rename ext_icboz to ext_zicboz<br />
* Rename ext_icbom to ext_zicbom<br />
* Rename ext_icsr to ext_zicsr<br />
* Rename ext_ifencei to ext_zifencei<br />
* Add RISC-V Virtual IRQs and IRQ filtering support<br />
* Rename epmp to smepmp and expose the extension<br />
* Support zicntr/zihpm flags and disable support<br />
* Update RISC-V vector crypto to ratified v1.0.0<br />
* Support discontinuous PMU counters<br />
<br />
==== Machines ====<br />
* Remove 'host' CPU from TCG<br />
* riscv_htif Fixup printing on big endian hosts<br />
* Add support for the max CPU<br />
* Detect user choice in TCG<br />
* Remove RVG warning<br />
* Change default linux-user cpu to 'max'<br />
* Update 'virt' machine core limit<br />
* Add query-cpu-model-expansion API<br />
<br />
==== Fixes and Misc ====<br />
* Fix page_check_range use in fault-only-first<br />
* Fix upper/lower mtime write calculation<br />
* Make rtc variable names consistent<br />
* Use abi type for linux-user target_ucontext<br />
* Fix satp_mode_finalize() when satp_mode.supported = 0<br />
* Fix non-KVM --enable-debug build<br />
* Add new extensions to hwprobe<br />
* Use accelerated helper for AES64KS1I<br />
* Allocate itrigger timers only once<br />
* Respect mseccfg.RLB for pmpaddrX changes<br />
* Don't read the CSR in riscv_csrrw_do64<br />
* Clear CSR values at reset and sync MPSTATE with host<br />
* Fix the typo of inverted order of pmpaddr13 and pmpaddr14<br />
* Replace GDB exit calls with proper shutdown<br />
* Support KVM_GET_REG_LIST<br />
* Deprecate capital 'Z' CPU properties<br />
* Fix vfwmaccbf16.vf<br />
* Clear pmp/smepmp bits on reset<br />
* Ignore pmp writes when RW=01<br />
* Correct CSR_MSECCFG operations<br />
* Clear the Ibex/OpenTitan SPI interrupts even if disabled<br />
* Set the OpenTitan priv to 1.12.0<br />
<br />
=== s390x ===<br />
<br />
* Emulated VFMIN and VFMAX instructions now correctly raise a specification exceptions when bits 1-3 of M5 are set<br />
* Fixed emulated VSTL instruction with a large length<br />
* Fixed emulated VREP instruction to use a 16-bit immediate<br />
* Fixed the "ignored match" case in the emulated VSTRS instruction<br />
* Enable crypto adapter passthrough (vfio-ap) for protected virtualization guests<br />
* Support s390x CPU topology (books and drawers, STSI 15.1.x instruction, PTF instruction) with KVM<br />
<br />
=== SPARC ===<br />
<br />
=== Tricore ===<br />
* Added TC37x CPU that implements ISA v1.6.2<br />
* Added CRCN, FTOU, FTOHP, and HPTOF instructions<br />
* Fixed RCPW/RRPW_INSERT instructions for width=0<br />
* Fixed RCRR_INSERT using the wrong destination register<br />
* Fixed FTOUZ being only available from ISA v1.3.1 upwards<br />
<br />
=== x86 ===<br />
<br />
==== Xen emulation under KVM ====<br />
<br />
* Support PV console and network devices.<br />
* Bug fixes to support running Xen PV guests under "shim", documented in the [https://qemu-project.gitlab.io/qemu/system/i386/xen.html "Xen HVM guest support"] page.<br />
* Simplify command line for block and network devices.<br />
<br />
==== TCG ====<br />
* Support for SHA instructions.<br />
<br />
=== Xtensa ===<br />
<br />
=== Device emulation and assignment ===<br />
<br />
==== ACPI / SMBIOS ====<br />
<br />
==== Audio ====<br />
<br />
* <span id="virtio-sound"></span>Added virtio-sound device which implements capture and playback from inside a guest using the configured audio backend of the host machine. It is documented in the [https://qemu-project.gitlab.io/qemu/system/devices/virtio-snd.html "Device Emulation / virtio sound"] page.<br />
<br />
==== Block devices ====<br />
<br />
* Parallels Format Driver<br />
** Improved 'qemu-img check' facility<br />
*** Recover from broken data_off in the header<br />
*** Drop clusters outside of the image file<br />
*** De-duplicate clusters located on the same offset in the host file<br />
** Introduced ability to execute check automatically (if disk image is opened in read/write mode) if corruption is detected by open<br />
** Cluster allocation is now based on the cluster used bitmap (clusters could be allocated in holes inside image file)<br />
** Minimal DISCARD & WRITE_ZEROES support<br />
<br />
==== Graphics ====<br />
* New virtio-gpu '''rutabaga''' device. It allows various abstractions of GPU and display virtualization, coming from the Android/CrosVM graphical stack [https://crosvm.dev/book/appendix/rutabaga_gfx.html Rutabaga doc]. This should help [https://developer.android.com/studio/releases/emulator Android Emulator] use upstream QEMU, and offers alternative solutions (or context types) than [https://docs.mesa3d.org/drivers/virgl/ virgl].<br />
* ati-vga pixman-less support and fixes<br />
* virtio-gpu blob=true VM can now be migrated<br />
<br />
==== Hyper-V ====<br />
<br />
* New Hyper-V Dynamic Memory protocol device '''hv-balloon'''. This driver is like '''virtio-balloon''' on steroids for Windows guests: it allows both changing the guest memory allocation via ballooning and inserting pieces of extra RAM into it on demand from a provided memory backend via Windows-native Dynamic Memory protocol.<br />
<br />
==== I2C ====<br />
<br />
==== Input devices ====<br />
<br />
==== IPMI ====<br />
<br />
==== Multi-process QEMU ====<br />
<br />
==== Network devices ====<br />
<br />
==== NVDIMM ====<br />
<br />
==== NVMe ====<br />
<br />
==== PCI/PCIe ====<br />
* Added Astro Memory controller with Elroy PCI host busses for PA-RISC (hppa) machines<br />
<br />
==== SCSI ====<br />
<br />
==== SD card ====<br />
<br />
==== SMBIOS ====<br />
<br />
==== TPM ====<br />
<br />
==== USB ====<br />
<br />
==== VFIO ====<br />
<br />
==== virtio ====<br />
* virtio-mem now supports to dynamically consume multiple memslots instead of statically a single big one. The feature can be enabled using "dynamic-memslots=on", which can severely reduce KVM memory slot metadata overhead with large virtio-mem devices that only expose a small amount of memory to the VM. Note that the feature is incompatible with vhost devices that provide less than 509 memslots, like most vhost-user devices.<br />
* Added virtio-sound device. See [[ChangeLog/8.2#virtio-sound|Audio section/virtio-sound]]<br />
<br />
==== vDPA ====<br />
<br />
==== Xen ====<br />
<br />
* Support PV unplug for AHCI disks with the q35 platform.<br />
* Allow creation of PV console devices from the command line.<br />
* Allow creation of PV network devices, including '<tt>-nic xxx,model=xen-net-device</tt>' and the default NIC.<br />
* Support '<tt>-drive file=FILENAME,if=xen</tt>' for creating PV block devices with automatic names.<br />
<br />
==== fw_cfg ====<br />
<br />
==== 9pfs ====<br />
<br />
==== virtiofs ====<br />
<br />
==== Semihosting ====<br />
<br />
=== Audio ===<br />
<br />
* Added virtio-sound device. See [[ChangeLog/8.2#virtio-sound|Audio section/virtio-sound]]<br />
<br />
=== Character devices ===<br />
<br />
=== Crypto subsystem ===<br />
<br />
=== Authorization subsystem ===<br />
<br />
=== GUI ===<br />
* cocoa: add zoom-to-fit display option<br />
* gtk: various minor fixes<br />
<br />
=== GDBStub ===<br />
* fixes cases where wrong threads were reported to gdb<br />
<br />
=== TCG Plugins ===<br />
* fix bug in reporting too many instructions to qemu_plugin_tb_n_insns()<br />
* fix locking on execlog<br />
* windows support<br />
<br />
=== Host support ===<br />
<br />
=== Memory backends ===<br />
* memory-backend-file now supports the "rom" parameter. "share=off,readonly=off,rom=on" can be used for VM-templating with R/O files: open the file R/O, but create writable RAM instead of Read Only Memory (ROM).<br />
* "VM templating" documentation was added<br />
<br />
=== Migration ===<br />
<br />
* Legacy compression migration is deprecated ("compress" as capability, "compress-level", "compress-threads", "compress-wait-thread", "decompress-threads" as parameters). Suggest to use multifd compression instead.<br />
* Block migration is deprecated. QMP command "migrate" parameters "blk" and "inc" are deprecated. Suggest to use driver-mirror with NBD instead. <br />
* Fixed race conditions for postcopy migration when preempt mode is enabled.<br />
* Postcopy recovery now allows network failure to happen even during RECOVER phase.<br />
* Added migration parameter "avail-switchover-bandwidth" migration parameter, can be used when the user observes extremely slow bandwidth during migration, causing migration to never complete. <br />
* Initial part of migration mode "cpr-reboot" integrated.<br />
<br />
=== Monitor ===<br />
<br />
==== QMP ====<br />
<br />
==== HMP ====<br />
<br />
=== Network ===<br />
<br />
=== Block device backends and tools ===<br />
* The qemu NBD implementation for both server and client now supports the recent NBD protocol extension of 64-bit extended headers. When both sides of an NBD connection support this extension, commands like write zeroes or block status can operate on 64-bit effect lengths, rather than being capped to transaction sizes smaller than 4G.<br />
<br />
=== Tracing ===<br />
<br />
=== Semihosting ===<br />
<br />
=== Miscellaneous ===<br />
* Allow '''dump-guest-memory''' to output '''standard kdump''' format<br />
<br />
== User-mode emulation ==<br />
=== runtime ===<br />
<br />
Since this release, qemu linux-user implements and provides vdso for most popular architectures.<br />
<br />
=== binfmt_misc ===<br />
<br />
=== alpha ===<br />
* Emulated /proc/cpuinfo output in linux-user<br />
<br />
=== arm/arm64/aarch64 ===<br />
* Emulated /proc/cpuinfo output in linux-user<br />
<br />
=== LoongArch ===<br />
<br />
=== HPPA ===<br />
<br />
=== s390 ===<br />
<br />
=== x86 ===<br />
<br />
== TCG backends ==<br />
<br />
=== RISC-V ===<br />
<br />
== Guest agent ==<br />
<br />
== Build Information ==<br />
<br />
* Coding style has been updated to allow loop variables<br />
* It is possible to build a non-relocatable binary of QEMU with the configure option <tt>--disable-relocatable</tt>. The default remains a relocatable install (that is, all the directories within the install prefix are computed based on the path to the executable).<br />
<br />
=== Build Dependencies ===<br />
* Building QEMU now requires Python 3.8. As a consequence, building on Debian 10 is not supported anymore (unless a newer version of Python is installed by other means).<br />
* Building QEMU now uses the tomli library if Python is older than version 3.11. However, version 2.0.1 is bundled in case tomli is not installed on the host.<br />
* The libfdt library is no longer bundled with QEMU. However, if QEMU is configured with --enable-download and the library is absent, then it will be downloaded and built together if any emulators need it.<br />
* The [https://www.pixman.org/ Pixman] library is no longer strictly required. The VC, VNC, Gtk, Spice, screendump features and a few devices still require it.<br />
* When running <tt>make check-avocado</tt>, the Avocado testing framework and pycdlib must be present if the build tree was configured with <tt>--disable-download</tt>. Until 8.1, Avocado was always downloaded from PyPI.<br />
<br />
=== Windows ===<br />
<br />
=== Testing and CI ===<br />
* ccache has been enabled for CI builds<br />
* container backend is now selected by configure script<br />
<br />
== Known issues ==<br />
<br />
* See https://gitlab.com/qemu-project/qemu/-/milestones/10</div>Mjthttps://wiki.qemu.org/index.php?title=ChangeLog/8.2&diff=11548ChangeLog/8.22023-11-13T21:48:13Z<p>Mjt: /* runtime */</p>
<hr />
<div>== System emulation ==<br />
<br />
=== Removed features and incompatible changes ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/removed-features.html 'Removed features'] page for details of suggested replacement functionality.<br />
<br />
* The HAX accelerator is not supported anymore; [https://github.com/intel/haxm#status the project has been retired]. Use "whpx" or "hvf" respectively on Windows and macOS.<br />
* The old machine types pc-i440fx-1.4 to pc-i440fx-1.7 have been removed; use a newer machine type instead<br />
* In addition to <tt>-audiodev</tt> and <tt>-audio</tt>, QEMU does not create default audio backends anymore if the <tt>-nodefaults</tt> option are used on the command line.<br />
* If an audio backend is created with <tt>-audiodev</tt>, each audio client (a sound card or VNC) that wants to use it has to specify an <tt>audiodev=</tt> property. Previously, the first audiodev command line option would be used as a fallback. However <tt>-audio</tt> can now be used to configure one or more default audio backends, in lieu of the (deprecated and now removed) <tt>QEMU_AUDIO_*</tt> environment variables.<br />
* Running QEMU with KVM requires Linux 4.4 or newer. A future version of QEMU will increase the minimum requirement for Arm hosts to Linux 4.19 (also when running KVM); if this is too restrictive for your use case, please contact us at qemu-devel@nongnu.org.<br />
<br />
=== New deprecated options and features ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/deprecated.html "Deprecated Features"] chapter of the QEMU System Emulation User's Guide for further details of the deprecations and their suggested replacements.<br />
<br />
=== 68k ===<br />
<br />
* The Macintosh Quadra 800 (q800) emulation now can boot:<br />
** MacOS 7.1 - 8.1, with or without virtual memory enabled<br />
** A/UX 3.0.1<br />
** NetBSD 9.3<br />
** Linux (via EMILE)<br />
<br />
=== Alpha ===<br />
<br />
=== Arm ===<br />
* The following machines support the new <tt>audiodev</tt> property: integratorcp, musicpal, n800, n810, realview-eb, realview-eb-mpcore, realview-pb-a8, realview-pbx-a9, akita, borzoi, spitz, terrier, versatilepb, versatileab, vexpress-a9, vexpress-a15, xlnx-zcu102 z2<br />
* Xilinx Versal board now models the CFU/CFI<br />
* Xilinx Versal board now models the TRNG device<br />
* New CPU type: cortex-a710<br />
* New architectural features now emulated:<br />
** FEAT_PACQARMA3<br />
** FEAT_EPAC<br />
** FEAT_Pauth2<br />
** FEAT_FPAC<br />
** FEAT_FPACCOMBINE<br />
** FEAT_TIDCP1<br />
** FEAT_MOPS<br />
** FEAT_HBC<br />
** FEAT_HPMN0<br />
* The SMMUv3 now advertises the SMMUv3.1-XNX feature<br />
<br />
=== AVR ===<br />
<br />
=== Hexagon ===<br />
<br />
=== HPPA ===<br />
* New 64-bit PA-RISC 2.0 CPU emulation, enable with "-cpu hppa64" and "-cpu hppa" for 32-bit CPU (default)<br />
* New HP C3700 machine emulation, includes an emulated Astro memory controller and some Elroy PCI bridges<br />
* Start 64-bit machine with "-machine C3700" and 32-bit CPU with "-machine B160L"<br />
* Improved TLB performance<br />
* Block-TLB (BTLB) support for 32-bit PA-RISC CPUs<br />
* New SeaBIOS-hppa version 10 to support HP C3000 with Astro & Elroy<br />
<br />
=== LoongArch ===<br />
<br />
=== Microblaze ===<br />
<br />
=== MIPS ===<br />
* The <tt>fuloong2e</tt> machine supports the new <tt>audiodev</tt> property.<br />
<br />
=== Nios2 ===<br />
* signal tests disabled due to bitrot<br />
<br />
=== OpenRISC ===<br />
<br />
=== PowerPC ===<br />
* The <tt>pegasos2</tt> and <tt>40p</tt> machines support the new <tt>audiodev</tt> property.<br />
<br />
=== Renesas RX ===<br />
<br />
=== Renesas SH ===<br />
<br />
=== RISC-V ===<br />
==== ISA and Extensions ====<br />
* Add zmmul isa string<br />
* Add smepmp isa string<br />
* Add RISC-V vector cryptographic instruction set support<br />
* Implement WARL behaviour for mcountinhibit/mcounteren<br />
* Add Zihintntl extension ISA string to DTS<br />
* Fix zfa fleq.d and fltq.d<br />
* Add RISC-V KVM AIA Support<br />
* Fix riscv,pmu DT node path in the virt machine<br />
* Update CSR bits name for svadu extension<br />
* Mark zicond non-experimental<br />
* Align the AIA model to v1.0 ratified spec<br />
* Use env_archcpu for better performance<br />
* Rename ext_icboz to ext_zicboz<br />
* Rename ext_icbom to ext_zicbom<br />
* Rename ext_icsr to ext_zicsr<br />
* Rename ext_ifencei to ext_zifencei<br />
* Add RISC-V Virtual IRQs and IRQ filtering support<br />
* Rename epmp to smepmp and expose the extension<br />
* Support zicntr/zihpm flags and disable support<br />
* Update RISC-V vector crypto to ratified v1.0.0<br />
* Support discontinuous PMU counters<br />
<br />
==== Machines ====<br />
* Remove 'host' CPU from TCG<br />
* riscv_htif Fixup printing on big endian hosts<br />
* Add support for the max CPU<br />
* Detect user choice in TCG<br />
* Remove RVG warning<br />
* Change default linux-user cpu to 'max'<br />
* Update 'virt' machine core limit<br />
* Add query-cpu-model-expansion API<br />
<br />
==== Fixes and Misc ====<br />
* Fix page_check_range use in fault-only-first<br />
* Fix upper/lower mtime write calculation<br />
* Make rtc variable names consistent<br />
* Use abi type for linux-user target_ucontext<br />
* Fix satp_mode_finalize() when satp_mode.supported = 0<br />
* Fix non-KVM --enable-debug build<br />
* Add new extensions to hwprobe<br />
* Use accelerated helper for AES64KS1I<br />
* Allocate itrigger timers only once<br />
* Respect mseccfg.RLB for pmpaddrX changes<br />
* Don't read the CSR in riscv_csrrw_do64<br />
* Clear CSR values at reset and sync MPSTATE with host<br />
* Fix the typo of inverted order of pmpaddr13 and pmpaddr14<br />
* Replace GDB exit calls with proper shutdown<br />
* Support KVM_GET_REG_LIST<br />
* Deprecate capital 'Z' CPU properties<br />
* Fix vfwmaccbf16.vf<br />
* Clear pmp/smepmp bits on reset<br />
* Ignore pmp writes when RW=01<br />
* Correct CSR_MSECCFG operations<br />
* Clear the Ibex/OpenTitan SPI interrupts even if disabled<br />
* Set the OpenTitan priv to 1.12.0<br />
<br />
=== s390x ===<br />
<br />
* Emulated VFMIN and VFMAX instructions now correctly raise a specification exceptions when bits 1-3 of M5 are set<br />
* Fixed emulated VSTL instruction with a large length<br />
* Fixed emulated VREP instruction to use a 16-bit immediate<br />
* Fixed the "ignored match" case in the emulated VSTRS instruction<br />
* Enable crypto adapter passthrough (vfio-ap) for protected virtualization guests<br />
* Support s390x CPU topology (books and drawers, STSI 15.1.x instruction, PTF instruction) with KVM<br />
<br />
=== SPARC ===<br />
<br />
=== Tricore ===<br />
* Added TC37x CPU that implements ISA v1.6.2<br />
* Added CRCN, FTOU, FTOHP, and HPTOF instructions<br />
* Fixed RCPW/RRPW_INSERT instructions for width=0<br />
* Fixed RCRR_INSERT using the wrong destination register<br />
* Fixed FTOUZ being only available from ISA v1.3.1 upwards<br />
<br />
=== x86 ===<br />
<br />
==== Xen emulation under KVM ====<br />
<br />
* Support PV console and network devices.<br />
* Bug fixes to support running Xen PV guests under "shim", documented in the [https://qemu-project.gitlab.io/qemu/system/i386/xen.html "Xen HVM guest support"] page.<br />
* Simplify command line for block and network devices.<br />
<br />
==== TCG ====<br />
* Support for SHA instructions.<br />
<br />
=== Xtensa ===<br />
<br />
=== Device emulation and assignment ===<br />
<br />
==== ACPI / SMBIOS ====<br />
<br />
==== Audio ====<br />
<br />
* <span id="virtio-sound"></span>Added virtio-sound device which implements capture and playback from inside a guest using the configured audio backend of the host machine. It is documented in the [https://qemu-project.gitlab.io/qemu/system/devices/virtio-snd.html "Device Emulation / virtio sound"] page.<br />
<br />
==== Block devices ====<br />
<br />
* Parallels Format Driver<br />
** Improved 'qemu-img check' facility<br />
*** Recover from broken data_off in the header<br />
*** Drop clusters outside of the image file<br />
*** De-duplicate clusters located on the same offset in the host file<br />
** Introduced ability to execute check automatically (if disk image is opened in read/write mode) if corruption is detected by open<br />
** Cluster allocation is now based on the cluster used bitmap (clusters could be allocated in holes inside image file)<br />
** Minimal DISCARD & WRITE_ZEROES support<br />
<br />
==== Graphics ====<br />
* New virtio-gpu '''rutabaga''' device. It allows various abstractions of GPU and display virtualization, coming from the Android/CrosVM graphical stack [https://crosvm.dev/book/appendix/rutabaga_gfx.html Rutabaga doc]. This should help [https://developer.android.com/studio/releases/emulator Android Emulator] use upstream QEMU, and offers alternative solutions (or context types) than [https://docs.mesa3d.org/drivers/virgl/ virgl].<br />
* ati-vga pixman-less support and fixes<br />
* virtio-gpu blob=true VM can now be migrated<br />
<br />
==== Hyper-V ====<br />
<br />
* New Hyper-V Dynamic Memory protocol device '''hv-balloon'''. This driver is like '''virtio-balloon''' on steroids for Windows guests: it allows both changing the guest memory allocation via ballooning and inserting pieces of extra RAM into it on demand from a provided memory backend via Windows-native Dynamic Memory protocol.<br />
<br />
==== I2C ====<br />
<br />
==== Input devices ====<br />
<br />
==== IPMI ====<br />
<br />
==== Multi-process QEMU ====<br />
<br />
==== Network devices ====<br />
<br />
==== NVDIMM ====<br />
<br />
==== NVMe ====<br />
<br />
==== PCI/PCIe ====<br />
* Added Astro Memory controller with Elroy PCI host busses for PA-RISC (hppa) machines<br />
<br />
==== SCSI ====<br />
<br />
==== SD card ====<br />
<br />
==== SMBIOS ====<br />
<br />
==== TPM ====<br />
<br />
==== USB ====<br />
<br />
==== VFIO ====<br />
<br />
==== virtio ====<br />
* virtio-mem now supports to dynamically consume multiple memslots instead of statically a single big one. The feature can be enabled using "dynamic-memslots=on", which can severely reduce KVM memory slot metadata overhead with large virtio-mem devices that only expose a small amount of memory to the VM. Note that the feature is incompatible with vhost devices that provide less than 509 memslots, like most vhost-user devices.<br />
* Added virtio-sound device. See [[ChangeLog/8.2#virtio-sound|Audio section/virtio-sound]]<br />
<br />
==== vDPA ====<br />
<br />
==== Xen ====<br />
<br />
* Support PV unplug for AHCI disks with the q35 platform.<br />
* Allow creation of PV console devices from the command line.<br />
* Allow creation of PV network devices, including '<tt>-nic xxx,model=xen-net-device</tt>' and the default NIC.<br />
* Support '<tt>-drive file=FILENAME,if=xen</tt>' for creating PV block devices with automatic names.<br />
<br />
==== fw_cfg ====<br />
<br />
==== 9pfs ====<br />
<br />
==== virtiofs ====<br />
<br />
==== Semihosting ====<br />
<br />
=== Audio ===<br />
<br />
* Added virtio-sound device. See [[ChangeLog/8.2#virtio-sound|Audio section/virtio-sound]]<br />
<br />
=== Character devices ===<br />
<br />
=== Crypto subsystem ===<br />
<br />
=== Authorization subsystem ===<br />
<br />
=== GUI ===<br />
* cocoa: add zoom-to-fit display option<br />
* gtk: various minor fixes<br />
<br />
=== GDBStub ===<br />
* fixes cases where wrong threads were reported to gdb<br />
<br />
=== TCG Plugins ===<br />
* fix bug in reporting too many instructions to qemu_plugin_tb_n_insns()<br />
* fix locking on execlog<br />
* windows support<br />
<br />
=== Host support ===<br />
<br />
=== Memory backends ===<br />
* memory-backend-file now supports the "rom" parameter. "share=off,readonly=off,rom=on" can be used for VM-templating with R/O files: open the file R/O, but create writable RAM instead of Read Only Memory (ROM).<br />
* "VM templating" documentation was added<br />
<br />
=== Migration ===<br />
<br />
* Legacy compression migration is deprecated ("compress" as capability, "compress-level", "compress-threads", "compress-wait-thread", "decompress-threads" as parameters). Suggest to use multifd compression instead.<br />
* Block migration is deprecated. QMP command "migrate" parameters "blk" and "inc" are deprecated. Suggest to use driver-mirror with NBD instead. <br />
* Fixed race conditions for postcopy migration when preempt mode is enabled.<br />
* Postcopy recovery now allows network failure to happen even during RECOVER phase.<br />
* Added migration parameter "avail-switchover-bandwidth" migration parameter, can be used when the user observes extremely slow bandwidth during migration, causing migration to never complete. <br />
* Initial part of migration mode "cpr-reboot" integrated.<br />
<br />
=== Monitor ===<br />
<br />
==== QMP ====<br />
<br />
==== HMP ====<br />
<br />
=== Network ===<br />
<br />
=== Block device backends and tools ===<br />
* The qemu NBD implementation for both server and client now supports the recent NBD protocol extension of 64-bit extended headers. When both sides of an NBD connection support this extension, commands like write zeroes or block status can operate on 64-bit effect lengths, rather than being capped to transaction sizes smaller than 4G.<br />
<br />
=== Tracing ===<br />
<br />
=== Semihosting ===<br />
<br />
=== Miscellaneous ===<br />
* Allow '''dump-guest-memory''' to output '''standard kdump''' format<br />
<br />
== User-mode emulation ==<br />
=== runtime ===<br />
<br />
Since this release, qemu implements and provides vdso for most popular architectures.<br />
<br />
=== binfmt_misc ===<br />
<br />
=== alpha ===<br />
* Emulated /proc/cpuinfo output in linux-user<br />
<br />
=== arm/arm64/aarch64 ===<br />
* Emulated /proc/cpuinfo output in linux-user<br />
<br />
=== LoongArch ===<br />
<br />
=== HPPA ===<br />
<br />
=== s390 ===<br />
<br />
=== x86 ===<br />
<br />
== TCG backends ==<br />
<br />
=== RISC-V ===<br />
<br />
== Guest agent ==<br />
<br />
== Build Information ==<br />
<br />
* Coding style has been updated to allow loop variables<br />
* It is possible to build a non-relocatable binary of QEMU with the configure option <tt>--disable-relocatable</tt>. The default remains a relocatable install (that is, all the directories within the install prefix are computed based on the path to the executable).<br />
<br />
=== Build Dependencies ===<br />
* Building QEMU now requires Python 3.8. As a consequence, building on Debian 10 is not supported anymore (unless a newer version of Python is installed by other means).<br />
* Building QEMU now uses the tomli library if Python is older than version 3.11. However, version 2.0.1 is bundled in case tomli is not installed on the host.<br />
* The libfdt library is no longer bundled with QEMU. However, if QEMU is configured with --enable-download and the library is absent, then it will be downloaded and built together if any emulators need it.<br />
* The [https://www.pixman.org/ Pixman] library is no longer strictly required. The VC, VNC, Gtk, Spice, screendump features and a few devices still require it.<br />
* When running <tt>make check-avocado</tt>, the Avocado testing framework and pycdlib must be present if the build tree was configured with <tt>--disable-download</tt>. Until 8.1, Avocado was always downloaded from PyPI.<br />
<br />
=== Windows ===<br />
<br />
=== Testing and CI ===<br />
* ccache has been enabled for CI builds<br />
* container backend is now selected by configure script<br />
<br />
== Known issues ==<br />
<br />
* See https://gitlab.com/qemu-project/qemu/-/milestones/10</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/7.2&diff=11541Planning/7.22023-11-09T13:59:14Z<p>Mjt: 7.2.7</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2022-08-30<br />
| Beginning of development phase<br />
|-<br />
| 2022-11-1<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2022-11-8<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2022-11-15<br />
| Tag rc1<br />
|-<br />
| 2022-11-22<br />
| Tag rc2<br />
|-<br />
| 2022-11-29<br />
| Tag rc3<br />
|-<br />
| 2022-12-06<br />
| <strike>Release; or tag rc4 if needed</strike> Tag rc4<br />
|-<br />
| 2022-12-13<br />
| <strike>Release if we needed an rc4</strike> Release<br />
|-<br />
| 2023-03-30<br />
| Tag v7.2.1<br />
|-<br />
| 2023-04-20<br />
| Freeze for 7.2.2 stable release<br />
|-<br />
| 2023-04-22<br />
| Tag v7.2.2<br />
|-<br />
| 2023-05-27<br />
| Freeze for 7.2.3 stable release<br />
|-<br />
| 2023-05-29<br />
| Tag v7.2.3<br />
|-<br />
| 2023-07-06<br />
| Freeze for 7.2.4 stable release<br />
|-<br />
| 2023-07-08<br />
| Tag v7.2.4<br />
|-<br />
| 2023-08-05<br />
| Freeze for 7.2.5 stable release<br />
|-<br />
| 2023-08-07<br />
| Tag v7.2.5<br />
|-<br />
| 2023-09-19<br />
| Freeze for 7.2.6 stable release<br />
|-<br />
| 2023-09-21<br />
| Tag v7.2.6<br />
|-<br />
| 2023-11-19<br />
| Freeze for 7.2.7 stable/bugfix release<br />
|-<br />
| 2023-11-21<br />
| Tag v7.2.7<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/7<br />
<br />
=== Other release ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/7.2]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/8.1&diff=11540Planning/8.12023-11-09T13:42:15Z<p>Mjt: 8.1.3</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2023-04-20<br />
| Beginning of development phase<br />
|-<br />
| 2023-07-11<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2023-07-18<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2023-07-25<br />
| Tag rc1<br />
|-<br />
| 2023-08-01<br />
| Tag rc2<br />
|-<br />
| 2023-08-08<br />
| Tag rc3<br />
|-<br />
| 2023-08-15<br />
| <strike>Release; or</strike> tag rc4 if needed<br />
|-<br />
| 2023-08-22<br />
| Release <strike>if we needed an rc4</strike><br />
|-<br />
| 2023-09-19<br />
| Freeze for 8.1.1 stable/bugfix release<br />
|-<br />
| 2023-09-21<br />
| Tag v8.1.1. Please note: v8.1.1 is being released with known, still unfixed in qemu/master, bugs, also existing in v8.1.0<br />
|-<br />
| 2023-10-14<br />
| Freeze for 8.1.2 stable/bugfix release<br />
|-<br />
| 2023-10-16<br />
| Tag v8.1.2<br />
|-<br />
| 2023-11-19<br />
| Freeze for 8.1.3 stable/bugfix release<br />
|-<br />
| 2023-11-21<br />
| Tag v8.1.3<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/9<br />
<br />
=== Other release info ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/8.1]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/8.1&diff=11463Planning/8.12023-10-04T14:07:37Z<p>Mjt: Undo revision 11461 by Mjt (talk)</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2023-04-20<br />
| Beginning of development phase<br />
|-<br />
| 2023-07-11<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2023-07-18<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2023-07-25<br />
| Tag rc1<br />
|-<br />
| 2023-08-01<br />
| Tag rc2<br />
|-<br />
| 2023-08-08<br />
| Tag rc3<br />
|-<br />
| 2023-08-15<br />
| <strike>Release; or</strike> tag rc4 if needed<br />
|-<br />
| 2023-08-22<br />
| Release <strike>if we needed an rc4</strike><br />
|-<br />
| 2023-09-19<br />
| Freeze for 8.1.1 stable/bugfix release<br />
|-<br />
| 2023-09-21<br />
| Tag v8.1.1. Please note: v8.1.1 is being released with known, still unfixed in qemu/master, bugs, also existing in v8.1.0<br />
|-<br />
| 2023-10-14<br />
| Freeze for 8.1.2 stable/bugfix release<br />
|-<br />
| 2023-10-16<br />
| Tag v8.1.2<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/9<br />
<br />
=== Other release info ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/8.1]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/8.1&diff=11461Planning/8.12023-10-03T17:16:32Z<p>Mjt: /* Release Schedule */</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2023-04-20<br />
| Beginning of development phase<br />
|-<br />
| 2023-07-11<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2023-07-18<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2023-07-25<br />
| Tag rc1<br />
|-<br />
| 2023-08-01<br />
| Tag rc2<br />
|-<br />
| 2023-08-08<br />
| Tag rc3<br />
|-<br />
| 2023-08-15<br />
| <strike>Release; or</strike> tag rc4 if needed<br />
|-<br />
| 2023-08-22<br />
| Release <strike>if we needed an rc4</strike><br />
|-<br />
| 2023-09-19<br />
| Freeze for 8.1.1 stable/bugfix release<br />
|-<br />
| 2023-09-21<br />
| Tag v8.1.1. Please note: v8.1.1 is being released with known, still unfixed in qemu/master, bugs, also existing in v8.1.0<br />
|-<br />
| 2023-10-14 ?<br />
| Freeze for 8.1.2 stable/bugfix release<br />
|-<br />
| 2023-10-16 ?<br />
| Tag v8.1.2<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/9<br />
<br />
=== Other release info ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/8.1]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/8.1&diff=11460Planning/8.12023-10-03T17:01:49Z<p>Mjt: /* Release Schedule */</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2023-04-20<br />
| Beginning of development phase<br />
|-<br />
| 2023-07-11<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2023-07-18<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2023-07-25<br />
| Tag rc1<br />
|-<br />
| 2023-08-01<br />
| Tag rc2<br />
|-<br />
| 2023-08-08<br />
| Tag rc3<br />
|-<br />
| 2023-08-15<br />
| <strike>Release; or</strike> tag rc4 if needed<br />
|-<br />
| 2023-08-22<br />
| Release <strike>if we needed an rc4</strike><br />
|-<br />
| 2023-09-19<br />
| Freeze for 8.1.1 stable/bugfix release<br />
|-<br />
| 2023-09-21<br />
| Tag v8.1.1. Please note: v8.1.1 is being released with known, still unfixed in qemu/master, bugs, also existing in v8.1.0<br />
|-<br />
| 2023-10-14<br />
| Freeze for 8.1.2 stable/bugfix release<br />
|-<br />
| 2023-10-16<br />
| Tag v8.1.2<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/9<br />
<br />
=== Other release info ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/8.1]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/8.1&diff=11459Planning/8.12023-10-03T16:34:34Z<p>Mjt: /* Release Schedule */</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2023-04-20<br />
| Beginning of development phase<br />
|-<br />
| 2023-07-11<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2023-07-18<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2023-07-25<br />
| Tag rc1<br />
|-<br />
| 2023-08-01<br />
| Tag rc2<br />
|-<br />
| 2023-08-08<br />
| Tag rc3<br />
|-<br />
| 2023-08-15<br />
| <strike>Release; or</strike> tag rc4 if needed<br />
|-<br />
| 2023-08-22<br />
| Release <strike>if we needed an rc4</strike><br />
|-<br />
| 2023-09-19<br />
| Freeze for 8.1.1 stable/bugfix release<br />
|-<br />
| 2023-09-21<br />
| Tag v8.1.1. Please note: v8.1.1 is being released with known, still unfixed in qemu/master, bugs, also existing in v8.1.0<br />
|-<br />
| 2023-10-14<br />
| Freeze for 8.1.2 stable/bugfix release<br />
|-<br />
| 20230-10-16<br />
| Tag v8.1.2<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/9<br />
<br />
=== Other release info ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/8.1]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/8.1&diff=11458Planning/8.12023-10-03T16:34:05Z<p>Mjt: /* Release Schedule */</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2023-04-20<br />
| Beginning of development phase<br />
|-<br />
| 2023-07-11<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2023-07-18<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2023-07-25<br />
| Tag rc1<br />
|-<br />
| 2023-08-01<br />
| Tag rc2<br />
|-<br />
| 2023-08-08<br />
| Tag rc3<br />
|-<br />
| 2023-08-15<br />
| <strike>Release; or</strike> tag rc4 if needed<br />
|-<br />
| 2023-08-22<br />
| Release <strike>if we needed an rc4</strike><br />
|-<br />
| 2023-09-19<br />
| Freeze for 8.1.1 stable/bugfix release<br />
|-<br />
| 2023-09-21<br />
| Tag v8.1.1. Please note: v8.1.1 is being released with known, still unfixed in qemu/master, bugs, also existing in v8.1.0<br />
|-<br />
| 2023-10-14<br />
| Freeze for 8.1.2 stable/bugfix release<br />
| -<br />
| 20230-10-16<br />
| Tag v8.1.2<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/9<br />
<br />
=== Other release info ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/8.1]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/8.1&diff=11448Planning/8.12023-09-21T19:34:19Z<p>Mjt: note 8.1.1 is still buggy</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2023-04-20<br />
| Beginning of development phase<br />
|-<br />
| 2023-07-11<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2023-07-18<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2023-07-25<br />
| Tag rc1<br />
|-<br />
| 2023-08-01<br />
| Tag rc2<br />
|-<br />
| 2023-08-08<br />
| Tag rc3<br />
|-<br />
| 2023-08-15<br />
| <strike>Release; or</strike> tag rc4 if needed<br />
|-<br />
| 2023-08-22<br />
| Release <strike>if we needed an rc4</strike><br />
|-<br />
| 2023-09-19<br />
| Freeze for 8.1.1 stable/bugfix release<br />
|-<br />
| 2023-09-21<br />
| Tag v8.1.1. Please note: v8.1.1 is being released with known, still unfixed in qemu/master, bugs, also existing in v8.1.0<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/9<br />
<br />
=== Other release info ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/8.1]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/7.2&diff=11433Planning/7.22023-09-09T13:04:48Z<p>Mjt: v7.2.6 schedule</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2022-08-30<br />
| Beginning of development phase<br />
|-<br />
| 2022-11-1<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2022-11-8<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2022-11-15<br />
| Tag rc1<br />
|-<br />
| 2022-11-22<br />
| Tag rc2<br />
|-<br />
| 2022-11-29<br />
| Tag rc3<br />
|-<br />
| 2022-12-06<br />
| <strike>Release; or tag rc4 if needed</strike> Tag rc4<br />
|-<br />
| 2022-12-13<br />
| <strike>Release if we needed an rc4</strike> Release<br />
|-<br />
| 2023-03-30<br />
| Tag v7.2.1<br />
|-<br />
| 2023-04-20<br />
| Freeze for 7.2.2 stable release<br />
|-<br />
| 2023-04-22<br />
| Tag v7.2.2<br />
|-<br />
| 2023-05-27<br />
| Freeze for 7.2.3 stable release<br />
|-<br />
| 2023-05-29<br />
| Tag v7.2.3<br />
|-<br />
| 2023-07-06<br />
| Freeze for 7.2.4 stable release<br />
|-<br />
| 2023-07-08<br />
| Tag v7.2.4<br />
|-<br />
| 2023-08-05<br />
| Freeze for 7.2.5 stable release<br />
|-<br />
| 2023-08-07<br />
| Tag v7.2.5<br />
|-<br />
| 2023-09-19<br />
| Freeze for 7.2.6 stable release<br />
|-<br />
| 2023-09-21<br />
| Tag v7.2.6<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/7<br />
<br />
=== Other release ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/7.2]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/8.0&diff=11432Planning/8.02023-09-09T12:59:58Z<p>Mjt: v8.0.5 schedule</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2022-12-14<br />
| Beginning of development phase<br />
|-<br />
| 2023-03-07<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2023-03-14<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2023-03-21<br />
| Tag rc1<br />
|-<br />
| 2023-03-28<br />
| Tag rc2<br />
|-<br />
| <strike>2023-04-04</strike> 2023-04-05<br />
| Tag rc3<br />
|-<br />
| <strike>2023-04-11</strike> 2023-04-13<br />
| <strike>Release; or tag rc4 if needed</strike> tag rc4<br />
|-<br />
| <strike>2023-04-18</strike> 2023-04-19<br />
| Release<br />
|-<br />
| 2023-05-27<br />
| Freeze for 8.0.1 stable release<br />
|-<br />
| 2023-05-29<br />
| Tag v8.0.1<br />
|-<br />
| 2023-05-30<br />
| Tag v8.0.2 (a bugfix for 8.0.1 release)<br />
|-<br />
| 2023-07-06<br />
| Freeze for 8.0.3 stable release<br />
|-<br />
| 2023-07-08<br />
| Tag v8.0.3<br />
|-<br />
| 2023-08-05<br />
| Freeze for 8.0.4 stable release<br />
|-<br />
| 2023-08-07<br />
| Tag v8.0.4<br />
|-<br />
| 2023-09-19<br />
| Freeze for 8.0.5 stable release<br />
|-<br />
| 2023-09-21<br />
| Tag v8.0.5<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/8<br />
<br />
=== Other release info ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/8.0]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/8.1&diff=11431Planning/8.12023-09-09T10:23:40Z<p>Mjt: set v8.1.1 dates</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2023-04-20<br />
| Beginning of development phase<br />
|-<br />
| 2023-07-11<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2023-07-18<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2023-07-25<br />
| Tag rc1<br />
|-<br />
| 2023-08-01<br />
| Tag rc2<br />
|-<br />
| 2023-08-08<br />
| Tag rc3<br />
|-<br />
| 2023-08-15<br />
| <strike>Release; or</strike> tag rc4 if needed<br />
|-<br />
| 2023-08-22<br />
| Release <strike>if we needed an rc4</strike><br />
|-<br />
| 2023-09-19<br />
| Freeze for 8.1.1 stable/bugfix release<br />
|-<br />
| 2023-09-21<br />
| Tag v8.1.1<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/9<br />
<br />
=== Other release info ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/8.1]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/8.1&diff=11430Planning/8.12023-09-09T10:22:11Z<p>Mjt: rc4 vs release</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2023-04-20<br />
| Beginning of development phase<br />
|-<br />
| 2023-07-11<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2023-07-18<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2023-07-25<br />
| Tag rc1<br />
|-<br />
| 2023-08-01<br />
| Tag rc2<br />
|-<br />
| 2023-08-08<br />
| Tag rc3<br />
|-<br />
| 2023-08-15<br />
| <strike>Release; or</strike> tag rc4 if needed<br />
|-<br />
| 2023-08-22<br />
| Release <strike>if we needed an rc4</strike><br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/9<br />
<br />
=== Other release info ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/8.1]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=ChangeLog/8.1&diff=11411ChangeLog/8.12023-07-26T05:43:37Z<p>Mjt: mention venv is required</p>
<hr />
<div>== System emulation ==<br />
<br />
=== Removed features and incompatible changes ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/removed-features.html 'Removed features'] page for details of suggested replacement functionality.<br />
<br />
=== New deprecated options and features ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/deprecated.html "Deprecated Features"] chapter of the QEMU System Emulation User's Guide for further details of the deprecations and their suggested replacements.<br />
<br />
* The "-singlestep" command line option is deprecated, as it was very misleadingly named. Its replacement is "-one-insn-per-tb" (for the user-mode emulator) or "-accel one-insn-per-tb=on" (for the system-mode emulator)<br />
* The "-fsdev proxy" and "-virtfs proxy" command line options are deprecated ([https://github.com/qemu/qemu/commit/71d72ececa086114df80fe4cc04d701b59002eb2 commit] / [https://qemu-project.gitlab.io/qemu/about/deprecated.html#fsdev-proxy-and-virtfs-proxy-since-8-1 notes]).<br />
<br />
=== 68k ===<br />
<br />
=== Alpha ===<br />
<br />
=== Arm ===<br />
<br />
* KVM VMs on a host which supports MTE (the Memory Tagging Extension) can now use MTE in the guest<br />
* Pointer-authentication information is now reported to the gdbstub (a GDB 13 or later will produce better backtraces when pauth is in use by the guest)<br />
* Orangepi-PC, Cubieboard: Add Allwinner WDT watchdog emulation<br />
* mcimxd7-sabre, mcimx6ul-evk: The second ethernet controller PHY is now usable<br />
* fsl-imx6: The SNVS is now implemented, sufficient for the guest to be able to shut down the machine<br />
* The SMMUv3 model can now emulate stage-2 translations (but only as an alternative to, not together with, stage-1)<br />
* Debugging via the gdbstub is now supported when using the hvf acceleration on macos hosts<br />
* xlnx-versal board now emulates a CANFD controller<br />
* sbsa-ref now provides the GIC ITS<br />
* New board model: bpim2u (Banana Pi BPI-M2 Ultra)<br />
* TCG plugin memory instrumentation now catches all SVE accesses<br />
* New CPU type: neoverse-v1 (Cortex Neoverse-V1)<br />
* AES instructions can use AES acceleration on the host processor<br />
* New architectural features now emulated:<br />
** FEAT_PAN3 (Support for SCTLR_ELx.EPAN)<br />
** FEAT_LSE2 (Large System Extensions v2)<br />
** FEAT_RME (Realm Management Extensions) -- support is currently experimental only<br />
<br />
=== AVR ===<br />
<br />
=== Hexagon ===<br />
<br />
=== HPPA ===<br />
<br />
* New SeaBIOS-hppa version 8 firmware<br />
* Fixes boot failure of Debian-12 install CD-ROM (ramdisc could not be loaded)<br />
* Fixes operating system boot and reboot issues on HP-UX and Linux with SMP installations<br />
* Enables PSW-Q bit by default (for MPE-UX operating system)<br />
* Show QEMU version in firmware boot menu<br />
* Adds EXIT menu entry to firmware boot menu<br />
* Enhances PDC CHASSIS codes debug possibilty<br />
<br />
=== LoongArch ===<br />
* Implement LSX extension<br />
* Various fixes<br />
<br />
=== Microblaze ===<br />
<br />
=== MIPS ===<br />
* Support for emulation of MXU instructions<br />
<br />
=== Nios2 ===<br />
<br />
=== OpenRISC ===<br />
* Allow FPCSR special purpose register to be accessed in user mode<br />
* Configure FPU to detecting tininess before rounding to align QEMU with architecture specification<br />
<br />
=== PowerPC ===<br />
* TCG SMT support, allowing pseries and powernv to run with up to 8 threads per core<br />
* Fix timebase synchronisation improving stability of SMP machines that update TB (e.g., powernv running KVM)<br />
* Implement PMU interrupt for POWER CPUs, enabling perf to sample cycle counter<br />
* ppc440 cleanups<br />
* Power9 DD2.2 CPU model<br />
* Use SMT4 small core PVRs for Power9/Power10<br />
* XIVE2 model improvements<br />
* Decrimenter, larx/stdx, doorbell, PMU correctness improvements<br />
* GDB debugging fixes<br />
* Power10 xscom models<br />
* Support for irq monitor command<br />
* AES instructions can use AES acceleration on the host processor<br />
<br />
=== Renesas RX ===<br />
<br />
=== Renesas SH ===<br />
<br />
=== RISC-V ===<br />
==== ISA and Extensions ====<br />
* Support subsets of code size reduction extension<br />
* A large collection of mstatus sum changes and cleanups<br />
* Zero init APLIC internal state<br />
* Implement query-cpu-definitions<br />
* Fix Guest Physical Address Translation<br />
* Make sure an exception is raised if a pte is malformed<br />
* Move zc* out of the experimental properties<br />
* Mask the implicitly enabled extensions in isa_string based on priv version<br />
* Updates and improvements for Smstateen<br />
* Support disas for Zcm* extensions<br />
* Support disas for Z*inx extensions<br />
* Add vector registers to log<br />
* AES instructions can use AES acceleration on the host processor<br />
* Add disassembly support for XVentanaCondOps<br />
* Add disassembly support for XThead* instructions<br />
* Add syscall riscv_hwprobe<br />
* Add support for BF16 extensions<br />
* Add support for the Zfa extension<br />
<br />
==== Machines ====<br />
* Add signature dump function for spike to run ACT tests<br />
* Add Ventana's Veyron V1 CPU<br />
* Assume M-mode FW in pflash0 only when "-bios none"<br />
* Support using pflash via -blockdev option<br />
* Fix veyron-v1 CPU properties<br />
* opensbi: Upgrade from v1.2 to v1.3.1<br />
* Support the watchdog timer of HiFive 1 rev b<br />
* Add RVV registers to log<br />
<br />
==== Fixes and Misc ====<br />
* Fix invalid riscv,event-to-mhpmcounters entry<br />
* Fix itrigger when icount is used<br />
* Fix mstatus.MPP related support<br />
* Fix the H extension TVM trap<br />
* Restore the predicate() NULL check behavior<br />
* Skip Vector set tail when vta is zero<br />
* Fixup PMP TLB cacheing errors<br />
* Writing to pmpaddr and MML/MMWP correctly triggers TLB flushes<br />
* Fixup PMP bypass checks<br />
* Deny access if access is partially inside a PMP entry<br />
* Fix QEMU crash when NUMA nodes exceed available CPUs<br />
* Fix pointer mask transformation for vector address<br />
* Remove the check for extra Vector tail elements<br />
* Smepmp: Return error when access permission not allowed in PMP<br />
* Fixes for smsiaddrcfg and smsiaddrcfgh in AIA<br />
* Use xl instead of mxl for disassemble<br />
* Fix mstatus related problems<br />
* Fix the xlen for data address when MPRV=1<br />
* Only build qemu-system-riscv$$ on rv$$ host<br />
* Generate devicetree only after machine initialization is complete<br />
* virt: Convert fdt_load_addr to uint64_t<br />
* KVM: fixes and enhancements<br />
* Fix LMUL check to use VLEN<br />
* Fix typo field in NUMA error_report<br />
* Fix disas output of upper immediates<br />
<br />
=== s390x ===<br />
<br />
* Fixed emulation of LDER, LCBB, LOCFHR, MXDB, MXDBR, EPSW, MDEB, MDEBR, MVCRL, LRA, CKSM, CLM, ICM, MC and CLGEBR(A) instructions<br />
* Fixed CPU address returned by STIDP<br />
* Fixed a problem with the EXECUTE instruction and relative branches<br />
* Make the s390-ccw bios compilable with Clang in conjunction with binutils 2.40<br />
<br />
=== SPARC ===<br />
<br />
* Fix block device error when trying to boot niagara machine<br />
* Allow keyboard language DIP switches to be set via the -global escc.chnA-sunkbd-layout option<br />
* Update target/sparc to use tcg_gen_lookup_and_goto_ptr() for improved performance<br />
<br />
=== Tricore ===<br />
* Handles PCXI and ICR registers correctly for ISA version 1.6.1 upwards<br />
* Added POPCNT.W, LHA, CRC32L.W, CRC32.B, SHUFFLE, SYSCALL, and DISABLE instructions<br />
* Implemented privilege levels<br />
* Introduced TC37x CPU that supports ISA v1.6.2<br />
* Fix out of bounds index for instructions using 64 register pairs<br />
<br />
=== x86 ===<br />
* New CPU model GraniteRapids.<br />
* Default to SMBIOS 3.0 information<br />
==== TCG ====<br />
* The following features are now exposed by TCG (but were already implemented): RDSEED, XSAVEERPTR, 3DNOWPREFETCH, WBNOINVD<br />
* RDPID is now implemented by TCG<br />
* SYSCALL is now implemented by TCG in 32-bit emulators (only for AMD processors; Intel processors hide the feature unless the processor is in long mode).<br />
* AES instructions can use AES acceleration on the host processor<br />
<br />
=== Xtensa ===<br />
<br />
=== Device emulation and assignment ===<br />
<br />
==== ACPI / SMBIOS ====<br />
<br />
==== Audio ====<br />
<br />
==== Block devices ====<br />
<br />
==== Graphics ====<br />
<br />
==== I2C ====<br />
<br />
==== Input devices ====<br />
* add "virtio-multitouch-pci", a multitouch-capable input device<br />
<br />
==== IPMI ====<br />
<br />
==== Multi-process QEMU ====<br />
<br />
==== Network devices ====<br />
* Improved e1000e and igb emulation<br />
* New CANFD controller emulation, Xilinx Versal<br />
<br />
==== NVDIMM ====<br />
<br />
==== NVMe ====<br />
<br />
==== PCI/PCIe ====<br />
* New QMP commands to inject CXL General Media events, DRAM events and Memory Module events<br />
<br />
==== SCSI ====<br />
<br />
==== SD card ====<br />
* Added support for the sun40i-a64 SoC<br />
<br />
==== SMBIOS ====<br />
<br />
==== TPM ====<br />
* Added TPM TIS I2C device model<br />
<br />
==== USB ====<br />
<br />
==== VFIO ====<br />
* VFIO migration is not experimental anymore<br />
* Support for transferring VFIO device data while the VM is still running<br />
<br />
==== virtio ====<br />
* asymmetric crypto support for cryptodev-vhost-user<br />
* virtio-blk: zoned device emulation<br />
* virtio-mem: device unplug support (once a device no longer provides any memory: size == 0)<br />
* virtio-mem: support for "x-ignore-shared" migration<br />
* vhost-user-scmi: new vhost-user device for VIRTIO SCMI<br />
<br />
==== vDPA ====<br />
* shadow virtqueue offload support for vhost-vdpa<br />
<br />
==== Xen ====<br />
<br />
==== fw_cfg ====<br />
<br />
==== 9pfs ====<br />
* [https://github.com/qemu/qemu/commit/f6b0de53fb87ddefed348a39284c8e2f28dc4eda Security fix] for CVE-2023-2861.<br />
* [https://github.com/qemu/qemu/commit/71d72ececa086114df80fe4cc04d701b59002eb2 'Proxy' backend is deprecated].<br />
<br />
==== virtiofs ====<br />
<br />
==== Semihosting ====<br />
<br />
=== Audio ===<br />
<br />
* new PipeWire audio backend (<tt>-audiodev pipewire</tt>)<br />
<br />
=== Character devices ===<br />
<br />
* It's now possible to specify the input independently from the output with ''-chardev file'' (e.g. ''-chardev file,id=repro,path=/dev/null,input-path=input.txt'')<br />
<br />
=== Crypto subsystem ===<br />
<br />
=== Authorization subsystem ===<br />
<br />
=== GUI ===<br />
* gtk: enable multi-touch events<br />
* sdl: various keyboard grab fixes<br />
* dbus: add multi-touch and win32 support<br />
<br />
=== GDBStub ===<br />
* debugging linux-user guests now report correct pid<br />
* now support "info proc" and the host IO features<br />
* properly respond to "b" packet when reverse debugging<br />
<br />
=== TCG Plugins ===<br />
* cputlb API change now forces slow path for all memory helpers under instrumentation<br />
<br />
=== Host support ===<br />
<br />
=== Memory backends ===<br />
<br />
=== Migration ===<br />
<br />
=== Monitor ===<br />
<br />
==== QMP ====<br />
<br />
==== HMP ====<br />
<br />
=== Network ===<br />
<br />
=== Block device backends and tools ===<br />
* <code>ssh ... "qemu-nbd -c /dev/nbd$N ..."</code> no longer hangs waiting for the qemu-nbd process to end (fixing a regression introduced in v4.1.0).<br />
<br />
=== Tracing ===<br />
* The final parts of per-vcpu trace events where removed. Those looking to monitor TCG code should look at https://qemu.readthedocs.io/en/latest/devel/tcg-plugins.html<br />
<br />
=== Semihosting ===<br />
<br />
=== Miscellaneous ===<br />
* Command-line parsing of sizes using a fraction of a scale (such as "1.5M") has been improved: it is now possible to write ".5G" as a synonym for "512M", and no longer possible to cause qemu to read out of bounds on garbage input such as "9.999e999".<br />
<br />
== User-mode emulation ==<br />
=== runtime ===<br />
* Fixed fcntl() and fcntl64() to return O_LARGEFILE for 32-bit targets<br />
* Added correct checks for accept4(SOCK_NONBLOCK) syscall flags<br />
* Fixed accept4(SOCK_NONBLOCK) syscall for hppa, mips and alpha targets<br />
* Enchanced strace output for pread64() and pwrite64()<br />
* Fix strace output for old_mmap (32-bit guests)<br />
* QEMU can emulate /proc/self/smaps<br />
* Several gdbstub bugfixes and improvements<br />
* Fixed various regressions which were introduced by shrinkable brk() syscall <br />
<br />
=== binfmt_misc ===<br />
<br />
=== armhf ===<br />
* Fix qemu-arm to run static armhf binaries again<br />
<br />
=== Hexagon ===<br />
<br />
=== LoongArch ===<br />
<br />
=== Nios2 ===<br />
<br />
=== HPPA ===<br />
<br />
=== s390 ===<br />
* Support for ELF hwcaps<br />
<br />
=== x86 ===<br />
* On Linux, qemu-i386 will run 32-bit programs as if they were ran by a 64-bit kernel, if the chosen CPU model includes the LM feature. This includes the ability to execute system calls using the SYSCALL instruction<br />
* The SYSCALL instruction can also be used with qemu-i386 on 32-bit AMD CPU models<br />
* User-mode emulation will not warn about features that TCG does not implement, if those features are not visible to user mode (e.g. PCID)<br />
* The newly-implemented RDPID instruction will return the current CPU and NUMA node ids<br />
<br />
=== Xtensa ===<br />
<br />
== TCG backends ==<br />
* Generated TCG code respects guest memory ordering even on weakly-ordered machines, allowing parallel emulation of e.g. x86 on ARM<br />
<br />
=== RISC-V ===<br />
<br />
* Support Zba, Zbb, and Zicond standard extensions.<br />
<br />
== Guest agent ==<br />
* The guest-exec command supports values "stdout", "stderr", "merged" values for the capture-output parameter. The <tt>true</tt> and <tt>false</tt> values for the parameter can also be written as "separated" and "none" respectively.<br />
* The guest-get-fsinfo command can return "usb" as the bus type too.<br />
* Add logging into VSS part (Windows only).<br />
* Add new option "allow-rpcs". The "allow-rpcs" option accepts a comma-separated list of RPCs to enable. This option is opposite to "block-rpcs".<br />
* Fix suspend on Linux guests without systemd.<br />
<br />
== Build Information ==<br />
<br />
=== Build Dependencies ===<br />
* The <tt>--meson</tt> and <tt>--sphinx-build</tt> options to configure have been removed. Meson and Sphinx will always be invoked through the Python interpreter specified (optionally) with <tt>--python</tt> or the <tt>$PYTHON</tt> environment variable; in order to use a host installation of Meson or Sphinx, the corresponding distribution packages (including metadata) will have to be installed in the <tt>site-packages</tt> directory of that Python interpreter.<br />
* venv python module is required for build<br />
* Either pip+setuptools or ensurepip must now be installed to build QEMU. It is recommended to install distlib as well, but the build process tries to cope with its absence and it shouldn't be necessary.<br />
* A new option <tt>--enable-download</tt> will direct configure to find some missing Python build dependencies. For now this applies to sphinx (downloaded from PyPI) and libslirp (which is then built as a meson subproject). Only required and explicitly enabled dependencies (e.g. only for <tt>--enable-docs</tt> in the case of Sphinx) are downloaded.<br />
** The use of <tt>subprojects/wrapdb.json</tt> (downloaded by "meson wrap update-db") isn't supported yet.<br />
* Starting with QEMU 8.1, only Python 3.8 and newer will be supported (3.7 might work but it is not included in any of the environments that we run CI with).<br />
* new pipewire audio backend requires libpipewire (currently >= 0.3.60)<br />
* Xen versions below 4.7.1 are not supported anymore.<br />
<br />
=== Windows ===<br />
<br />
=== Testing and CI ===<br />
* riscv-cross image now using lcitool<br />
<br />
== Known issues ==<br />
<br />
* see [[Planning/8.1]]</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/8.0&diff=11410Planning/8.02023-07-25T13:46:33Z<p>Mjt: /* Release Schedule */</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2022-12-14<br />
| Beginning of development phase<br />
|-<br />
| 2023-03-07<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2023-03-14<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2023-03-21<br />
| Tag rc1<br />
|-<br />
| 2023-03-28<br />
| Tag rc2<br />
|-<br />
| <strike>2023-04-04</strike> 2023-04-05<br />
| Tag rc3<br />
|-<br />
| <strike>2023-04-11</strike> 2023-04-13<br />
| <strike>Release; or tag rc4 if needed</strike> tag rc4<br />
|-<br />
| <strike>2023-04-18</strike> 2023-04-19<br />
| Release<br />
|-<br />
| 2023-05-27<br />
| Freeze for 8.0.1 stable release<br />
|-<br />
| 2023-05-29<br />
| Tag v8.0.1<br />
|-<br />
| 2023-05-30<br />
| Tag v8.0.2 (a bugfix for 8.0.1 release)<br />
|-<br />
| 2023-07-06<br />
| Freeze for 8.0.3 stable release<br />
|-<br />
| 2023-07-08<br />
| Tag v8.0.3<br />
|-<br />
| 2023-08-05<br />
| Freeze for 8.0.4 stable release<br />
|-<br />
| 2023-08-07<br />
| Tag v8.0.4<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/8<br />
<br />
=== Other release info ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/8.0]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/7.2&diff=11409Planning/7.22023-07-25T13:43:55Z<p>Mjt: /* Release Schedule */</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2022-08-30<br />
| Beginning of development phase<br />
|-<br />
| 2022-11-1<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2022-11-8<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2022-11-15<br />
| Tag rc1<br />
|-<br />
| 2022-11-22<br />
| Tag rc2<br />
|-<br />
| 2022-11-29<br />
| Tag rc3<br />
|-<br />
| 2022-12-06<br />
| <strike>Release; or tag rc4 if needed</strike> Tag rc4<br />
|-<br />
| 2022-12-13<br />
| <strike>Release if we needed an rc4</strike> Release<br />
|-<br />
| 2023-03-30<br />
| Tag v7.2.1<br />
|-<br />
| 2023-04-20<br />
| Freeze for 7.2.2 stable release<br />
|-<br />
| 2023-04-22<br />
| Tag v7.2.2<br />
|-<br />
| 2023-05-27<br />
| Freeze for 7.2.3 stable release<br />
|-<br />
| 2023-05-29<br />
| Tag v7.2.3<br />
|-<br />
| 2023-07-06<br />
| Freeze for 7.2.4 stable release<br />
|-<br />
| 2023-07-08<br />
| Tag v7.2.4<br />
|-<br />
| 2023-08-05<br />
| Freeze for 7.2.5 stable release<br />
|-<br />
| 2023-08-07<br />
| Tag v7.2.5<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/7<br />
<br />
=== Other release ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/7.2]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/7.2&diff=11408Planning/7.22023-07-25T13:43:12Z<p>Mjt: /* Release Schedule */</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2022-08-30<br />
| Beginning of development phase<br />
|-<br />
| 2022-11-1<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2022-11-8<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2022-11-15<br />
| Tag rc1<br />
|-<br />
| 2022-11-22<br />
| Tag rc2<br />
|-<br />
| 2022-11-29<br />
| Tag rc3<br />
|-<br />
| 2022-12-06<br />
| <strike>Release; or tag rc4 if needed</strike> Tag rc4<br />
|-<br />
| 2022-12-13<br />
| <strike>Release if we needed an rc4</strike> Release<br />
|-<br />
| 2023-03-30<br />
| Tag v7.2.1<br />
|-<br />
| 2023-04-20<br />
| Freeze for 7.2.2 stable release<br />
|-<br />
| 2023-04-22<br />
| Tag v7.2.2<br />
|-<br />
| 2023-05-27<br />
| Freeze for 7.2.3 stable release<br />
|-<br />
| 2023-05-29<br />
| Tag v7.2.3<br />
|-<br />
| 2023-07-06<br />
| Freeze for 7.2.4 stable release<br />
|-<br />
| 2023-07-08<br />
| Tag v7.2.4<br />
|-<br />
| 2023-08-04<br />
| Freeze for 7.2.5 stable release<br />
|-<br />
| 2023-07-07<br />
| Tag v7.2.5|}<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/7<br />
<br />
=== Other release ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/7.2]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/7.2&diff=11407Planning/7.22023-07-25T13:42:58Z<p>Mjt: /* Release Schedule */</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2022-08-30<br />
| Beginning of development phase<br />
|-<br />
| 2022-11-1<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2022-11-8<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2022-11-15<br />
| Tag rc1<br />
|-<br />
| 2022-11-22<br />
| Tag rc2<br />
|-<br />
| 2022-11-29<br />
| Tag rc3<br />
|-<br />
| 2022-12-06<br />
| <strike>Release; or tag rc4 if needed</strike> Tag rc4<br />
|-<br />
| 2022-12-13<br />
| <strike>Release if we needed an rc4</strike> Release<br />
|-<br />
| 2023-03-30<br />
| Tag v7.2.1<br />
|-<br />
| 2023-04-20<br />
| Freeze for 7.2.2 stable release<br />
|-<br />
| 2023-04-22<br />
| Tag v7.2.2<br />
|-<br />
| 2023-05-27<br />
| Freeze for 7.2.3 stable release<br />
|-<br />
| 2023-05-29<br />
| Tag v7.2.3<br />
|-<br />
| 2023-07-06<br />
| Freeze for 7.2.4 stable release<br />
|-<br />
| 2023-07-08<br />
| Tag v7.2.4<br />
|-<br />
| 2023-08-04<br />
| Freeze for 7.2.5 stable release<br />
|-<br />
| 2023-07-07<br />
| Tag v7.2.5|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/7<br />
<br />
=== Other release ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/7.2]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/8.0&diff=11362Planning/8.02023-06-26T18:56:02Z<p>Mjt: freeze for v8.0.3</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2022-12-14<br />
| Beginning of development phase<br />
|-<br />
| 2023-03-07<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2023-03-14<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2023-03-21<br />
| Tag rc1<br />
|-<br />
| 2023-03-28<br />
| Tag rc2<br />
|-<br />
| <strike>2023-04-04</strike> 2023-04-05<br />
| Tag rc3<br />
|-<br />
| <strike>2023-04-11</strike> 2023-04-13<br />
| <strike>Release; or tag rc4 if needed</strike> tag rc4<br />
|-<br />
| <strike>2023-04-18</strike> 2023-04-19<br />
| Release<br />
|-<br />
| 2023-05-27<br />
| Freeze for 8.0.1 stable release<br />
|-<br />
| 2023-05-29<br />
| Tag v8.0.1<br />
|-<br />
| 2023-05-30<br />
| Tag v8.0.2 (a bugfix for 8.0.1 release)<br />
|-<br />
| 2023-07-06<br />
| Freeze for 8.0.3 stable release<br />
|-<br />
| 2023-07-08<br />
| Tag v8.0.3<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/8<br />
<br />
=== Other release info ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/8.0]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/7.2&diff=11361Planning/7.22023-06-26T18:55:09Z<p>Mjt: freeze for v7.2.4</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2022-08-30<br />
| Beginning of development phase<br />
|-<br />
| 2022-11-1<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2022-11-8<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2022-11-15<br />
| Tag rc1<br />
|-<br />
| 2022-11-22<br />
| Tag rc2<br />
|-<br />
| 2022-11-29<br />
| Tag rc3<br />
|-<br />
| 2022-12-06<br />
| <strike>Release; or tag rc4 if needed</strike> Tag rc4<br />
|-<br />
| 2022-12-13<br />
| <strike>Release if we needed an rc4</strike> Release<br />
|-<br />
| 2023-03-30<br />
| Tag v7.2.1<br />
|-<br />
| 2023-04-20<br />
| Freeze for 7.2.2 stable release<br />
|-<br />
| 2023-04-22<br />
| Tag v7.2.2<br />
|-<br />
| 2023-05-27<br />
| Freeze for 7.2.3 stable release<br />
|-<br />
| 2023-05-29<br />
| Tag v7.2.3<br />
|-<br />
| 2023-07-06<br />
| Freeze for 7.2.4 stable release<br />
|-<br />
| 2023-07-08<br />
| Tag v7.2.4<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/7<br />
<br />
=== Other release ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/7.2]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/7.2&diff=11360Planning/7.22023-06-26T18:53:33Z<p>Mjt: v7.2.4</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2022-08-30<br />
| Beginning of development phase<br />
|-<br />
| 2022-11-1<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2022-11-8<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2022-11-15<br />
| Tag rc1<br />
|-<br />
| 2022-11-22<br />
| Tag rc2<br />
|-<br />
| 2022-11-29<br />
| Tag rc3<br />
|-<br />
| 2022-12-06<br />
| <strike>Release; or tag rc4 if needed</strike> Tag rc4<br />
|-<br />
| 2022-12-13<br />
| <strike>Release if we needed an rc4</strike> Release<br />
|-<br />
| 2023-03-30<br />
| Tag v7.2.1<br />
|-<br />
| 2023-04-20<br />
| Freeze for 7.2.2 stable release<br />
|-<br />
| 2023-04-22<br />
| Tag v7.2.2<br />
|-<br />
| 2023-05-27<br />
| Freeze for 7.2.3 stable release<br />
|-<br />
| 2023-05-29<br />
| Tag v7.2.3<br />
|-<br />
| 2023-07-08<br />
| Tag v7.2.4<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/7<br />
<br />
=== Other release ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/7.2]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/8.0&diff=11359Planning/8.02023-06-26T18:49:00Z<p>Mjt: v8.0.3</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2022-12-14<br />
| Beginning of development phase<br />
|-<br />
| 2023-03-07<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2023-03-14<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2023-03-21<br />
| Tag rc1<br />
|-<br />
| 2023-03-28<br />
| Tag rc2<br />
|-<br />
| <strike>2023-04-04</strike> 2023-04-05<br />
| Tag rc3<br />
|-<br />
| <strike>2023-04-11</strike> 2023-04-13<br />
| <strike>Release; or tag rc4 if needed</strike> tag rc4<br />
|-<br />
| <strike>2023-04-18</strike> 2023-04-19<br />
| Release<br />
|-<br />
| 2023-05-27<br />
| Freeze for 8.0.1 stable release<br />
|-<br />
| 2023-05-29<br />
| Tag v8.0.1<br />
|-<br />
| 2023-05-30<br />
| Tag v8.0.2 (a bugfix for 8.0.1 release)<br />
|-<br />
| 2023-07-08<br />
| Tag v8.0.3<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/8<br />
<br />
=== Other release info ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/8.0]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/8.0&diff=11307Planning/8.02023-05-17T07:07:00Z<p>Mjt: 8.0.1 release schedule</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2022-12-14<br />
| Beginning of development phase<br />
|-<br />
| 2023-03-07<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2023-03-14<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2023-03-21<br />
| Tag rc1<br />
|-<br />
| 2023-03-28<br />
| Tag rc2<br />
|-<br />
| <strike>2023-04-04</strike> 2023-04-05<br />
| Tag rc3<br />
|-<br />
| <strike>2023-04-11</strike> 2023-04-13<br />
| <strike>Release; or tag rc4 if needed</strike> tag rc4<br />
|-<br />
| <strike>2023-04-18</strike> 2023-04-19<br />
| Release<br />
|-<br />
| 2023-05-27<br />
| Freeze for 8.0.1 stable release<br />
|-<br />
| 2023-05-29<br />
| Tag v8.0.1<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/8<br />
<br />
=== Other release info ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/8.0]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/8.0&diff=11306Planning/8.02023-05-17T07:05:08Z<p>Mjt: actual date of 8.0.0</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2022-12-14<br />
| Beginning of development phase<br />
|-<br />
| 2023-03-07<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2023-03-14<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2023-03-21<br />
| Tag rc1<br />
|-<br />
| 2023-03-28<br />
| Tag rc2<br />
|-<br />
| <strike>2023-04-04</strike> 2023-04-05<br />
| Tag rc3<br />
|-<br />
| <strike>2023-04-11</strike> 2023-04-13<br />
| <strike>Release; or tag rc4 if needed</strike> tag rc4<br />
|-<br />
| <strike>2023-04-18</strike> 2023-04-19<br />
| Release<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/8<br />
<br />
=== Other release info ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/8.0]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/7.2&diff=11305Planning/7.22023-05-17T07:02:29Z<p>Mjt: dates for 7.2.3</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2022-08-30<br />
| Beginning of development phase<br />
|-<br />
| 2022-11-1<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2022-11-8<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2022-11-15<br />
| Tag rc1<br />
|-<br />
| 2022-11-22<br />
| Tag rc2<br />
|-<br />
| 2022-11-29<br />
| Tag rc3<br />
|-<br />
| 2022-12-06<br />
| <strike>Release; or tag rc4 if needed</strike> Tag rc4<br />
|-<br />
| 2022-12-13<br />
| <strike>Release if we needed an rc4</strike> Release<br />
|-<br />
| 2023-03-30<br />
| Tag v7.2.1<br />
|-<br />
| 2023-04-20<br />
| Freeze for 7.2.2 stable release<br />
|-<br />
| 2023-04-22<br />
| Tag v7.2.2<br />
|-<br />
| 2023-05-27<br />
| Freeze for 7.2.3 stable release<br />
|-<br />
| 2023-05-29<br />
| Tag v7.2.3<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/7<br />
<br />
=== Other release ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/7.2]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Documentation/Networking&diff=11301Documentation/Networking2023-05-09T10:26:36Z<p>Mjt: Undo revision 11299 by Mjt (talk)</p>
<hr />
<div><br />
= Network Basics =<br />
<br />
There are two parts to networking within QEMU:<br />
* the virtual network device that is provided to the guest (e.g. a PCI network card).<br />
* the network backend that interacts with the emulated NIC (e.g. puts packets onto the host's network).<br />
<br />
There are a range of options for each part. By default QEMU will create a SLiRP user network backend and an appropriate virtual network device for the guest (eg an E1000 PCI card for most x86 PC guests), as if you had typed <tt>-net nic -net user</tt> on your command line.<br />
<br />
'''Note''' - if you specify any networking options on the command line (via <tt>-net</tt> or <tt>-netdev</tt>) then QEMU will require you to provide options sufficient to define and connect up both parts. (Forgetting to specify the backend or the network device will give a warning message such as "Warning: netdev mynet0 has no peer", "Warning: hub 0 is not connected to host network" or "Warning: hub 0 with no nics"; the VM will then boot but will not have functioning networking.)<br />
<br />
'''Note''' - if you are using the (default) SLiRP user networking, then ping (ICMP) will not work, though TCP and UDP will. Don't try to use ping to test your QEMU network configuration!<br />
<br />
'''Note''' - As this page is probably very brief or even incomplete you might find these pages rather useful:<br />
* [http://en.wikibooks.org/wiki/QEMU/Networking QEMU Networking] on wikibooks.org, mainly dealing with Linux hosts<br />
* [http://bsdwiki.reedmedia.net/wiki/networking_qemu_virtual_bsd_systems.html QEMU Networking] on bsdwiki, showing used networking principles and dealing with BSD hosts<br />
<br />
= Network Backends =<br />
<br />
== How to create a network backend? ==<br />
There are a number of network backends to choose from depending on your environment. Create a network backend like this:<br />
<br />
-netdev TYPE,id=NAME,...<br />
<br />
The <tt>id</tt> option gives the name by which the virtual network device and the network backend are associated with each other. If you want multiple virtual network devices inside the guest they each need their own network backend. The name is used to distinguish backends from each other and must be used even when only one backend is specified.<br />
<br />
== Network backend types ==<br />
<br />
In most cases, if you don't have any specific networking requirements other than to be able to access to a web page from your guest, user networking (slirp) is a good choice. However, if you are looking to run any kind of network service or have your guest participate in a network in any meaningful way, tap is usually the best choice.<br />
<br />
=== User Networking (SLIRP) ===<br />
<br />
This is the default networking backend and generally is the easiest to use. It does not require root / Administrator privileges.<br />
It has the following limitations:<br />
<br />
* there is a lot of overhead so the performance is poor<br />
* in general, ICMP traffic does not work (so you cannot use ping within a guest)<br />
* on Linux hosts, ping does work from within the guest, but it needs initial setup by root (once per host) -- see the steps below<br />
* the guest is not directly accessible from the host or the external network<br />
<br />
User Networking is implemented using "slirp", which provides a full TCP/IP stack within QEMU and uses that stack to implement a virtual NAT'd network.<br />
<br />
A typical (default) network is shown below.<br />
<br />
[[File:Slirp_concept.png]]<br />
<br />
Note that from inside the guest, connecting to a port on the "gateway" IP address will connect to that port on the host; so for instance "ssh 10.0.2.2" will ssh from the guest to the host.<br />
<br />
You can configure User Networking using the <tt>-netdev user</tt> command line option.<br />
<br />
Adding the following to the qemu command line will change the network configuration to use 192.168.76.0/24 instead of the default (10.0.2.0/24) and will start guest DHCP allocation from 9 (instead of 15):<br />
<br />
-netdev user,id=mynet0,net=192.168.76.0/24,dhcpstart=192.168.76.9<br />
<br />
You can isolate the guest from the host (and broader network) using the <tt>restrict</tt> option. For example <tt>-netdev user,id=mynet0,restrict=y</tt> or <tt>-netdev type=user,id=mynet0,restrict=yes</tt> will restrict networking to just the guest and any virtual devices. This can be used to prevent software running inside the guest from phoning home while still providing a network inside the guest. You can selectively override this using <tt>hostfwd</tt> and <tt>guestfwd</tt> options.<br />
<br />
==== Enabling ping in the guest, on Linux hosts ====<br />
<br />
* Determine the main group ID (or one supplementary group ID) of the user that will run QEMU with slirp.<br />
<br />
* In <tt>/etc/sysctl.conf</tt> (or whatever is appropriate for your host distro), make sure that the whitespace-separated, inclusive group ID range in the <tt>net.ipv4.ping_group_range</tt> sysctl includes the above group ID.<br />
<br />
For example, as root,<br />
<br />
* add a new group called <tt>unpriv_ping</tt>:<br />
<br />
groupadd unpriv_ping<br />
<br />
* set this group for a number of users as another supplementary group (note, they will have to re-login):<br />
<br />
for U in user1 user2 ... user_n; do<br />
usermod --append --groups unpriv_ping $U<br />
done<br />
<br />
* then set both sides of the inclusive range in the above sysctl to the numeric ID of the new group:<br />
<br />
(<br />
GROUP_ID=$(getent group unpriv_ping | cut -f 3 -d :)<br />
printf 'net.ipv4.ping_group_range = %u %u\n' $GROUP_ID $GROUP_ID \<br />
>> /etc/sysctl.conf<br />
)<br />
sysctl -p<br />
<br />
==== Advanced user networking options ====<br />
<br />
The <tt>-netdev user</tt> parameter has some more useful options:<br />
<br />
* The DHCP address and name for the guest can be set with <tt>-netdev user,id=n0,host=addr,hostname=name</tt><br />
* You can specify the guest-visible virtual DNS server address with <tt>-netdev user,id=n0,dns=addr</tt><br />
* QEMU can simulate a TFTP server with <tt>-netdev user,id=n0,tftp=xxx,bootfile=yyy</tt><br />
* To share files between your guest and host, you can use <tt>-netdev user,id=n0,smb=dir,smbserver=addr</tt><br />
* To forward host ports to your guest, use <tt>-netdev user,id=n0,hostfwd=hostip:hostport-guestip:guestport</tt><br />
<br />
For details, please see the [https://qemu.weilnetz.de/doc/qemu-doc.html#Network-options QEMU documentation].<br />
<br />
=== Tap ===<br />
<br />
The tap networking backend makes use of a tap networking device in the host. It offers very good performance and can be configured to create virtually any type of network topology. Unfortunately, it requires configuration of that network topology in the host which tends to be different depending on the operating system you are using. Generally speaking, it also requires that you have root privileges.<br />
<br />
-netdev tap,id=mynet0<br />
<br />
<br />
=== VDE ===<br />
<br />
The VDE networking backend uses the [http://vde.sourceforge.net Virtual Distributed Ethernet] infrastructure to network guests. Unless you specifically know that you want to use VDE, it is probably not the right backend to use.<br />
<br />
=== Socket ===<br />
<br />
The socket networking backend allows you to create a network of guests that can see each other. It's primarily useful in extending the network created by the SLIRP backend to multiple virtual machines. In general, if you want to have multiple guests communicate, the tap backend is a better choice unless you do not have root access to the host environment.<br />
<br />
-netdev socket,id=mynet0,listen=:1234<br />
-netdev socket,id=mynet0,connect=:1234<br />
<br />
= Virtual Network Devices =<br />
<br />
== How to create a virtual network device? ==<br />
The virtual network device that you choose depends on your needs and the guest environment (i.e. the hardware that you are emulating). For example, if you are emulating a particular embedded board, then you should use the virtual network device that comes with embedded board's configuration. Such on-board NICs can be configured with the <tt>-nic</tt> option of QEMU. See the corresponding section below for details.<br />
<br />
On machines that have a PCI bus (or any other pluggable bus system), there are a wider range of options. For example, the e1000 is the default network adapter on some machines in QEMU. Other older guests might require the rtl8139 network adapter. For modern guests, the virtio-net (para-virtualised) network adapter should be used instead since it has the best performance, but it requires special guest driver support which might not be available on very old operating systems.<br />
<br />
Use the <tt>-device</tt> option to add a particular virtual network device to your virtual machine:<br />
<br />
-device TYPE,netdev=NAME<br />
<br />
The <tt>netdev</tt> is the name of a previously defined <tt>-netdev</tt>. The virtual network device will be associated with this network backend.<br />
<br />
Note that there are other device options to select alternative devices, or to change some aspect of the device. For example, you want something like:<br />
<tt>-device DEVNAME,netdev=NET-ID,mac=MACADDR,DEV-OPTS</tt>, where <tt>DEVNAME</tt> is the device (e.g. <tt>i82559c</tt> for an Intel i82559C Ethernet device), <tt>NET_ID</tt> is the network identifier to attach the device to (see discussion of <tt>-netdev</tt> below), <tt>MACADDR</tt> is the MAC address for the device, and <tt>DEV-OPTS</tt> are any additional device options that you may wish to pass (e.g. <tt>bus=PCI-BUS,addr=DEVFN</tt> to control the PCI device address), if supported by the device.<br />
<br />
Use <tt>-device help</tt> to get a list of the devices (including network devices) you can add using the <tt>-device</tt> option for a particular guest.<br />
<br />
== The -nic option ==<br />
<br />
In case you don't care about configuring every detail of a NIC, you can also create a NIC together with a host backend by using the <tt>-nic</tt> parameter. For example, you can replace<br />
<br />
-netdev user,id=n1 -device virtio-net-pci,netdev=n1<br />
<br />
with:<br />
<br />
-nic user,model=virtio-net-pci<br />
<br />
Use <tt>-nic model=help</tt> to get a list of the supported NIC models.<br />
<br />
If you don't care about the NIC model, you can also omit that option. So the shortest way to get a tap device is for example simply:<br />
<br />
-nic tap<br />
<br />
The NIC option should also be use to configure NICs on embedded systems (which can not be used via <tt>-device</tt>). For example, to connect such an on-board NIC to the tap backend and change its MAC-address, you can use the <tt>-nic</tt> option like this:<br />
<br />
-nic tap,mac=02:ca:fe:f0:0d:01<br />
<br />
= Network Monitoring =<br />
<br />
You can monitor the network configuration using <tt>info network</tt> and <tt>info usernet</tt> commands.<br />
<br />
You can capture network traffic from within QEMU using the <tt>filter-dump</tt> object, like this:<br />
<br />
-netdev user,id=u1 -device e1000,netdev=u1 \<br />
-object filter-dump,id=f1,netdev=u1,file=dump.dat<br />
<br />
Once you've shut down QEMU, you can examine the <tt>dump.dat</tt> file with tools like Wireshark. Please note that network traffic dumping can only work if QEMU has a chance to see the network packets, i.e. this does not work if you use virtio-net with vhost acceleration in the kernel.<br />
<br />
= Network HOWTOs =<br />
<br />
== How to get SSH access to a guest ==<br />
<br />
A simplest way is to forward a specific host port to guest port 22. It can be done via:<br />
<br />
-device e1000,netdev=net0<br />
-netdev user,id=net0,hostfwd=tcp::5555-:22<br />
<br />
The first line creates a virtual e1000 network device, while the second line created one user typed backend, forwarding local port 5555 to guest port 22. Then we can do:<br />
<br />
ssh localhost -p 5555<br />
<br />
to have SSH access to guest after its network setup (don't forget to turn off firewalls if there is any in the guest or host).<br />
<br />
== How to use tap with a wireless adapter on the host ==<br />
<br />
See this:<br />
<br />
* [[Documentation/Networking/NAT|Use tap with a wireless adapter on the host]]<br />
<br />
== How to disable network completely ==<br />
<br />
If you don't specify any network configuration options, then QEMU will create a SLiRP user network backend and an appropriate virtual network device for the guest (eg an E1000 PCI card for most x86 PC guests). If you don't want any networking at all you can suppress this default with:<br />
<br />
-nic none<br />
<br />
The more general option <tt>-nodefaults</tt> also suppresses the default networking configuration, as well as the creation of several other default devices.<br />
<br />
== Setting up taps on Linux ==<br />
<br />
For Linux with iproute2 and tap/tun support, this can be configured as below, and assumes the reader has experience using iproute2 (at least ip-addr and ip-link). Take note of the host's physical devices' configuration, as the bridge created will become the new endpoint for the physical device. Note that this '''WILL''' cause the host's networking on that physical device to go out, possibly requiring a reboot for remote systems!<br />
<br />
# ip link add br0 type bridge<br />
# ip tuntap add dev tap0 mode tap<br />
# ip link set dev tap0 master br0 # set br0 as the target bridge for tap0<br />
# ip link set dev eth0 master br0 # set br0 as the target bridge for eth0<br />
# ip link set dev br0 up<br />
<br />
At this point, the bridge works, but is not usable as it does not have an IP address. For reassigning the physical device's addresses for the bridge to be usable:<br />
<br />
# ip address delete $PREFIX dev eth0<br />
# ip address add $PREFIX dev br0<br />
# ip route add default via $ROUTE dev br0<br />
<br />
This can be automated with a shell script to setup tap networking on remote hosts; as mentioned above, connection will be lost upon setting the physical device's master to a bridge.<br />
<br />
Please note that the newly-created tap device's link may need to be set to UP via <tt>ip-link</tt> after a virtual machine has been started. Furthermore, as a bridge device basically acts as the new endpoint for a physical device, most normal networking commands, such as a DHCP client or packet sniffer, must be ran on the bridge instead of the physical device. Creating multiple bridges per interface is known (anecdotally) to be problematic; instead, create a tap for each virtual machine using a single bridge for each physical device to be used.<br />
<br />
== TODO LIST ==<br />
<br />
* Use tap to let guests be visible on the host network for non-Linux.<br />
* Pass QEMU a physical card rather than emulation/simulation.<br />
<br />
= Misc =<br />
<br />
== The legacy -net option ==<br />
<br />
QEMU previously used the <tt>-net nic</tt> option instead of <tt>-device DEVNAME</tt> and <tt>-net TYPE</tt> instead of <tt>-netdev TYPE</tt>. This is considered obsolete since QEMU 0.12, although it continues to work.<br />
The legacy syntax to create virtual network devices is:<br />
<br />
-net nic,model=MODEL<br />
<br />
You can use <tt>-net nic,model=?</tt> to get a list of valid network devices that you can pass to the <tt>-net nic</tt> option. Note that these model names might be different from the <tt>-device ?</tt> names and are therefore only useful if you are using the <tt>-net nic,model=MODEL</tt> syntax.<br />
<br />
The obsolete <tt>-net</tt> syntax automatically created an emulated hub with ID 0 (used to be called a "VLAN" in older versions of QEMU, for virtual LAN) that forwards traffic from any device connected to it to every other device on the "VLAN". If you need more than one hub in recent versions of QEMU, you can do this with the "hubport" backend, e.g. by using <tt>-nic hubport,hubid=1</tt>.<br />
<br />
== Guest Hints ==<br />
<br />
=== Linux ===<br />
<br />
Should work using default network settings.<br />
<br />
=== Mac OS 9 ===<br />
If having problems, open the TCP/IP control panel. Under "Connect via:" select Ethernet. Under "Configure" select "Using DHCP Server". Close the control panel. Wait a few seconds then try opening it again. The fields in the window should have been auto-populated. <br />
<br />
-netdev user,id=mynet0 -device sungem,netdev=mynet0<br />
<br />
=== Mac OS 10.2 ===<br />
<br />
Starting with QEMU 2.11, the SunGEM NIC can be used. Open the System Preferences, go to the Network pane. You should see a dialog box telling you it has found a new network interface card. Click the Ok button. Click the 'Apply Now' Button at the bottom of the window. The fields in the TCP/IP tab should populate. <br />
<br />
-netdev user,id=mynet0 -device sungem,netdev=mynet0<br />
<br />
=== Mac OS 10.4 ===<br />
<br />
-usb -netdev user,id=mynet0 -device usb-net,netdev=mynet0<br />
<br />
or<br />
<br />
-netdev user,id=mynet0 -device rtl8139,netdev=mynet0<br />
<br />
Open System Preferences and go to the Network pane. Select the Ethernet Adapter from the "Show" drop down menu. From the TCP/IP tab, push the Apply Now button at the bottom. This will make the nic work. <br />
<br />
=== Windows NT 4.0 ===<br />
-netdev user,id=mynet0 -device pcnet,netdev=mynet0<br />
<br />
=== Windows 2000, Windows XP, Windows 7 ===<br />
<br />
-netdev user,id=n0 -device rtl8139,netdev=n0<br />
<br />
Windows will automatically detect and use the NIC.<br />
<br />
=== React OS ===<br />
-netdev user,id=n0 -device rtl8139,netdev=n0<br />
<br />
[[Category:User documentation]]</div>Mjthttps://wiki.qemu.org/index.php?title=Documentation/Networking&diff=11300Documentation/Networking2023-05-09T10:13:56Z<p>Mjt: ip tuntap will load the module, modprobe is not necessary</p>
<hr />
<div><br />
= Network Basics =<br />
<br />
There are two parts to networking within QEMU:<br />
* the virtual network device that is provided to the guest (e.g. a PCI network card).<br />
* the network backend that interacts with the emulated NIC (e.g. puts packets onto the host's network).<br />
<br />
There are a range of options for each part. By default QEMU will create a SLiRP user network backend and an appropriate virtual network device for the guest (eg an E1000 PCI card for most x86 PC guests), as if you had typed <tt>-net nic -net user</tt> on your command line.<br />
<br />
'''Note''' - if you specify any networking options on the command line (via <tt>-net</tt> or <tt>-netdev</tt>) then QEMU will require you to provide options sufficient to define and connect up both parts. (Forgetting to specify the backend or the network device will give a warning message such as "Warning: netdev mynet0 has no peer", "Warning: hub 0 is not connected to host network" or "Warning: hub 0 with no nics"; the VM will then boot but will not have functioning networking.)<br />
<br />
'''Note''' - if you are using the (default) SLiRP user networking, then ping (ICMP) will not work, though TCP and UDP will. Don't try to use ping to test your QEMU network configuration!<br />
<br />
'''Note''' - As this page is probably very brief or even incomplete you might find these pages rather useful:<br />
* [http://en.wikibooks.org/wiki/QEMU/Networking QEMU Networking] on wikibooks.org, mainly dealing with Linux hosts<br />
* [http://bsdwiki.reedmedia.net/wiki/networking_qemu_virtual_bsd_systems.html QEMU Networking] on bsdwiki, showing used networking principles and dealing with BSD hosts<br />
<br />
= Network Backends =<br />
<br />
== How to create a network backend? ==<br />
There are a number of network backends to choose from depending on your environment. Create a network backend like this:<br />
<br />
-netdev TYPE,id=NAME,...<br />
<br />
The <tt>id</tt> option gives the name by which the virtual network device and the network backend are associated with each other. If you want multiple virtual network devices inside the guest they each need their own network backend. The name is used to distinguish backends from each other and must be used even when only one backend is specified.<br />
<br />
== Network backend types ==<br />
<br />
In most cases, if you don't have any specific networking requirements other than to be able to access to a web page from your guest, user networking (slirp) is a good choice. However, if you are looking to run any kind of network service or have your guest participate in a network in any meaningful way, tap is usually the best choice.<br />
<br />
=== User Networking (SLIRP) ===<br />
<br />
This is the default networking backend and generally is the easiest to use. It does not require root / Administrator privileges.<br />
It has the following limitations:<br />
<br />
* there is a lot of overhead so the performance is poor<br />
* in general, ICMP traffic does not work (so you cannot use ping within a guest)<br />
* on Linux hosts, ping does work from within the guest, but it needs initial setup by root (once per host) -- see the steps below<br />
* the guest is not directly accessible from the host or the external network<br />
<br />
User Networking is implemented using "slirp", which provides a full TCP/IP stack within QEMU and uses that stack to implement a virtual NAT'd network.<br />
<br />
A typical (default) network is shown below.<br />
<br />
[[File:Slirp_concept.png]]<br />
<br />
Note that from inside the guest, connecting to a port on the "gateway" IP address will connect to that port on the host; so for instance "ssh 10.0.2.2" will ssh from the guest to the host.<br />
<br />
You can configure User Networking using the <tt>-netdev user</tt> command line option.<br />
<br />
Adding the following to the qemu command line will change the network configuration to use 192.168.76.0/24 instead of the default (10.0.2.0/24) and will start guest DHCP allocation from 9 (instead of 15):<br />
<br />
-netdev user,id=mynet0,net=192.168.76.0/24,dhcpstart=192.168.76.9<br />
<br />
You can isolate the guest from the host (and broader network) using the <tt>restrict</tt> option. For example <tt>-netdev user,id=mynet0,restrict=y</tt> or <tt>-netdev type=user,id=mynet0,restrict=yes</tt> will restrict networking to just the guest and any virtual devices. This can be used to prevent software running inside the guest from phoning home while still providing a network inside the guest. You can selectively override this using <tt>hostfwd</tt> and <tt>guestfwd</tt> options.<br />
<br />
==== Enabling ping in the guest, on Linux hosts ====<br />
<br />
* Determine the main group ID (or one supplementary group ID) of the user that will run QEMU with slirp.<br />
<br />
* In <tt>/etc/sysctl.conf</tt> (or whatever is appropriate for your host distro), make sure that the whitespace-separated, inclusive group ID range in the <tt>net.ipv4.ping_group_range</tt> sysctl includes the above group ID.<br />
<br />
For example, as root,<br />
<br />
* add a new group called <tt>unpriv_ping</tt>:<br />
<br />
groupadd unpriv_ping<br />
<br />
* set this group for a number of users as another supplementary group (note, they will have to re-login):<br />
<br />
for U in user1 user2 ... user_n; do<br />
usermod --append --groups unpriv_ping $U<br />
done<br />
<br />
* then set both sides of the inclusive range in the above sysctl to the numeric ID of the new group:<br />
<br />
(<br />
GROUP_ID=$(getent group unpriv_ping | cut -f 3 -d :)<br />
printf 'net.ipv4.ping_group_range = %u %u\n' $GROUP_ID $GROUP_ID \<br />
>> /etc/sysctl.conf<br />
)<br />
sysctl -p<br />
<br />
==== Advanced user networking options ====<br />
<br />
The <tt>-netdev user</tt> parameter has some more useful options:<br />
<br />
* The DHCP address and name for the guest can be set with <tt>-netdev user,id=n0,host=addr,hostname=name</tt><br />
* You can specify the guest-visible virtual DNS server address with <tt>-netdev user,id=n0,dns=addr</tt><br />
* QEMU can simulate a TFTP server with <tt>-netdev user,id=n0,tftp=xxx,bootfile=yyy</tt><br />
* To share files between your guest and host, you can use <tt>-netdev user,id=n0,smb=dir,smbserver=addr</tt><br />
* To forward host ports to your guest, use <tt>-netdev user,id=n0,hostfwd=hostip:hostport-guestip:guestport</tt><br />
<br />
For details, please see the [https://qemu.weilnetz.de/doc/qemu-doc.html#Network-options QEMU documentation].<br />
<br />
=== Tap ===<br />
<br />
The tap networking backend makes use of a tap networking device in the host. It offers very good performance and can be configured to create virtually any type of network topology. Unfortunately, it requires configuration of that network topology in the host which tends to be different depending on the operating system you are using. Generally speaking, it also requires that you have root privileges.<br />
<br />
-netdev tap,id=mynet0<br />
<br />
<br />
=== VDE ===<br />
<br />
The VDE networking backend uses the [http://vde.sourceforge.net Virtual Distributed Ethernet] infrastructure to network guests. Unless you specifically know that you want to use VDE, it is probably not the right backend to use.<br />
<br />
=== Socket ===<br />
<br />
The socket networking backend allows you to create a network of guests that can see each other. It's primarily useful in extending the network created by the SLIRP backend to multiple virtual machines. In general, if you want to have multiple guests communicate, the tap backend is a better choice unless you do not have root access to the host environment.<br />
<br />
-netdev socket,id=mynet0,listen=:1234<br />
-netdev socket,id=mynet0,connect=:1234<br />
<br />
= Virtual Network Devices =<br />
<br />
== How to create a virtual network device? ==<br />
The virtual network device that you choose depends on your needs and the guest environment (i.e. the hardware that you are emulating). For example, if you are emulating a particular embedded board, then you should use the virtual network device that comes with embedded board's configuration. Such on-board NICs can be configured with the <tt>-nic</tt> option of QEMU. See the corresponding section below for details.<br />
<br />
On machines that have a PCI bus (or any other pluggable bus system), there are a wider range of options. For example, the e1000 is the default network adapter on some machines in QEMU. Other older guests might require the rtl8139 network adapter. For modern guests, the virtio-net (para-virtualised) network adapter should be used instead since it has the best performance, but it requires special guest driver support which might not be available on very old operating systems.<br />
<br />
Use the <tt>-device</tt> option to add a particular virtual network device to your virtual machine:<br />
<br />
-device TYPE,netdev=NAME<br />
<br />
The <tt>netdev</tt> is the name of a previously defined <tt>-netdev</tt>. The virtual network device will be associated with this network backend.<br />
<br />
Note that there are other device options to select alternative devices, or to change some aspect of the device. For example, you want something like:<br />
<tt>-device DEVNAME,netdev=NET-ID,mac=MACADDR,DEV-OPTS</tt>, where <tt>DEVNAME</tt> is the device (e.g. <tt>i82559c</tt> for an Intel i82559C Ethernet device), <tt>NET_ID</tt> is the network identifier to attach the device to (see discussion of <tt>-netdev</tt> below), <tt>MACADDR</tt> is the MAC address for the device, and <tt>DEV-OPTS</tt> are any additional device options that you may wish to pass (e.g. <tt>bus=PCI-BUS,addr=DEVFN</tt> to control the PCI device address), if supported by the device.<br />
<br />
Use <tt>-device help</tt> to get a list of the devices (including network devices) you can add using the <tt>-device</tt> option for a particular guest.<br />
<br />
== The -nic option ==<br />
<br />
In case you don't care about configuring every detail of a NIC, you can also create a NIC together with a host backend by using the <tt>-nic</tt> parameter. For example, you can replace<br />
<br />
-netdev user,id=n1 -device virtio-net-pci,netdev=n1<br />
<br />
with:<br />
<br />
-nic user,model=virtio-net-pci<br />
<br />
Use <tt>-nic model=help</tt> to get a list of the supported NIC models.<br />
<br />
If you don't care about the NIC model, you can also omit that option. So the shortest way to get a tap device is for example simply:<br />
<br />
-nic tap<br />
<br />
The NIC option should also be use to configure NICs on embedded systems (which can not be used via <tt>-device</tt>). For example, to connect such an on-board NIC to the tap backend and change its MAC-address, you can use the <tt>-nic</tt> option like this:<br />
<br />
-nic tap,mac=02:ca:fe:f0:0d:01<br />
<br />
= Network Monitoring =<br />
<br />
You can monitor the network configuration using <tt>info network</tt> and <tt>info usernet</tt> commands.<br />
<br />
You can capture network traffic from within QEMU using the <tt>filter-dump</tt> object, like this:<br />
<br />
-netdev user,id=u1 -device e1000,netdev=u1 \<br />
-object filter-dump,id=f1,netdev=u1,file=dump.dat<br />
<br />
Once you've shut down QEMU, you can examine the <tt>dump.dat</tt> file with tools like Wireshark. Please note that network traffic dumping can only work if QEMU has a chance to see the network packets, i.e. this does not work if you use virtio-net with vhost acceleration in the kernel.<br />
<br />
= Network HOWTOs =<br />
<br />
== How to get SSH access to a guest ==<br />
<br />
A simplest way is to forward a specific host port to guest port 22. It can be done via:<br />
<br />
-device e1000,netdev=net0<br />
-netdev user,id=net0,hostfwd=tcp::5555-:22<br />
<br />
The first line creates a virtual e1000 network device, while the second line created one user typed backend, forwarding local port 5555 to guest port 22. Then we can do:<br />
<br />
ssh localhost -p 5555<br />
<br />
to have SSH access to guest after its network setup (don't forget to turn off firewalls if there is any in the guest or host).<br />
<br />
== How to use tap with a wireless adapter on the host ==<br />
<br />
See this:<br />
<br />
* [[Documentation/Networking/NAT|Use tap with a wireless adapter on the host]]<br />
<br />
== How to disable network completely ==<br />
<br />
If you don't specify any network configuration options, then QEMU will create a SLiRP user network backend and an appropriate virtual network device for the guest (eg an E1000 PCI card for most x86 PC guests). If you don't want any networking at all you can suppress this default with:<br />
<br />
-net none<br />
<br />
The more general option <tt>-nodefaults</tt> also suppresses the default networking configuration, as well as the creation of several other default devices.<br />
<br />
== Setting up taps on Linux ==<br />
<br />
For Linux with iproute2 and tap/tun support, this can be configured as below, and assumes the reader has experience using iproute2 (at least ip-addr and ip-link). Take note of the host's physical devices' configuration, as the bridge created will become the new endpoint for the physical device. Note that this '''WILL''' cause the host's networking on that physical device to go out, possibly requiring a reboot for remote systems!<br />
<br />
# ip link add br0 type bridge<br />
# ip tuntap add dev tap0 mode tap<br />
# ip link set dev tap0 master br0 # set br0 as the target bridge for tap0<br />
# ip link set dev eth0 master br0 # set br0 as the target bridge for eth0<br />
# ip link set dev br0 up<br />
<br />
At this point, the bridge works, but is not usable as it does not have an IP address. For reassigning the physical device's addresses for the bridge to be usable:<br />
<br />
# ip address delete $PREFIX dev eth0<br />
# ip address add $PREFIX dev br0<br />
# ip route add default via $ROUTE dev br0<br />
<br />
This can be automated with a shell script to setup tap networking on remote hosts; as mentioned above, connection will be lost upon setting the physical device's master to a bridge.<br />
<br />
Please note that the newly-created tap device's link may need to be set to UP via <tt>ip-link</tt> after a virtual machine has been started. Furthermore, as a bridge device basically acts as the new endpoint for a physical device, most normal networking commands, such as a DHCP client or packet sniffer, must be ran on the bridge instead of the physical device. Creating multiple bridges per interface is known (anecdotally) to be problematic; instead, create a tap for each virtual machine using a single bridge for each physical device to be used.<br />
<br />
== TODO LIST ==<br />
<br />
* Use tap to let guests be visible on the host network for non-Linux.<br />
* Pass QEMU a physical card rather than emulation/simulation.<br />
<br />
= Misc =<br />
<br />
== The legacy -net option ==<br />
<br />
QEMU previously used the <tt>-net nic</tt> option instead of <tt>-device DEVNAME</tt> and <tt>-net TYPE</tt> instead of <tt>-netdev TYPE</tt>. This is considered obsolete since QEMU 0.12, although it continues to work.<br />
The legacy syntax to create virtual network devices is:<br />
<br />
-net nic,model=MODEL<br />
<br />
You can use <tt>-net nic,model=?</tt> to get a list of valid network devices that you can pass to the <tt>-net nic</tt> option. Note that these model names might be different from the <tt>-device ?</tt> names and are therefore only useful if you are using the <tt>-net nic,model=MODEL</tt> syntax.<br />
<br />
The obsolete <tt>-net</tt> syntax automatically created an emulated hub with ID 0 (used to be called a "VLAN" in older versions of QEMU, for virtual LAN) that forwards traffic from any device connected to it to every other device on the "VLAN". If you need more than one hub in recent versions of QEMU, you can do this with the "hubport" backend, e.g. by using <tt>-nic hubport,hubid=1</tt>.<br />
<br />
== Guest Hints ==<br />
<br />
=== Linux ===<br />
<br />
Should work using default network settings.<br />
<br />
=== Mac OS 9 ===<br />
If having problems, open the TCP/IP control panel. Under "Connect via:" select Ethernet. Under "Configure" select "Using DHCP Server". Close the control panel. Wait a few seconds then try opening it again. The fields in the window should have been auto-populated. <br />
<br />
-netdev user,id=mynet0 -device sungem,netdev=mynet0<br />
<br />
=== Mac OS 10.2 ===<br />
<br />
Starting with QEMU 2.11, the SunGEM NIC can be used. Open the System Preferences, go to the Network pane. You should see a dialog box telling you it has found a new network interface card. Click the Ok button. Click the 'Apply Now' Button at the bottom of the window. The fields in the TCP/IP tab should populate. <br />
<br />
-netdev user,id=mynet0 -device sungem,netdev=mynet0<br />
<br />
=== Mac OS 10.4 ===<br />
<br />
-usb -netdev user,id=mynet0 -device usb-net,netdev=mynet0<br />
<br />
or<br />
<br />
-netdev user,id=mynet0 -device rtl8139,netdev=mynet0<br />
<br />
Open System Preferences and go to the Network pane. Select the Ethernet Adapter from the "Show" drop down menu. From the TCP/IP tab, push the Apply Now button at the bottom. This will make the nic work. <br />
<br />
=== Windows NT 4.0 ===<br />
-netdev user,id=mynet0 -device pcnet,netdev=mynet0<br />
<br />
=== Windows 2000, Windows XP, Windows 7 ===<br />
<br />
-netdev user,id=n0 -device rtl8139,netdev=n0<br />
<br />
Windows will automatically detect and use the NIC.<br />
<br />
=== React OS ===<br />
-netdev user,id=n0 -device rtl8139,netdev=n0<br />
<br />
[[Category:User documentation]]</div>Mjthttps://wiki.qemu.org/index.php?title=Documentation/Networking&diff=11299Documentation/Networking2023-05-09T10:13:01Z<p>Mjt: -nic => -net</p>
<hr />
<div><br />
= Network Basics =<br />
<br />
There are two parts to networking within QEMU:<br />
* the virtual network device that is provided to the guest (e.g. a PCI network card).<br />
* the network backend that interacts with the emulated NIC (e.g. puts packets onto the host's network).<br />
<br />
There are a range of options for each part. By default QEMU will create a SLiRP user network backend and an appropriate virtual network device for the guest (eg an E1000 PCI card for most x86 PC guests), as if you had typed <tt>-net nic -net user</tt> on your command line.<br />
<br />
'''Note''' - if you specify any networking options on the command line (via <tt>-net</tt> or <tt>-netdev</tt>) then QEMU will require you to provide options sufficient to define and connect up both parts. (Forgetting to specify the backend or the network device will give a warning message such as "Warning: netdev mynet0 has no peer", "Warning: hub 0 is not connected to host network" or "Warning: hub 0 with no nics"; the VM will then boot but will not have functioning networking.)<br />
<br />
'''Note''' - if you are using the (default) SLiRP user networking, then ping (ICMP) will not work, though TCP and UDP will. Don't try to use ping to test your QEMU network configuration!<br />
<br />
'''Note''' - As this page is probably very brief or even incomplete you might find these pages rather useful:<br />
* [http://en.wikibooks.org/wiki/QEMU/Networking QEMU Networking] on wikibooks.org, mainly dealing with Linux hosts<br />
* [http://bsdwiki.reedmedia.net/wiki/networking_qemu_virtual_bsd_systems.html QEMU Networking] on bsdwiki, showing used networking principles and dealing with BSD hosts<br />
<br />
= Network Backends =<br />
<br />
== How to create a network backend? ==<br />
There are a number of network backends to choose from depending on your environment. Create a network backend like this:<br />
<br />
-netdev TYPE,id=NAME,...<br />
<br />
The <tt>id</tt> option gives the name by which the virtual network device and the network backend are associated with each other. If you want multiple virtual network devices inside the guest they each need their own network backend. The name is used to distinguish backends from each other and must be used even when only one backend is specified.<br />
<br />
== Network backend types ==<br />
<br />
In most cases, if you don't have any specific networking requirements other than to be able to access to a web page from your guest, user networking (slirp) is a good choice. However, if you are looking to run any kind of network service or have your guest participate in a network in any meaningful way, tap is usually the best choice.<br />
<br />
=== User Networking (SLIRP) ===<br />
<br />
This is the default networking backend and generally is the easiest to use. It does not require root / Administrator privileges.<br />
It has the following limitations:<br />
<br />
* there is a lot of overhead so the performance is poor<br />
* in general, ICMP traffic does not work (so you cannot use ping within a guest)<br />
* on Linux hosts, ping does work from within the guest, but it needs initial setup by root (once per host) -- see the steps below<br />
* the guest is not directly accessible from the host or the external network<br />
<br />
User Networking is implemented using "slirp", which provides a full TCP/IP stack within QEMU and uses that stack to implement a virtual NAT'd network.<br />
<br />
A typical (default) network is shown below.<br />
<br />
[[File:Slirp_concept.png]]<br />
<br />
Note that from inside the guest, connecting to a port on the "gateway" IP address will connect to that port on the host; so for instance "ssh 10.0.2.2" will ssh from the guest to the host.<br />
<br />
You can configure User Networking using the <tt>-netdev user</tt> command line option.<br />
<br />
Adding the following to the qemu command line will change the network configuration to use 192.168.76.0/24 instead of the default (10.0.2.0/24) and will start guest DHCP allocation from 9 (instead of 15):<br />
<br />
-netdev user,id=mynet0,net=192.168.76.0/24,dhcpstart=192.168.76.9<br />
<br />
You can isolate the guest from the host (and broader network) using the <tt>restrict</tt> option. For example <tt>-netdev user,id=mynet0,restrict=y</tt> or <tt>-netdev type=user,id=mynet0,restrict=yes</tt> will restrict networking to just the guest and any virtual devices. This can be used to prevent software running inside the guest from phoning home while still providing a network inside the guest. You can selectively override this using <tt>hostfwd</tt> and <tt>guestfwd</tt> options.<br />
<br />
==== Enabling ping in the guest, on Linux hosts ====<br />
<br />
* Determine the main group ID (or one supplementary group ID) of the user that will run QEMU with slirp.<br />
<br />
* In <tt>/etc/sysctl.conf</tt> (or whatever is appropriate for your host distro), make sure that the whitespace-separated, inclusive group ID range in the <tt>net.ipv4.ping_group_range</tt> sysctl includes the above group ID.<br />
<br />
For example, as root,<br />
<br />
* add a new group called <tt>unpriv_ping</tt>:<br />
<br />
groupadd unpriv_ping<br />
<br />
* set this group for a number of users as another supplementary group (note, they will have to re-login):<br />
<br />
for U in user1 user2 ... user_n; do<br />
usermod --append --groups unpriv_ping $U<br />
done<br />
<br />
* then set both sides of the inclusive range in the above sysctl to the numeric ID of the new group:<br />
<br />
(<br />
GROUP_ID=$(getent group unpriv_ping | cut -f 3 -d :)<br />
printf 'net.ipv4.ping_group_range = %u %u\n' $GROUP_ID $GROUP_ID \<br />
>> /etc/sysctl.conf<br />
)<br />
sysctl -p<br />
<br />
==== Advanced user networking options ====<br />
<br />
The <tt>-netdev user</tt> parameter has some more useful options:<br />
<br />
* The DHCP address and name for the guest can be set with <tt>-netdev user,id=n0,host=addr,hostname=name</tt><br />
* You can specify the guest-visible virtual DNS server address with <tt>-netdev user,id=n0,dns=addr</tt><br />
* QEMU can simulate a TFTP server with <tt>-netdev user,id=n0,tftp=xxx,bootfile=yyy</tt><br />
* To share files between your guest and host, you can use <tt>-netdev user,id=n0,smb=dir,smbserver=addr</tt><br />
* To forward host ports to your guest, use <tt>-netdev user,id=n0,hostfwd=hostip:hostport-guestip:guestport</tt><br />
<br />
For details, please see the [https://qemu.weilnetz.de/doc/qemu-doc.html#Network-options QEMU documentation].<br />
<br />
=== Tap ===<br />
<br />
The tap networking backend makes use of a tap networking device in the host. It offers very good performance and can be configured to create virtually any type of network topology. Unfortunately, it requires configuration of that network topology in the host which tends to be different depending on the operating system you are using. Generally speaking, it also requires that you have root privileges.<br />
<br />
-netdev tap,id=mynet0<br />
<br />
<br />
=== VDE ===<br />
<br />
The VDE networking backend uses the [http://vde.sourceforge.net Virtual Distributed Ethernet] infrastructure to network guests. Unless you specifically know that you want to use VDE, it is probably not the right backend to use.<br />
<br />
=== Socket ===<br />
<br />
The socket networking backend allows you to create a network of guests that can see each other. It's primarily useful in extending the network created by the SLIRP backend to multiple virtual machines. In general, if you want to have multiple guests communicate, the tap backend is a better choice unless you do not have root access to the host environment.<br />
<br />
-netdev socket,id=mynet0,listen=:1234<br />
-netdev socket,id=mynet0,connect=:1234<br />
<br />
= Virtual Network Devices =<br />
<br />
== How to create a virtual network device? ==<br />
The virtual network device that you choose depends on your needs and the guest environment (i.e. the hardware that you are emulating). For example, if you are emulating a particular embedded board, then you should use the virtual network device that comes with embedded board's configuration. Such on-board NICs can be configured with the <tt>-nic</tt> option of QEMU. See the corresponding section below for details.<br />
<br />
On machines that have a PCI bus (or any other pluggable bus system), there are a wider range of options. For example, the e1000 is the default network adapter on some machines in QEMU. Other older guests might require the rtl8139 network adapter. For modern guests, the virtio-net (para-virtualised) network adapter should be used instead since it has the best performance, but it requires special guest driver support which might not be available on very old operating systems.<br />
<br />
Use the <tt>-device</tt> option to add a particular virtual network device to your virtual machine:<br />
<br />
-device TYPE,netdev=NAME<br />
<br />
The <tt>netdev</tt> is the name of a previously defined <tt>-netdev</tt>. The virtual network device will be associated with this network backend.<br />
<br />
Note that there are other device options to select alternative devices, or to change some aspect of the device. For example, you want something like:<br />
<tt>-device DEVNAME,netdev=NET-ID,mac=MACADDR,DEV-OPTS</tt>, where <tt>DEVNAME</tt> is the device (e.g. <tt>i82559c</tt> for an Intel i82559C Ethernet device), <tt>NET_ID</tt> is the network identifier to attach the device to (see discussion of <tt>-netdev</tt> below), <tt>MACADDR</tt> is the MAC address for the device, and <tt>DEV-OPTS</tt> are any additional device options that you may wish to pass (e.g. <tt>bus=PCI-BUS,addr=DEVFN</tt> to control the PCI device address), if supported by the device.<br />
<br />
Use <tt>-device help</tt> to get a list of the devices (including network devices) you can add using the <tt>-device</tt> option for a particular guest.<br />
<br />
== The -nic option ==<br />
<br />
In case you don't care about configuring every detail of a NIC, you can also create a NIC together with a host backend by using the <tt>-nic</tt> parameter. For example, you can replace<br />
<br />
-netdev user,id=n1 -device virtio-net-pci,netdev=n1<br />
<br />
with:<br />
<br />
-nic user,model=virtio-net-pci<br />
<br />
Use <tt>-nic model=help</tt> to get a list of the supported NIC models.<br />
<br />
If you don't care about the NIC model, you can also omit that option. So the shortest way to get a tap device is for example simply:<br />
<br />
-nic tap<br />
<br />
The NIC option should also be use to configure NICs on embedded systems (which can not be used via <tt>-device</tt>). For example, to connect such an on-board NIC to the tap backend and change its MAC-address, you can use the <tt>-nic</tt> option like this:<br />
<br />
-nic tap,mac=02:ca:fe:f0:0d:01<br />
<br />
= Network Monitoring =<br />
<br />
You can monitor the network configuration using <tt>info network</tt> and <tt>info usernet</tt> commands.<br />
<br />
You can capture network traffic from within QEMU using the <tt>filter-dump</tt> object, like this:<br />
<br />
-netdev user,id=u1 -device e1000,netdev=u1 \<br />
-object filter-dump,id=f1,netdev=u1,file=dump.dat<br />
<br />
Once you've shut down QEMU, you can examine the <tt>dump.dat</tt> file with tools like Wireshark. Please note that network traffic dumping can only work if QEMU has a chance to see the network packets, i.e. this does not work if you use virtio-net with vhost acceleration in the kernel.<br />
<br />
= Network HOWTOs =<br />
<br />
== How to get SSH access to a guest ==<br />
<br />
A simplest way is to forward a specific host port to guest port 22. It can be done via:<br />
<br />
-device e1000,netdev=net0<br />
-netdev user,id=net0,hostfwd=tcp::5555-:22<br />
<br />
The first line creates a virtual e1000 network device, while the second line created one user typed backend, forwarding local port 5555 to guest port 22. Then we can do:<br />
<br />
ssh localhost -p 5555<br />
<br />
to have SSH access to guest after its network setup (don't forget to turn off firewalls if there is any in the guest or host).<br />
<br />
== How to use tap with a wireless adapter on the host ==<br />
<br />
See this:<br />
<br />
* [[Documentation/Networking/NAT|Use tap with a wireless adapter on the host]]<br />
<br />
== How to disable network completely ==<br />
<br />
If you don't specify any network configuration options, then QEMU will create a SLiRP user network backend and an appropriate virtual network device for the guest (eg an E1000 PCI card for most x86 PC guests). If you don't want any networking at all you can suppress this default with:<br />
<br />
-net none<br />
<br />
The more general option <tt>-nodefaults</tt> also suppresses the default networking configuration, as well as the creation of several other default devices.<br />
<br />
== Setting up taps on Linux ==<br />
<br />
For Linux with iproute2 and tap/tun support, this can be configured as below, and assumes the reader has experience using iproute2 (at least ip-addr and ip-link). Take note of the host's physical devices' configuration, as the bridge created will become the new endpoint for the physical device. Note that this '''WILL''' cause the host's networking on that physical device to go out, possibly requiring a reboot for remote systems!<br />
<br />
# modprobe tun tap # unnecessary if tun/tap is built-in<br />
# ip link add br0 type bridge<br />
# ip tuntap add dev tap0 mode tap<br />
# ip link set dev tap0 master br0 # set br0 as the target bridge for tap0<br />
# ip link set dev eth0 master br0 # set br0 as the target bridge for eth0<br />
# ip link set dev br0 up<br />
<br />
At this point, the bridge works, but is not usable as it does not have an IP address. For reassigning the physical device's addresses for the bridge to be usable:<br />
<br />
# ip address delete $PREFIX dev eth0<br />
# ip address add $PREFIX dev br0<br />
# ip route add default via $ROUTE dev br0<br />
<br />
This can be automated with a shell script to setup tap networking on remote hosts; as mentioned above, connection will be lost upon setting the physical device's master to a bridge.<br />
<br />
Please note that the newly-created tap device's link may need to be set to UP via <tt>ip-link</tt> after a virtual machine has been started. Furthermore, as a bridge device basically acts as the new endpoint for a physical device, most normal networking commands, such as a DHCP client or packet sniffer, must be ran on the bridge instead of the physical device. Creating multiple bridges per interface is known (anecdotally) to be problematic; instead, create a tap for each virtual machine using a single bridge for each physical device to be used.<br />
<br />
== TODO LIST ==<br />
<br />
* Use tap to let guests be visible on the host network for non-Linux.<br />
* Pass QEMU a physical card rather than emulation/simulation.<br />
<br />
= Misc =<br />
<br />
== The legacy -net option ==<br />
<br />
QEMU previously used the <tt>-net nic</tt> option instead of <tt>-device DEVNAME</tt> and <tt>-net TYPE</tt> instead of <tt>-netdev TYPE</tt>. This is considered obsolete since QEMU 0.12, although it continues to work.<br />
The legacy syntax to create virtual network devices is:<br />
<br />
-net nic,model=MODEL<br />
<br />
You can use <tt>-net nic,model=?</tt> to get a list of valid network devices that you can pass to the <tt>-net nic</tt> option. Note that these model names might be different from the <tt>-device ?</tt> names and are therefore only useful if you are using the <tt>-net nic,model=MODEL</tt> syntax.<br />
<br />
The obsolete <tt>-net</tt> syntax automatically created an emulated hub with ID 0 (used to be called a "VLAN" in older versions of QEMU, for virtual LAN) that forwards traffic from any device connected to it to every other device on the "VLAN". If you need more than one hub in recent versions of QEMU, you can do this with the "hubport" backend, e.g. by using <tt>-nic hubport,hubid=1</tt>.<br />
<br />
== Guest Hints ==<br />
<br />
=== Linux ===<br />
<br />
Should work using default network settings.<br />
<br />
=== Mac OS 9 ===<br />
If having problems, open the TCP/IP control panel. Under "Connect via:" select Ethernet. Under "Configure" select "Using DHCP Server". Close the control panel. Wait a few seconds then try opening it again. The fields in the window should have been auto-populated. <br />
<br />
-netdev user,id=mynet0 -device sungem,netdev=mynet0<br />
<br />
=== Mac OS 10.2 ===<br />
<br />
Starting with QEMU 2.11, the SunGEM NIC can be used. Open the System Preferences, go to the Network pane. You should see a dialog box telling you it has found a new network interface card. Click the Ok button. Click the 'Apply Now' Button at the bottom of the window. The fields in the TCP/IP tab should populate. <br />
<br />
-netdev user,id=mynet0 -device sungem,netdev=mynet0<br />
<br />
=== Mac OS 10.4 ===<br />
<br />
-usb -netdev user,id=mynet0 -device usb-net,netdev=mynet0<br />
<br />
or<br />
<br />
-netdev user,id=mynet0 -device rtl8139,netdev=mynet0<br />
<br />
Open System Preferences and go to the Network pane. Select the Ethernet Adapter from the "Show" drop down menu. From the TCP/IP tab, push the Apply Now button at the bottom. This will make the nic work. <br />
<br />
=== Windows NT 4.0 ===<br />
-netdev user,id=mynet0 -device pcnet,netdev=mynet0<br />
<br />
=== Windows 2000, Windows XP, Windows 7 ===<br />
<br />
-netdev user,id=n0 -device rtl8139,netdev=n0<br />
<br />
Windows will automatically detect and use the NIC.<br />
<br />
=== React OS ===<br />
-netdev user,id=n0 -device rtl8139,netdev=n0<br />
<br />
[[Category:User documentation]]</div>Mjthttps://wiki.qemu.org/index.php?title=ChangeLog/8.1&diff=11297ChangeLog/8.12023-05-07T08:35:09Z<p>Mjt: pipewire build dep</p>
<hr />
<div>== System emulation ==<br />
<br />
=== Removed features and incompatible changes ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/removed-features.html 'Removed features'] page for details of suggested replacement functionality.<br />
<br />
=== New deprecated options and features ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/deprecated.html "Deprecated Features"] chapter of the QEMU System Emulation User's Guide for further details of the deprecations and their suggested replacements.<br />
<br />
* The "-singlestep" command line option is deprecated, as it was very misleadingly named. Its replacement is "-one-insn-per-tb" (for the user-mode emulator) or "-accel one-insn-per-tb=on" (for the system-mode emulator)<br />
<br />
=== 68k ===<br />
<br />
=== Alpha ===<br />
<br />
=== Arm ===<br />
<br />
* New architectural features now emulated:<br />
** FEAT_PAN3 (Support for SCTLR_ELx.EPAN)<br />
* Pointer-authentication information is now reported to the gdbstub (a GDB 13 or later will produce better backtraces when pauth is in use by the guest)<br />
* Orangepi-PC, Cubieboard: Add Allwinner WDT watchdog emulation<br />
* mcimxd7-sabre, mcimx6ul-evk: The second ethernet controller PHY is now usable<br />
<br />
=== AVR ===<br />
<br />
=== Hexagon ===<br />
<br />
=== HPPA ===<br />
<br />
=== LoongArch ===<br />
<br />
=== Microblaze ===<br />
<br />
=== MIPS ===<br />
<br />
=== Nios2 ===<br />
<br />
=== OpenRISC ===<br />
<br />
=== PowerPC ===<br />
<br />
=== Renesas RX ===<br />
<br />
=== Renesas SH ===<br />
<br />
=== RISC-V ===<br />
==== ISA and Extensions ====<br />
<br />
==== Machines ====<br />
<br />
==== Fixes and Misc ====<br />
<br />
=== s390x ===<br />
<br />
=== SPARC ===<br />
<br />
=== Tricore ===<br />
<br />
=== x86 ===<br />
<br />
=== Xtensa ===<br />
<br />
=== Device emulation and assignment ===<br />
<br />
==== ACPI / SMBIOS ====<br />
<br />
==== Audio ====<br />
<br />
==== Block devices ====<br />
<br />
==== Graphics ====<br />
<br />
==== I2C ====<br />
<br />
==== Input devices ====<br />
<br />
==== IPMI ====<br />
<br />
==== Multi-process QEMU ====<br />
<br />
==== Network devices ====<br />
<br />
==== NVDIMM ====<br />
<br />
==== NVMe ====<br />
<br />
==== PCI/PCIe ====<br />
<br />
==== SCSI ====<br />
<br />
==== SD card ====<br />
<br />
==== SMBIOS ====<br />
<br />
==== TPM ====<br />
* Added TPM TIS I2C device model<br />
<br />
==== USB ====<br />
<br />
==== VFIO ====<br />
<br />
==== virtio ====<br />
<br />
==== vDPA ====<br />
<br />
==== Xen ====<br />
<br />
==== fw_cfg ====<br />
<br />
==== 9pfs ====<br />
<br />
==== virtiofs ====<br />
<br />
==== Semihosting ====<br />
<br />
=== Audio ===<br />
<br />
* new PipeWire audio backend (<tt>-audiodev pipewire</tt>)<br />
<br />
=== Character devices ===<br />
<br />
* It's now possible to specify the input independently from the output with ''-chardev file'' (e.g. ''-chardev file,id=repro,path=/dev/null,input-path=input.txt'')<br />
<br />
=== Crypto subsystem ===<br />
<br />
=== Authorization subsystem ===<br />
<br />
=== GUI ===<br />
<br />
=== GDBStub ===<br />
<br />
=== TCG Plugins ===<br />
<br />
=== Host support ===<br />
<br />
=== Memory backends ===<br />
<br />
=== Migration ===<br />
<br />
=== Monitor ===<br />
<br />
==== QMP ====<br />
<br />
==== HMP ====<br />
<br />
=== Network ===<br />
<br />
=== Block device backends and tools ===<br />
<br />
=== Tracing ===<br />
<br />
=== Semihosting ===<br />
<br />
=== Miscellaneous ===<br />
<br />
== User-mode emulation ==<br />
<br />
=== build ===<br />
<br />
=== binfmt_misc ===<br />
<br />
=== Hexagon ===<br />
<br />
=== LoongArch ===<br />
<br />
=== Nios2 ===<br />
<br />
=== HPPA ===<br />
<br />
=== x86 ===<br />
<br />
=== Xtensa ===<br />
<br />
== TCG backends ==<br />
<br />
=== ARM ===<br />
<br />
== Guest agent ==<br />
<br />
== Build Information ==<br />
<br />
=== Build Dependencies ===<br />
* Starting with QEMU 8.1, only Python 3.8 and newer will be supported (3.7 might work but it is not included in any of the environments that we run CI with).<br />
* new pipewire audio backend requires libpipewire (currently >= 0.3.60)<br />
<br />
=== Windows ===<br />
<br />
=== Testing and CI ===<br />
<br />
== Known issues ==<br />
<br />
* see [[Planning/8.1]]</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/7.2&diff=11280Planning/7.22023-04-13T21:07:38Z<p>Mjt: /* Release Schedule */ Added v7.2.1 and plans for v7.2.2</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2022-08-30<br />
| Beginning of development phase<br />
|-<br />
| 2022-11-1<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2022-11-8<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2022-11-15<br />
| Tag rc1<br />
|-<br />
| 2022-11-22<br />
| Tag rc2<br />
|-<br />
| 2022-11-29<br />
| Tag rc3<br />
|-<br />
| 2022-12-06<br />
| <strike>Release; or tag rc4 if needed</strike> Tag rc4<br />
|-<br />
| 2022-12-13<br />
| <strike>Release if we needed an rc4</strike> Release<br />
|-<br />
| 2023-03-30<br />
| Tag v7.2.1<br />
|-<br />
| 2023-04-20<br />
| Freeze for 7.2.2 stable release<br />
|-<br />
| 2023-04-22<br />
| Tag v7.2.2<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/7<br />
<br />
=== Other release ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/7.2]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=Planning/7.2&diff=11272Planning/7.22023-04-05T20:31:46Z<p>Mjt: reflect actual reality for -rc4 and final release</p>
<hr />
<div>== Release Schedule ==<br />
<br />
{| border="1"<br />
| 2022-08-30<br />
| Beginning of development phase<br />
|-<br />
| 2022-11-1<br />
| [[Planning/SoftFeatureFreeze|Soft feature freeze]]. Only bug fixes after this point. All feature changes must be already in a sub maintainer tree and all pull requests from submaintainers must have been sent to the list by this date.<br />
|-<br />
| 2022-11-8<br />
| [[Planning/HardFeatureFreeze|Hard feature freeze]]. Tag rc0<br />
|-<br />
| 2022-11-15<br />
| Tag rc1<br />
|-<br />
| 2022-11-22<br />
| Tag rc2<br />
|-<br />
| 2022-11-29<br />
| Tag rc3<br />
|-<br />
| 2022-12-06<br />
| <strike>Release; or tag rc4 if needed</strike> Tag rc4<br />
|-<br />
| 2022-12-13<br />
| <strike>Release if we needed an rc4</strike> Release<br />
|}<br />
<br />
== Known issues ==<br />
<br />
Please use GitLab Issues to track release blocker bugs:<br />
<br />
https://gitlab.com/qemu-project/qemu/-/milestones/7<br />
<br />
=== Other release ===<br />
<br />
Feel free to add non-bug information that is pertinent to the release here.<br />
<br />
== Targeted Features ==<br />
<br />
See the [[ChangeLog/7.2]] for full details.</div>Mjthttps://wiki.qemu.org/index.php?title=ChangeLog/7.2&diff=11108ChangeLog/7.22023-02-03T14:27:23Z<p>Mjt: slirp module</p>
<hr />
<div>== System emulation ==<br />
<br />
=== Incompatible changes ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/removed-features.html 'Removed features'] page for details of suggested replacement functionality.<br />
<br />
==== Removal of the "slirp" submodule (affects "-netdev user") ====<br />
<br />
The "slirp" submodule / code (which is the code behind "-netdev user" / "-nic user") has been removed from the QEMU source tree, so you now need to install your distributions libslirp development package before compiling QEMU to get the user-mode networking feature included again. For example, if you see an error message like this:<br />
<br />
<code>network backend 'user' is not compiled into this binary</code><br />
<br />
... this might be caused by the missing "user" mode backend. In that case, please install libslirp first ("<code>dnf install libslirp-devel</code>" on Fedora and "<code>apt-get install libslirp-dev</code>" on Debian for example), recompile your QEMU with <code>--enable-slirp</code>, then try again.<br />
<br />
==== Semihosting calls from userspace ====<br />
<br />
For some target architectures (arm, m68k, mips, nios2, riscv, xtensa) QEMU supports a "semihosting" style ABI where guest code can make calls to directly print messages, read and write host files, and so on. Handling of when this is enabled in system emulation has been made consistent across target architectures. By default it is not enabled; if enabled via the commandline "-semihosting" or "-semihosting-config enable=on" then it is only permitted from non-userspace guest code; if the new-in-7.2 "-semihosting-config userspace=on" option is given then it is also permitted from guest userspace. For some target architectures this is a change in behaviour: mips, nios2 and xtensa previously allowed userspace access by default, and riscv allowed all access by default. If you were using semihosting on these targets and relying on that previous default behaviour, you need to update your commandline to explicitly enable semihosting to the desired level.<br />
<br />
==== Other removed features ====<br />
<br />
* The <tt>-watchdog</tt> option has been removed, use <tt>-device</tt> instead.<br />
* The PPC ''taihu'' machine has been removed, use ''ref405ep'' instead.<br />
<br />
=== New deprecated options and features ===<br />
* Big endian 32-bit MIPS hosts are now deprecated due to lack of CI coverage.<br />
* The "--blacklist" command line option for the QEMU guest agent has been renamed to "--block-rpcs". The old name is still supported for now, but will be removed in the future; "-b" can be used on old and new versions alike.<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/deprecated.html "Deprecated Features"] chapter of the QEMU System Emulation User's Guide for further details of the deprecations and their suggested replacements.<br />
<br />
=== 68k ===<br />
<br />
=== Alpha ===<br />
<br />
=== Arm ===<br />
<br />
* The following CPU architecture features are now emulated:<br />
** FEAT_ETS (Enhanced Translation Synchronization)<br />
** FEAT_PMUv3p5 (PMU Extensions v3.5)<br />
** FEAT_GTG (Guest translation granule size)<br />
** FEAT_HAFDBS (Hardware management of the access flag and dirty bit state)<br />
** FEAT_E0PD (Preventing EL0 access to halves of address maps)<br />
* New emulated CPU types:<br />
** Cortex-A35<br />
<br />
==== Machines ====<br />
<br />
=== AVR ===<br />
<br />
=== Hexagon ===<br />
<br />
=== HPPA ===<br />
<br />
=== LoongArch ===<br />
==== ISA ====<br />
* Bstrins.w src register need EXT_NONE<br />
* Fix fnm{sub/add}_{s/d} set wrong flags<br />
* LogB(0) should raise divideByZero exception<br />
* Add exception subcode<br />
* Fix raise_mmu_exception() set wrong exception_index<br />
* Adjust the layout of hardware flags bit fields<br />
* Fix emulation of float-point disable exception<br />
<br />
==== Machines ====<br />
* Support fw_cfg dma function<br />
* Add interrupt information to FDT table<br />
* Add platform bus support<br />
* Add hotplug handler for machine<br />
* Add RAMFB device to dynamic_sysbus_devices list<br />
* Fix acpi ged irq number in dsdt table<br />
* Support memory hotplug<br />
* Fix LoongArch ipi device emulation<br />
* Convert the memops to with_attrs in LoongArch extioi<br />
* Fix LoongArch extioi coreisr accessing<br />
* Load FDT table into dram memory space<br />
* Add TPM device<br />
* Add default stdout uart in fdt<br />
<br />
=== Microblaze ===<br />
<br />
=== MIPS ===<br />
* deprecated 32 bit big endian host<br />
<br />
=== Nios2 ===<br />
<br />
=== OpenRISC ===<br />
* Stability improvements<br />
* Performance improvements by supporting MTTCG<br />
* New '''virt''' platform is added to assist with CI and device testing<br />
<br />
=== PowerPC ===<br />
<br />
=== Renesas RX ===<br />
<br />
=== Renesas SH ===<br />
<br />
=== RISC-V ===<br />
==== ISA and Extensions ====<br />
* Update [m|h]tinst CSR in interrupt handling<br />
* Force disable extensions if priv spec version does not match<br />
* fix shifts shamt value for rv128c<br />
* move zmmul out of the experimental<br />
* Add checks for supported extension combinations<br />
* Fix typo and restore Pointer Masking functionality for RISC-V<br />
* Add mask agnostic behaviour (rvv_ma_all_1s) for vector extension<br />
* Add Zihintpause support<br />
* Add xicondops in ISA entry<br />
* Use official extension names for AIA CSRs<br />
* Fix the CSR check for cycle{h}, instret{h}, time{h}, hpmcounter3-31{h}<br />
* Improvements to the RISC-V debugger spec<br />
* Add disas support for vector instructions<br />
<br />
==== Machines ====<br />
* virt: pass random seed to fdt<br />
* opentitan: bump opentitan version<br />
* virt machine device tree improvements<br />
* Allow setting the resetvec for the OpenTitan machine<br />
* Enable booting S-mode firmware from pflash on virt machine<br />
<br />
==== Fixes and Misc ====<br />
* Upgrade OpenSBI to v1.1<br />
* microchip_pfsoc: fix kernel panics due to missing peripherals<br />
* Remove additional priv version check for mcountinhibit<br />
* Fixup register addresses for Ibex SPI<br />
* Cleanup the RISC-V virt machine documentation<br />
* Remove fixed numbering from GDB xml feature files<br />
* Priority level fixes for PLIC<br />
* Fixup TLB size calculation when using PMP<br />
<br />
=== s390x ===<br />
<br />
* Fix emulation of the LZRF instruction<br />
* Fix emulation of the VISTR instruction<br />
* Fix emulation fo the SACF instruction (the bug was causing a crash with Java on Debian systems)<br />
* Implement Message-Security-Assist Extension 5 (random number generation via PRNO instruction)<br />
* Implement SHA-512 via KIMD/KLMD instructions<br />
* Enhanced zPCI interpretation support for KVM guests<br />
<br />
=== SPARC ===<br />
<br />
=== Tricore ===<br />
<br />
=== x86 ===<br />
* Support for passing a random seed to the Linux kernel when booted with -kernel<br />
* Support for the MSR_CORE_THREAD_COUNT MSR<br />
==== TCG ====<br />
* Performance improvements in full-system emulation<br />
* Fixes and performance improvements in SSE implementation<br />
* TCG support for AVX, AVX2, F16C, FMA3 and VAES instructions<br />
<br />
==== KVM ====<br />
* Support for the "notify vmexit" mechanism, preventing processor bugs from hanging the whole system, through the ''-accel kvm,notify-vmexit='' and ''-accel kvm,notify-window='' options<br />
<br />
=== Xtensa ===<br />
<br />
=== Device emulation and assignment ===<br />
<br />
==== ACPI / SMBIOS ====<br />
<br />
==== Audio ====<br />
<br />
==== Block devices ====<br />
<br />
==== Graphics ====<br />
<br />
==== I2C ====<br />
===== Controllers =====<br />
<br />
===== Devices =====<br />
<br />
==== Input devices ====<br />
<br />
==== IPMI ====<br />
<br />
==== Multi-process QEMU ====<br />
<br />
==== Network devices ====<br />
<br />
* Fixed bug that could cause a stack or heap overflow with the emulated "tulip" NIC (CVE-2022-2962)<br />
<br />
==== NVDIMM ====<br />
<br />
==== NVMe ====<br />
<br />
===== Emulated NVMe Controller =====<br />
<br />
==== PCI/PCIe ====<br />
<br />
==== SCSI ====<br />
* Support for setting CD-ROM block size using the physical-block-size property of the scsi-cd device.<br />
<br />
==== SD card ====<br />
<br />
==== SMBIOS ====<br />
<br />
==== TPM ====<br />
<br />
==== USB ====<br />
<br />
==== VFIO ====<br />
<br />
==== virtio ====<br />
<br />
==== Xen ====<br />
<br />
==== fw_cfg ====<br />
<br />
==== 9pfs ====<br />
* Massive general [https://github.com/qemu/qemu/commit/f5265c8f917ea8c71a30e549b7e3017c1038db63 performance improvement] somewhere between factor 6 .. 12.<br />
<br />
==== virtiofs ====<br />
<br />
==== Semihosting ====<br />
<br />
=== Audio ===<br />
<br />
=== Character devices ===<br />
* UNIX socket support on Windows has been added<br />
<br />
=== Crypto subsystem ===<br />
<br />
* LUKS block device headers are validated more strictly<br />
* Errors are correctly reported when failing to load PSK credentials on clients<br />
* Creating LUKS images is supported on macOS<br />
<br />
=== Authorization subsystem ===<br />
<br />
=== GUI ===<br />
* On macOS systems, the same QEMU binary can include both the Cocoa user interface and the SDL or GTK+ user interfaces.<br />
<br />
=== GDBStub ===<br />
<br />
=== TCG Plugins ===<br />
<br />
=== Host support ===<br />
<br />
=== Memory backends ===<br />
<br />
* When preallocating memory provided by a memory backend, it is now possible to specify the host CPUs (or alternatively the host nodes) to run the preallocation on via a user-creatable "thread-context" object. This allows for NUMA-aware preallocation, which can speed-up preallocation (and thereby VM creation time) significantly.<br />
<br />
=== Migration ===<br />
<br />
=== Monitor ===<br />
<br />
==== QMP ====<br />
<br />
==== HMP ====<br />
<br />
=== Network ===<br />
<br />
* The "slirp" submodule has been removed from the QEMU source tree. Use libslirp from your OS distribution instead.<br />
* New stream and dgram netdev backend<br />
<br />
=== Block device backends and tools ===<br />
=== Tracing ===<br />
<br />
=== Semihosting ===<br />
<br />
Semihosting calls were generally not permitted for userspace guest code in system emulation. This can now be enabled with the "-semihosting-config userspace=on" option. Note that the usual remarks about semihosting apply -- because it permits direct guest access to the host filesystem, it should only be used with trusted guest binaries.<br />
<br />
=== Miscellaneous ===<br />
<br />
== User-mode emulation ==<br />
<br />
* Dump failing executable on CPU exception<br />
* support for system calls pidfd_open(), pidfd_send_signal() and pidfd_getfd()<br />
* support for FUTEX_WAKE_BITSET and PI futexes<br />
* support for madvise(MADV_DONTNEED) on file mappings<br />
<br />
=== build ===<br />
<br />
=== binfmt_misc ===<br />
<br />
=== Hexagon ===<br />
<br />
=== LoongArch ===<br />
* Fix struct statfs ABI on LoongArch64<br />
<br />
=== Nios2 ===<br />
<br />
=== HPPA ===<br />
<br />
* Increased guest stack to 80MB<br />
* Fix signal handling<br />
* Add vDSO emulation and thus avoid an executable stack<br />
* Changed guest memory layout like on real hppa kernel<br />
<br />
=== x86 ===<br />
<br />
* The qemu-i386 and qemu-x86_64 binaries now default to the 'max' CPU model instead of 'qemu32' / 'qemu64'<br />
* Support for saving/restoring SSE registers in signal frames in qemu-i386 (when FXSR is set in CPUID)<br />
* Support for saving/restoring XSAVE state in signal frames (when XSAVE is set in CPUID)<br />
<br />
== TCG backends ==<br />
<br />
=== ARM ===<br />
<br />
== Guest agent ==<br />
<br />
* Add FreeBSD support<br />
<br />
== Build Information ==<br />
<br />
=== SLIRP module (user-mode networking) ===<br />
<br />
* starting with 7.2 release, qemu source does not include the slirp module anymore. If user-mode networking is needed, please use system libslirp (libslirp-devel or libslirp-dev) package, minimum version 4.7.<br />
<br />
=== Python ===<br />
* Python 3.7 or newer is now required.<br />
<br />
=== GIT submodules ===<br />
* The libslirp library is not included in QEMU anymore. The development packages for libslirp must be installed in the system to build QEMU with user-mode networking support. <!-- As of version 7.2, QEMU will fail to build without libslirp unless <tt>--disable-libslirp</tt> is passed explicitly to the configure script. This may change in the future --><br />
<br />
=== Container Based Builds ===<br />
* All containers are now "flat" containers (often generated by lci-tool)<br />
<br />
=== VM Based Builds ===<br />
<br />
=== Build Dependencies ===<br />
* Meson 0.61 or newer is now required. QEMU ships with Meson 0.61.5, which will be used if necessary.<br />
<br />
=== Windows ===<br />
* The DLL files which are required at runtime and which therefore have to be included in the installer are now detected automatically. It is no longer necessary to collect them manually.<br />
<br />
=== Testing and CI ===<br />
<br />
== Known issues ==<br />
<br />
* see [[Planning/7.2]]</div>Mjthttps://wiki.qemu.org/index.php?title=ChangeLog/7.0&diff=10851ChangeLog/7.02022-03-22T14:01:07Z<p>Mjt: /* Build Dependencies */</p>
<hr />
<div><br />
== System emulation ==<br />
<br />
=== Incompatible changes ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/removed-features.html 'Removed features' ] page for details of suggested replacement functionality<br />
<br />
=== New deprecated options and features ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/deprecated.html "Deprecated Features"] chapter of the QEMU System Emulation User's Guide for further details of the deprecations and their suggested replacements.<br />
<br />
=== 68k ===<br />
<br />
=== Alpha ===<br />
<br />
=== Arm ===<br />
<br />
* The virt board has gained a new control knob to disable passing a RNG seed in the DTB (dtb-kaslr-seed)<br />
* The AST2600 SoC now supports a dummy version of the i3c device<br />
* The virt board can now run guests with KVM on hosts with restricted IPA ranges<br />
* The virt board now supports virtio-mem-pci<br />
* The virt board now supports specifying the guest CPU topology<br />
* On the virt board, we now enable PAuth when using KVM or hvf and the host CPU supports it<br />
* xlnx-versal-virt now emulates the PMC SLCR<br />
* xlnx-versal-virt now emulates the OSPI flash memory controller<br />
* xlnx-zynqmp now models the CRF and APU control<br />
* The Arm GICv3 ITS now emulates the previously missing MOVI and MOVALL commands<br />
* New board model: mori-bmc<br />
* We now support emulating FEAT_LVA<br />
* We now support emulating FEAT_LPA<br />
* We now support emulating FEAT_LPA2. (Note that this is disabled by default for the 'virt' board's versioned machine types prior to 7.0 (ie 'virt-6.2', 'virt-6.1', etc) because Linux kernels prior to v5.12 have a bug which means they will not boot on a CPU which has LPA2.)<br />
<br />
=== AVR ===<br />
<br />
=== Hexagon ===<br />
<br />
=== HPPA ===<br />
* Support up to 16 virtual CPUs<br />
* Improved artist graphics driver for HP-UX VDE, HP-UX CDE and Linux framebuffer<br />
* Mouse cursor focus and positioning now works much better under HP-UX X11 <br />
* Emulated TOC button can be triggered with "nmi" in the qemu monitor<br />
* Added support for Qemu SCSI boot order option <br />
* Possibility to change system HOSTID for HP-UX and Linux<br />
* Added firmware 16x32 pixel bitmap font for use on HDPI screens<br />
* Ability to choose serial or graphical console as default firmware console<br />
<br />
=== Microblaze ===<br />
<br />
=== MIPS ===<br />
<br />
=== Nios2 ===<br />
<br />
=== OpenRISC ===<br />
==== Machines ====<br />
* Support up to 4 cores up from 2 on the OpenRISC sim machine<br />
* Support loading an external initrd image on the OpenRISC sim machine<br />
* OpenRISC sim machine now automatically generates a device tree and passes it to the kernel<br />
<br />
=== PowerPC ===<br />
* Updates of PowerNV and pSeries documentation<br />
<br />
==== Machines ====<br />
<br />
* Deprecation of taihu machine <br />
* Large rework of PPC405 machine <br />
* General cleanup for Mac machines <br />
* PowerNV PHB3/4 cleanups<br />
* PowerNV XIVE improvements<br />
* Extension of the powernv10 machine with XIVE2 ans PHB5 models<br />
* New SLOF for PPC970 and POWER5+ <br />
* ppc: nested KVM HV for spapr virtual hypervisor <br />
* spapr: nvdimm: Introduce spapr-nvdimm device <br />
<br />
==== Extensions/removal==== <br />
<br />
* Removal of 401/403 CPUs <br />
* Removal of 601/602 CPUs<br />
* Removal of SoftTLBs support for PPC74x CPUs <br />
<br />
* Initial support for PMU<br />
* PMU EBB support<br />
* Rework of powerpc exception handling <br />
* Support for new ISA31 instructions <br />
* Large cleanup of FPU implementation <br />
<br />
==== Fixes ====<br />
<br />
* Fixes for ivshmem<br />
* Fixes for POWER5+ pseries<br />
* Fixes for FPU exceptions <br />
* Fixes for exception models in MPCx and 60x CPUs <br />
* Fix for e6500 CPU <br />
* Fixes for the 7448 CPU <br />
* Exception and TLB fixes for the 405 CPU <br />
* 603 CPUs fixes <br />
* Book-E exception fixes <br />
* Clang fixes<br />
* VOF installation<br />
* Radix MMU fixes<br />
<br />
<br />
=== Renesas RX ===<br />
<br />
=== Renesas SH ===<br />
<br />
=== RISC-V ===<br />
==== Extensions ====<br />
* Add support for ratified 1.0 Vector extension<br />
* Support for the Zve64f and Zve32f extensions<br />
* Drop support for draft 0.7.1 Vector extension<br />
* Support Zfhmin and Zfh extensions<br />
* RISC-V KVM support<br />
* Mark Hypervisor extension as non experimental<br />
* Enable Hypervisor extension by default<br />
* Support for svnapot, svinval and svpbmt extensions<br />
* Experimental support for 128-bit CPUs<br />
* Initial support for XVentanaCondOps custom extension<br />
* stval and mtval support for illegal instructions<br />
* Support for the UXL field in xstatus<br />
* Add support for zfinx, zdinx and zhinx{min} extensions<br />
<br />
==== Machines ====<br />
* OpenSBI binary loading support for the Spike machine<br />
* Improve kernel loading for non-Linux platforms<br />
* SiFive PDMA 64-bit support<br />
* Support 32 cores on the virt machine<br />
* Add AIA support for virt machine<br />
<br />
==== Fixes ====<br />
* Fix illegal instruction when PMP is disabled<br />
* Corrections for the Vector extension<br />
* Fixes for OpenTitan timer<br />
* Correction of OpenTitan PLIC stride length<br />
* Removal of OpenSBI ELFs<br />
* Fix trap cause for RV32 HS-mode CSR access from RV64 HS-mode<br />
* Fixup OpenTitan SPI address<br />
<br />
=== s390x ===<br />
<br />
* Support Linux kernel command line length of more than 896 bytes (if the guest kernel supports it, too)<br />
* Emulate the instructions from the "Miscellaneous-Instruction-Extensions Facility 3" (a z15 extension)<br />
* Fixes for various emulated instructions (SLDA, SRDA, SLAG, BRASL, BRCL)<br />
<br />
=== SPARC ===<br />
<br />
=== Tricore ===<br />
<br />
=== x86 ===<br />
* Support for Intel AMX.<br />
==== KVM ====<br />
<br />
==== x86_64 ====<br />
<br />
==== AMD SEV ====<br />
<br />
=== Xtensa ===<br />
<br />
=== Device emulation and assignment ===<br />
<br />
==== ACPI ====<br />
<br />
==== Audio ====<br />
<br />
==== Block devices ====<br />
<br />
==== Graphics ====<br />
<br />
==== I2C ====<br />
<br />
==== Input devices ====<br />
<br />
==== IPMI ====<br />
<br />
==== Multi-process QEMU ====<br />
<br />
==== Network devices ====<br />
<br />
==== NVDIMM ====<br />
<br />
==== NVMe ====<br />
<br />
===== Emulated NVMe Controller =====<br />
<br />
==== PCI/PCIe ====<br />
<br />
==== SCSI ====<br />
<br />
==== SD card ====<br />
<br />
==== SMBIOS ====<br />
<br />
==== TPM ====<br />
<br />
==== USB ====<br />
<br />
<br />
==== VFIO ====<br />
<br />
==== virtio ====<br />
<br />
==== Xen ====<br />
<br />
==== fw_cfg ====<br />
<br />
==== 9pfs ====<br />
* [https://gitlab.com/qemu-project/qemu/-/commit/e64e27d5cb103b7764f1a05b6eda7e7fedd517c5 Fixed 9p server crash] ([https://gitlab.com/qemu-project/qemu/-/issues/841 issue #841]) that happened on some host systems due to incorrect (system dependant) handling of struct dirent size.<br />
* [https://gitlab.com/qemu-project/qemu/-/commit/f45cc81911adc7726e8a2801986b6998b91b816e Added support for macOS hosts].<br />
<br />
==== virtiofs ====<br />
* Fix for CVE-2022-0358 - behaviour with supplementary groups and SGID directories<br />
* Improved security label support<br />
* The virtiofsd in qemu is now starting to be deprecated; please start using and contributing to [https://gitlab.com/virtio-fs/virtiofsd Rust virtiofsd]<br />
<br />
==== Semihosting ====<br />
<br />
* We now generate sane numbers for SYS_HEAPINFO under system emulation<br />
<br />
=== Audio ===<br />
<br />
=== Character devices ===<br />
<br />
=== Crypto subsystem ===<br />
<br />
=== Authorization subsystem ===<br />
<br />
=== GUI ===<br />
* a new [https://www.qemu.org/docs/master/interop/dbus-display.html "-display dbus"] option to export the display for external processes. A [https://gitlab.com/marcandre.lureau/qemu-display/ gtk4-rs based widget] is in the works (for future Boxes, virt-viewer etc). Potential other users include remote desktop protocols.<br />
<br />
=== GDBStub ===<br />
<br />
=== TCG Plugins ===<br />
* new coverage plugin in contrib which support drcov format traces<br />
<br />
=== Host support ===<br />
<br />
=== Memory backends ===<br />
<br />
=== Migration ===<br />
<br />
=== Monitor ===<br />
<br />
==== QMP ====<br />
<br />
==== HMP ====<br />
<br />
=== Network ===<br />
<br />
=== Block device backends and tools ===<br />
* Fleecing backup has been made more flexible: Fleecing backup means exposing a temporary snapshot of an actively used image, and having the “copy-before-write” (CBW) filter (or historically the “backup” block job) copy data there from areas written by the guest to the active image, before they are overwritten, so that the snapshot keeps representing the point-in-time state of the disk when the snapshot was created. This snapshot can then be read (either by qemu itself using the “backup” or “mirror” block jobs, or by outside users e.g. via an NBD export) to create a backup. As of qemu 7.0, instead of reading the snapshot image directly, it can also be accessed through the new “snapshot-access” block driver, by installing such a node on top of the CBW filter. Doing so has some advantages over accessing the snapshot image directly; for example, the image can then be in any format (not just COW formats like qcow2), because the CBW filter keeps track of its allocation bitmap. Once an area has been backed up, users can send a discard request to mark it as done, so that the CBW filter will not potentially copy it to the snapshot image on a subsequent guest write. Furthermore, the CBW filter now has a “bitmap” parameter that allows limiting its scope as specified by the bitmap at the time the CBW filter node is created.<br />
* A bug in caching block status has been fixed that was causing over-eager treatment of a format layer as all data rather than detecting holes, if an earlier block status query had merely been checking for which portions of the backing chain were allocated. While the bug did not affect guest-visible data, it caused some performance regressions, particularly noticeable and easy to trigger when using 'qemu-nbd --allocation-depth'.<br />
* The ''qemu-nbd'' program has gained a new ''--tls-hostname'' parameter to allow TLS validation against a different hostname, such as when setting up TLS through a TCP tunnel, and now supports TLS over Unix sockets.<br />
* The SSH driver supports sha256 fingerprints with pre-blockdev command line configuration syntax.<br />
* The SSH driver will print the actual fingerprint and its type when failing to validate a host key.<br />
<br />
=== Tracing ===<br />
<br />
=== Miscellaneous ===<br />
<br />
* The -sandbox 'spawn' filter, will now correctly block use of the clone syscall for spawnnig processes, while allowing thread creation<br />
* The -sandbox 'spawn' filter, will now entirely block use of the clone3 syscall entirely since there is no way to access its flags parameter from seccomp to distinguish thread vs process creation<br />
* The -sandbox 'spawn' filter, will now block setns, unshare and execveat syscalls since they are not desired.<br />
<br />
== User-mode emulation ==<br />
<br />
* fixed a bug that caused issues mapping the ARM commpage on 32 bit builds<br />
<br />
=== binfmt_misc ===<br />
<br />
=== Hexagon ===<br />
<br />
== TCG ==<br />
<br />
User-mode emulation (linux-user, bsd-user) will enforce guest alignment constraints and raise SIGBUS to the guest program as appropriate.<br />
<br />
=== ARM ===<br />
<br />
Support for for ARMv4 and ARMv5 hosts has been dropped. These older Arm versions do not have support for misaligned memory access; such support was added to ARMv6. Since ARMv5 is quite old, it is presumed that such systems do not have sufficient RAM to even run QEMU, and so practically speaking no systems are impacted.<br />
<br />
== Guest agent ==<br />
* Support Windows 11 for <code>guest-get-osinfo</code> command<br />
* Fix memory leaks in Windows <code>guest-get-fsinfo</code> command<br />
<br />
== Build Information ==<br />
<br />
=== Python ===<br />
<br />
=== GIT submodules ===<br />
<br />
=== Container Based Builds ===<br />
<br />
* a large number of containers are now updated by lcitool<br />
* TESTS and IMAGES environment variables can be used filter again when building against all docker targets<br />
<br />
=== VM Based Builds ===<br />
<br />
=== Build Dependencies ===<br />
* xfs libraries are not needed anymore for build, since the only ioctl used by qemu which was defined there got local implementation. With this, --enable-xfsctl configure option is also gone.<br />
<br />
=== Windows ===<br />
<br />
=== Testing and CI ===<br />
<br />
== Known issues ==<br />
<br />
* see [[Planning/7.0]]</div>Mjthttps://wiki.qemu.org/index.php?title=ChangeLog/7.0&diff=10850ChangeLog/7.02022-03-22T14:00:47Z<p>Mjt: /* Build Dependencies */</p>
<hr />
<div><br />
== System emulation ==<br />
<br />
=== Incompatible changes ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/removed-features.html 'Removed features' ] page for details of suggested replacement functionality<br />
<br />
=== New deprecated options and features ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/deprecated.html "Deprecated Features"] chapter of the QEMU System Emulation User's Guide for further details of the deprecations and their suggested replacements.<br />
<br />
=== 68k ===<br />
<br />
=== Alpha ===<br />
<br />
=== Arm ===<br />
<br />
* The virt board has gained a new control knob to disable passing a RNG seed in the DTB (dtb-kaslr-seed)<br />
* The AST2600 SoC now supports a dummy version of the i3c device<br />
* The virt board can now run guests with KVM on hosts with restricted IPA ranges<br />
* The virt board now supports virtio-mem-pci<br />
* The virt board now supports specifying the guest CPU topology<br />
* On the virt board, we now enable PAuth when using KVM or hvf and the host CPU supports it<br />
* xlnx-versal-virt now emulates the PMC SLCR<br />
* xlnx-versal-virt now emulates the OSPI flash memory controller<br />
* xlnx-zynqmp now models the CRF and APU control<br />
* The Arm GICv3 ITS now emulates the previously missing MOVI and MOVALL commands<br />
* New board model: mori-bmc<br />
* We now support emulating FEAT_LVA<br />
* We now support emulating FEAT_LPA<br />
* We now support emulating FEAT_LPA2. (Note that this is disabled by default for the 'virt' board's versioned machine types prior to 7.0 (ie 'virt-6.2', 'virt-6.1', etc) because Linux kernels prior to v5.12 have a bug which means they will not boot on a CPU which has LPA2.)<br />
<br />
=== AVR ===<br />
<br />
=== Hexagon ===<br />
<br />
=== HPPA ===<br />
* Support up to 16 virtual CPUs<br />
* Improved artist graphics driver for HP-UX VDE, HP-UX CDE and Linux framebuffer<br />
* Mouse cursor focus and positioning now works much better under HP-UX X11 <br />
* Emulated TOC button can be triggered with "nmi" in the qemu monitor<br />
* Added support for Qemu SCSI boot order option <br />
* Possibility to change system HOSTID for HP-UX and Linux<br />
* Added firmware 16x32 pixel bitmap font for use on HDPI screens<br />
* Ability to choose serial or graphical console as default firmware console<br />
<br />
=== Microblaze ===<br />
<br />
=== MIPS ===<br />
<br />
=== Nios2 ===<br />
<br />
=== OpenRISC ===<br />
==== Machines ====<br />
* Support up to 4 cores up from 2 on the OpenRISC sim machine<br />
* Support loading an external initrd image on the OpenRISC sim machine<br />
* OpenRISC sim machine now automatically generates a device tree and passes it to the kernel<br />
<br />
=== PowerPC ===<br />
* Updates of PowerNV and pSeries documentation<br />
<br />
==== Machines ====<br />
<br />
* Deprecation of taihu machine <br />
* Large rework of PPC405 machine <br />
* General cleanup for Mac machines <br />
* PowerNV PHB3/4 cleanups<br />
* PowerNV XIVE improvements<br />
* Extension of the powernv10 machine with XIVE2 ans PHB5 models<br />
* New SLOF for PPC970 and POWER5+ <br />
* ppc: nested KVM HV for spapr virtual hypervisor <br />
* spapr: nvdimm: Introduce spapr-nvdimm device <br />
<br />
==== Extensions/removal==== <br />
<br />
* Removal of 401/403 CPUs <br />
* Removal of 601/602 CPUs<br />
* Removal of SoftTLBs support for PPC74x CPUs <br />
<br />
* Initial support for PMU<br />
* PMU EBB support<br />
* Rework of powerpc exception handling <br />
* Support for new ISA31 instructions <br />
* Large cleanup of FPU implementation <br />
<br />
==== Fixes ====<br />
<br />
* Fixes for ivshmem<br />
* Fixes for POWER5+ pseries<br />
* Fixes for FPU exceptions <br />
* Fixes for exception models in MPCx and 60x CPUs <br />
* Fix for e6500 CPU <br />
* Fixes for the 7448 CPU <br />
* Exception and TLB fixes for the 405 CPU <br />
* 603 CPUs fixes <br />
* Book-E exception fixes <br />
* Clang fixes<br />
* VOF installation<br />
* Radix MMU fixes<br />
<br />
<br />
=== Renesas RX ===<br />
<br />
=== Renesas SH ===<br />
<br />
=== RISC-V ===<br />
==== Extensions ====<br />
* Add support for ratified 1.0 Vector extension<br />
* Support for the Zve64f and Zve32f extensions<br />
* Drop support for draft 0.7.1 Vector extension<br />
* Support Zfhmin and Zfh extensions<br />
* RISC-V KVM support<br />
* Mark Hypervisor extension as non experimental<br />
* Enable Hypervisor extension by default<br />
* Support for svnapot, svinval and svpbmt extensions<br />
* Experimental support for 128-bit CPUs<br />
* Initial support for XVentanaCondOps custom extension<br />
* stval and mtval support for illegal instructions<br />
* Support for the UXL field in xstatus<br />
* Add support for zfinx, zdinx and zhinx{min} extensions<br />
<br />
==== Machines ====<br />
* OpenSBI binary loading support for the Spike machine<br />
* Improve kernel loading for non-Linux platforms<br />
* SiFive PDMA 64-bit support<br />
* Support 32 cores on the virt machine<br />
* Add AIA support for virt machine<br />
<br />
==== Fixes ====<br />
* Fix illegal instruction when PMP is disabled<br />
* Corrections for the Vector extension<br />
* Fixes for OpenTitan timer<br />
* Correction of OpenTitan PLIC stride length<br />
* Removal of OpenSBI ELFs<br />
* Fix trap cause for RV32 HS-mode CSR access from RV64 HS-mode<br />
* Fixup OpenTitan SPI address<br />
<br />
=== s390x ===<br />
<br />
* Support Linux kernel command line length of more than 896 bytes (if the guest kernel supports it, too)<br />
* Emulate the instructions from the "Miscellaneous-Instruction-Extensions Facility 3" (a z15 extension)<br />
* Fixes for various emulated instructions (SLDA, SRDA, SLAG, BRASL, BRCL)<br />
<br />
=== SPARC ===<br />
<br />
=== Tricore ===<br />
<br />
=== x86 ===<br />
* Support for Intel AMX.<br />
==== KVM ====<br />
<br />
==== x86_64 ====<br />
<br />
==== AMD SEV ====<br />
<br />
=== Xtensa ===<br />
<br />
=== Device emulation and assignment ===<br />
<br />
==== ACPI ====<br />
<br />
==== Audio ====<br />
<br />
==== Block devices ====<br />
<br />
==== Graphics ====<br />
<br />
==== I2C ====<br />
<br />
==== Input devices ====<br />
<br />
==== IPMI ====<br />
<br />
==== Multi-process QEMU ====<br />
<br />
==== Network devices ====<br />
<br />
==== NVDIMM ====<br />
<br />
==== NVMe ====<br />
<br />
===== Emulated NVMe Controller =====<br />
<br />
==== PCI/PCIe ====<br />
<br />
==== SCSI ====<br />
<br />
==== SD card ====<br />
<br />
==== SMBIOS ====<br />
<br />
==== TPM ====<br />
<br />
==== USB ====<br />
<br />
<br />
==== VFIO ====<br />
<br />
==== virtio ====<br />
<br />
==== Xen ====<br />
<br />
==== fw_cfg ====<br />
<br />
==== 9pfs ====<br />
* [https://gitlab.com/qemu-project/qemu/-/commit/e64e27d5cb103b7764f1a05b6eda7e7fedd517c5 Fixed 9p server crash] ([https://gitlab.com/qemu-project/qemu/-/issues/841 issue #841]) that happened on some host systems due to incorrect (system dependant) handling of struct dirent size.<br />
* [https://gitlab.com/qemu-project/qemu/-/commit/f45cc81911adc7726e8a2801986b6998b91b816e Added support for macOS hosts].<br />
<br />
==== virtiofs ====<br />
* Fix for CVE-2022-0358 - behaviour with supplementary groups and SGID directories<br />
* Improved security label support<br />
* The virtiofsd in qemu is now starting to be deprecated; please start using and contributing to [https://gitlab.com/virtio-fs/virtiofsd Rust virtiofsd]<br />
<br />
==== Semihosting ====<br />
<br />
* We now generate sane numbers for SYS_HEAPINFO under system emulation<br />
<br />
=== Audio ===<br />
<br />
=== Character devices ===<br />
<br />
=== Crypto subsystem ===<br />
<br />
=== Authorization subsystem ===<br />
<br />
=== GUI ===<br />
* a new [https://www.qemu.org/docs/master/interop/dbus-display.html "-display dbus"] option to export the display for external processes. A [https://gitlab.com/marcandre.lureau/qemu-display/ gtk4-rs based widget] is in the works (for future Boxes, virt-viewer etc). Potential other users include remote desktop protocols.<br />
<br />
=== GDBStub ===<br />
<br />
=== TCG Plugins ===<br />
* new coverage plugin in contrib which support drcov format traces<br />
<br />
=== Host support ===<br />
<br />
=== Memory backends ===<br />
<br />
=== Migration ===<br />
<br />
=== Monitor ===<br />
<br />
==== QMP ====<br />
<br />
==== HMP ====<br />
<br />
=== Network ===<br />
<br />
=== Block device backends and tools ===<br />
* Fleecing backup has been made more flexible: Fleecing backup means exposing a temporary snapshot of an actively used image, and having the “copy-before-write” (CBW) filter (or historically the “backup” block job) copy data there from areas written by the guest to the active image, before they are overwritten, so that the snapshot keeps representing the point-in-time state of the disk when the snapshot was created. This snapshot can then be read (either by qemu itself using the “backup” or “mirror” block jobs, or by outside users e.g. via an NBD export) to create a backup. As of qemu 7.0, instead of reading the snapshot image directly, it can also be accessed through the new “snapshot-access” block driver, by installing such a node on top of the CBW filter. Doing so has some advantages over accessing the snapshot image directly; for example, the image can then be in any format (not just COW formats like qcow2), because the CBW filter keeps track of its allocation bitmap. Once an area has been backed up, users can send a discard request to mark it as done, so that the CBW filter will not potentially copy it to the snapshot image on a subsequent guest write. Furthermore, the CBW filter now has a “bitmap” parameter that allows limiting its scope as specified by the bitmap at the time the CBW filter node is created.<br />
* A bug in caching block status has been fixed that was causing over-eager treatment of a format layer as all data rather than detecting holes, if an earlier block status query had merely been checking for which portions of the backing chain were allocated. While the bug did not affect guest-visible data, it caused some performance regressions, particularly noticeable and easy to trigger when using 'qemu-nbd --allocation-depth'.<br />
* The ''qemu-nbd'' program has gained a new ''--tls-hostname'' parameter to allow TLS validation against a different hostname, such as when setting up TLS through a TCP tunnel, and now supports TLS over Unix sockets.<br />
* The SSH driver supports sha256 fingerprints with pre-blockdev command line configuration syntax.<br />
* The SSH driver will print the actual fingerprint and its type when failing to validate a host key.<br />
<br />
=== Tracing ===<br />
<br />
=== Miscellaneous ===<br />
<br />
* The -sandbox 'spawn' filter, will now correctly block use of the clone syscall for spawnnig processes, while allowing thread creation<br />
* The -sandbox 'spawn' filter, will now entirely block use of the clone3 syscall entirely since there is no way to access its flags parameter from seccomp to distinguish thread vs process creation<br />
* The -sandbox 'spawn' filter, will now block setns, unshare and execveat syscalls since they are not desired.<br />
<br />
== User-mode emulation ==<br />
<br />
* fixed a bug that caused issues mapping the ARM commpage on 32 bit builds<br />
<br />
=== binfmt_misc ===<br />
<br />
=== Hexagon ===<br />
<br />
== TCG ==<br />
<br />
User-mode emulation (linux-user, bsd-user) will enforce guest alignment constraints and raise SIGBUS to the guest program as appropriate.<br />
<br />
=== ARM ===<br />
<br />
Support for for ARMv4 and ARMv5 hosts has been dropped. These older Arm versions do not have support for misaligned memory access; such support was added to ARMv6. Since ARMv5 is quite old, it is presumed that such systems do not have sufficient RAM to even run QEMU, and so practically speaking no systems are impacted.<br />
<br />
== Guest agent ==<br />
* Support Windows 11 for <code>guest-get-osinfo</code> command<br />
* Fix memory leaks in Windows <code>guest-get-fsinfo</code> command<br />
<br />
== Build Information ==<br />
<br />
=== Python ===<br />
<br />
=== GIT submodules ===<br />
<br />
=== Container Based Builds ===<br />
<br />
* a large number of containers are now updated by lcitool<br />
* TESTS and IMAGES environment variables can be used filter again when building against all docker targets<br />
<br />
=== VM Based Builds ===<br />
<br />
=== Build Dependencies ===<br />
xfs libraries are not needed anymore for build, since the only ioctl used by qemu which was defined there got local implementation. With this, --enable-xfsctl configure option is also gone.<br />
<br />
=== Windows ===<br />
<br />
=== Testing and CI ===<br />
<br />
== Known issues ==<br />
<br />
* see [[Planning/7.0]]</div>Mjthttps://wiki.qemu.org/index.php?title=Contribute/TrivialPatches&diff=5825Contribute/TrivialPatches2016-09-13T16:12:02Z<p>Mjt: /* Repositories */</p>
<hr />
<div>= Overview =<br />
Trivial patches that change just a few lines of code sometimes languish on the mailing list even though they require only a small amount of review. This is often the case for patches that do not fall under an actively maintained subsystem and therefore fall through the cracks.<br />
<br />
The '''trivial patches team''' take on the task of reviewing and building pull requests for patches that:<br />
* Do not fall under an actively maintained subsystem.<br />
* Are single patches or short series (max 2-4 patches).<br />
* Only touch a few lines of code.<br />
<br />
'''You should hint that your patch is a candidate by CCing qemu-trivial@nongnu.org'''.<br />
<br />
= Repositories =<br />
<br />
Since the trivial patch team rotates maintainership there is only one active repository at a time:<br />
<br />
* git://git.corpit.ru/qemu.git trivial-patches - [http://git.corpit.ru/?p=qemu.git;a=shortlog;h=refs/heads/trivial-patches browse]<br />
<br />
= Workflow =<br />
<br />
The trivial patches team rotates the duty of collecting trivial patches amongst its members. A team member's job is to:<br />
# Identify trivial patches on the development mailing list.<br />
# Review trivial patches, merge them into a git tree, and reply to state that the patch is queued.<br />
# Send pull requests to the development mailing list once a week.<br />
<br />
A single team member can be on duty as long as they like. The suggested time is 1 week before handing off to the next member.<br />
<br />
= Team =<br />
<br />
If you would like to join the trivial patches team, contact Michael Tokarev. The current team includes:<br />
<br />
* Michael Tokarev</div>Mjt