From 2b808133e810bf8cacb715cee081aa211b4d6412 Mon Sep 17 00:00:00 2001 From: "Danilo C. L. de Paula" Date: Wed, 12 Aug 2020 11:53:34 -0400 Subject: [PATCH] Rebase to qemu-5.1.0 --- .gitignore | 1 + ...at-Adding-slirp-to-the-exploded-tree.patch | 135 ++++++++++-------- 0005-Initial-redhat-build.patch | 68 +++------ 0006-Enable-disable-devices-for-RHEL.patch | 91 ++++-------- ...Machine-type-related-general-changes.patch | 34 ++--- 0008-Add-aarch64-machine-types.patch | 47 ++++-- 0009-Add-ppc64-machine-types.patch | 38 ++--- 0010-Add-s390x-machine-types.patch | 10 +- 0011-Add-x86_64-machine-types.patch | 44 +++--- 0012-Enable-make-check.patch | 44 ++---- ...mber-of-devices-that-can-be-assigned.patch | 8 +- ...Add-support-statement-to-help-output.patch | 8 +- ...lly-limit-the-maximum-number-of-CPUs.patch | 10 +- 0016-Add-support-for-simpletrace.patch | 6 +- ...documentation-instead-of-qemu-system.patch | 6 +- 0018-usb-xhci-Fix-PCI-capability-order.patch | 4 +- ...ct-scsi-cd-if-data-plane-enabled-RHE.patch | 2 +- ...e-at-least-64kiB-pages-for-downstrea.patch | 6 +- ...x-blockdev-reopen-API-with-feature-f.patch | 6 +- ...-vTPM-for-POWER-in-downstream-config.patch | 5 +- ...o-net-fix-removal-of-failover-device.patch | 52 ------- ...t-fix-5.0-rebase-missing-ISA-TPM-TIS.patch | 7 +- ... => 0024-redhat-define-hw_compat_8_2.patch | 8 +- ...25-x86-Add-8.3.0-x86_64-machine-type.patch | 23 +-- 0027-hw-arm-Changes-to-rhel820-machine.patch | 82 +++++++++++ ...oduce-rhel_virt_instance_init-helper.patch | 53 +++++++ 0029-hw-arm-Add-rhel830-machine-type.patch | 61 ++++++++ ...efine-pseries-rhel8.3.0-machine-type.patch | 77 ++++++++++ ...max_cpus-value-on-spapr-rhel-machine.patch | 49 +++++++ ...max_cpus-value-on-virt-rhel-machine-.patch | 53 +++++++ ...e-downstream-only-MAX_RHEL_CPUS-code.patch | 83 +++++++++++ 0034-q35-Set-max_cpus-to-512.patch | 45 ++++++ ...rt-Allow-the-TPM_TIS_SYSBUS-device-d.patch | 39 +++++ ...e-vTPM-for-ARM-in-downstream-configs.patch | 35 +++++ qemu-kvm.spec | 56 +++++--- sources | 2 +- 36 files changed, 900 insertions(+), 398 deletions(-) rename 0024-RHEL-only-Enable-vTPM-for-POWER-in-downstream-config.patch => 0022-RHEL-only-Enable-vTPM-for-POWER-in-downstream-config.patch (90%) delete mode 100644 0022-virtio-net-fix-removal-of-failover-device.patch rename 0025-redhat-fix-5.0-rebase-missing-ISA-TPM-TIS.patch => 0023-redhat-fix-5.0-rebase-missing-ISA-TPM-TIS.patch (86%) rename 0026-redhat-define-hw_compat_8_2.patch => 0024-redhat-define-hw_compat_8_2.patch (93%) rename 0027-x86-Add-8.3.0-x86_64-machine-type.patch => 0025-x86-Add-8.3.0-x86_64-machine-type.patch (86%) create mode 100644 0027-hw-arm-Changes-to-rhel820-machine.patch create mode 100644 0028-hw-arm-Introduce-rhel_virt_instance_init-helper.patch create mode 100644 0029-hw-arm-Add-rhel830-machine-type.patch create mode 100644 0030-redhat-define-pseries-rhel8.3.0-machine-type.patch create mode 100644 0031-ppc-Set-correct-max_cpus-value-on-spapr-rhel-machine.patch create mode 100644 0032-arm-Set-correct-max_cpus-value-on-virt-rhel-machine-.patch create mode 100644 0033-vl-Remove-downstream-only-MAX_RHEL_CPUS-code.patch create mode 100644 0034-q35-Set-max_cpus-to-512.patch create mode 100644 0035-RHEL-only-arm-virt-Allow-the-TPM_TIS_SYSBUS-device-d.patch create mode 100644 0036-RHEL-only-Enable-vTPM-for-ARM-in-downstream-configs.patch diff --git a/.gitignore b/.gitignore index ba7d4aa..c3cbd56 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ /qemu-5.0.0-rc3.tar.xz /qemu-5.0.0-rc4.tar.xz /qemu-5.0.0.tar.xz +/qemu-5.1.0.tar.xz diff --git a/0001-redhat-Adding-slirp-to-the-exploded-tree.patch b/0001-redhat-Adding-slirp-to-the-exploded-tree.patch index 60c33f1..d23a83d 100644 --- a/0001-redhat-Adding-slirp-to-the-exploded-tree.patch +++ b/0001-redhat-Adding-slirp-to-the-exploded-tree.patch @@ -1,6 +1,6 @@ -From effec13a9f842205be3526bcfb15e2068c0067b0 Mon Sep 17 00:00:00 2001 +From a71208a6b42d0ef657b2f712d2f08d2ed40e7094 Mon Sep 17 00:00:00 2001 From: Miroslav Rezanina -Date: Thu, 23 Apr 2020 05:26:54 +0200 +Date: Wed, 29 Jul 2020 07:48:57 +0200 Subject: redhat: Adding slirp to the exploded tree RH-Author: Danilo de Paula @@ -46,8 +46,8 @@ This is an exploded-tree-only change and shouldn't be applied to dist-git. Signed-off-by: Danilo C. L. de Paula -Rebase notes (5.0.0-rc4): - - Update slirp directory to commit 2faae0f778 (used upstream) +Rebase notes (5.1.0-rc2): + - Update slirp directory to commit ce94eba2042d52a0ba3d9e252ebce86715e94275 (used upstream) Signed-off-by: Danilo C. L. de Paula --- @@ -63,7 +63,7 @@ Signed-off-by: Danilo C. L. de Paula slirp/build-aux/git-version-gen | 158 ++++ slirp/build-aux/meson-dist | 16 + slirp/meson.build | 134 +++ - slirp/src/arp_table.c | 91 ++ + slirp/src/arp_table.c | 92 ++ slirp/src/bootp.c | 369 ++++++++ slirp/src/bootp.h | 129 +++ slirp/src/cksum.c | 179 ++++ @@ -75,11 +75,11 @@ Signed-off-by: Danilo C. L. de Paula slirp/src/if.h | 25 + slirp/src/ip.h | 242 +++++ slirp/src/ip6.h | 214 +++++ - slirp/src/ip6_icmp.c | 434 +++++++++ + slirp/src/ip6_icmp.c | 433 +++++++++ slirp/src/ip6_icmp.h | 219 +++++ - slirp/src/ip6_input.c | 78 ++ + slirp/src/ip6_input.c | 85 ++ slirp/src/ip6_output.c | 39 + - slirp/src/ip_icmp.c | 489 ++++++++++ + slirp/src/ip_icmp.c | 492 ++++++++++ slirp/src/ip_icmp.h | 166 ++++ slirp/src/ip_input.c | 461 +++++++++ slirp/src/ip_output.c | 169 ++++ @@ -92,13 +92,13 @@ Signed-off-by: Danilo C. L. de Paula slirp/src/misc.c | 390 ++++++++ slirp/src/misc.h | 72 ++ slirp/src/ncsi-pkt.h | 445 +++++++++ - slirp/src/ncsi.c | 192 ++++ + slirp/src/ncsi.c | 193 ++++ slirp/src/ndp_table.c | 87 ++ slirp/src/sbuf.c | 168 ++++ slirp/src/sbuf.h | 27 + slirp/src/slirp.c | 1185 ++++++++++++++++++++++++ - slirp/src/slirp.h | 283 ++++++ - slirp/src/socket.c | 957 +++++++++++++++++++ + slirp/src/slirp.h | 284 ++++++ + slirp/src/socket.c | 954 +++++++++++++++++++ slirp/src/socket.h | 164 ++++ slirp/src/state.c | 379 ++++++++ slirp/src/stream.c | 120 +++ @@ -111,9 +111,9 @@ Signed-off-by: Danilo C. L. de Paula slirp/src/tcp_timer.h | 130 +++ slirp/src/tcp_var.h | 161 ++++ slirp/src/tcpip.h | 104 +++ - slirp/src/tftp.c | 462 ++++++++++ - slirp/src/tftp.h | 52 ++ - slirp/src/udp.c | 361 ++++++++ + slirp/src/tftp.c | 464 ++++++++++ + slirp/src/tftp.h | 54 ++ + slirp/src/udp.c | 365 ++++++++ slirp/src/udp.h | 90 ++ slirp/src/udp6.c | 173 ++++ slirp/src/util.c | 428 +++++++++ @@ -121,7 +121,7 @@ Signed-off-by: Danilo C. L. de Paula slirp/src/version.c | 8 + slirp/src/vmstate.c | 444 +++++++++ slirp/src/vmstate.h | 391 ++++++++ - 70 files changed, 16423 insertions(+), 3 deletions(-) + 70 files changed, 16440 insertions(+), 3 deletions(-) create mode 100644 slirp/.clang-format create mode 100644 slirp/.gitignore create mode 100644 slirp/.gitlab-ci.yml @@ -880,10 +880,10 @@ index 0000000000..3a27149373 +) diff --git a/slirp/src/arp_table.c b/slirp/src/arp_table.c new file mode 100644 -index 0000000000..054fbf5e10 +index 0000000000..959e5b9ec0 --- /dev/null +++ b/slirp/src/arp_table.c -@@ -0,0 +1,91 @@ +@@ -0,0 +1,92 @@ +/* SPDX-License-Identifier: MIT */ +/* + * ARP table @@ -913,7 +913,8 @@ index 0000000000..054fbf5e10 + +#include + -+void arp_table_add(Slirp *slirp, uint32_t ip_addr, uint8_t ethaddr[ETH_ALEN]) ++void arp_table_add(Slirp *slirp, uint32_t ip_addr, ++ const uint8_t ethaddr[ETH_ALEN]) +{ + const uint32_t broadcast_addr = + ~slirp->vnetwork_mask.s_addr | slirp->vnetwork_addr.s_addr; @@ -2033,7 +2034,7 @@ index 0000000000..d12c49b36c +#endif diff --git a/slirp/src/dnssearch.c b/slirp/src/dnssearch.c new file mode 100644 -index 0000000000..e8f14e34bb +index 0000000000..55497e860e --- /dev/null +++ b/slirp/src/dnssearch.c @@ -0,0 +1,306 @@ @@ -2278,7 +2279,7 @@ index 0000000000..e8f14e34bb + uint8_t *result = NULL, *outptr; + CompactDomain *domains = NULL; + -+ num_domains = g_strv_length((GStrv)names); ++ num_domains = g_strv_length((GStrv)(void *)names); + if (num_domains == 0) { + return -2; + } @@ -3063,10 +3064,10 @@ index 0000000000..0630309d29 +#endif diff --git a/slirp/src/ip6_icmp.c b/slirp/src/ip6_icmp.c new file mode 100644 -index 0000000000..28ec2bee35 +index 0000000000..d9c872bc97 --- /dev/null +++ b/slirp/src/ip6_icmp.c -@@ -0,0 +1,434 @@ +@@ -0,0 +1,433 @@ +/* SPDX-License-Identifier: BSD-3-Clause */ +/* + * Copyright (c) 2013 @@ -3188,7 +3189,6 @@ index 0000000000..28ec2bee35 + break; + default: + g_assert_not_reached(); -+ break; + } + t->m_data += ICMP6_ERROR_MINLEN; + memcpy(t->m_data, m->m_data, error_data_len); @@ -3728,10 +3728,10 @@ index 0000000000..c37e60f28d +#endif diff --git a/slirp/src/ip6_input.c b/slirp/src/ip6_input.c new file mode 100644 -index 0000000000..dfcbfd6a78 +index 0000000000..a83e4f8e3d --- /dev/null +++ b/slirp/src/ip6_input.c -@@ -0,0 +1,78 @@ +@@ -0,0 +1,85 @@ +/* SPDX-License-Identifier: BSD-3-Clause */ +/* + * Copyright (c) 2013 @@ -3778,11 +3778,18 @@ index 0000000000..dfcbfd6a78 + goto bad; + } + -+ if (ntohs(ip6->ip_pl) > slirp->if_mtu) { ++ if (ntohs(ip6->ip_pl) + sizeof(struct ip6) > slirp->if_mtu) { + icmp6_send_error(m, ICMP6_TOOBIG, 0); + goto bad; + } + ++ // Check if the message size is big enough to hold what's ++ // set in the payload length header. If not this is an invalid ++ // packet ++ if (m->m_len < ntohs(ip6->ip_pl) + sizeof(struct ip6)) { ++ goto bad; ++ } ++ + /* check ip_ttl for a correct ICMP reply */ + if (ip6->ip_hl == 0) { + icmp6_send_error(m, ICMP6_TIMXCEED, ICMP6_TIMXCEED_INTRANS); @@ -3857,10 +3864,10 @@ index 0000000000..b86110662c +} diff --git a/slirp/src/ip_icmp.c b/slirp/src/ip_icmp.c new file mode 100644 -index 0000000000..fe0add438d +index 0000000000..13a0e55085 --- /dev/null +++ b/slirp/src/ip_icmp.c -@@ -0,0 +1,489 @@ +@@ -0,0 +1,492 @@ +/* SPDX-License-Identifier: BSD-3-Clause */ +/* + * Copyright (c) 1982, 1986, 1988, 1993 @@ -3938,8 +3945,11 @@ index 0000000000..fe0add438d + +void icmp_cleanup(Slirp *slirp) +{ -+ while (slirp->icmp.so_next != &slirp->icmp) { -+ icmp_detach(slirp->icmp.so_next); ++ struct socket *so, *so_next; ++ ++ for (so = slirp->icmp.so_next; so != &slirp->icmp; so = so_next) { ++ so_next = so->so_next; ++ icmp_detach(so); + } +} + @@ -4137,8 +4147,8 @@ index 0000000000..fe0add438d + ip = mtod(msrc, struct ip *); + if (slirp_debug & DBG_MISC) { + char bufa[20], bufb[20]; -+ strcpy(bufa, inet_ntoa(ip->ip_src)); -+ strcpy(bufb, inet_ntoa(ip->ip_dst)); ++ slirp_pstrcpy(bufa, sizeof(bufa), inet_ntoa(ip->ip_src)); ++ slirp_pstrcpy(bufb, sizeof(bufb), inet_ntoa(ip->ip_dst)); + DEBUG_MISC(" %.16s to %.16s", bufa, bufb); + } + if (ip->ip_off & IP_OFFMASK) @@ -4524,7 +4534,7 @@ index 0000000000..84707db247 +#endif diff --git a/slirp/src/ip_input.c b/slirp/src/ip_input.c new file mode 100644 -index 0000000000..89a01d45aa +index 0000000000..7f017a238a --- /dev/null +++ b/slirp/src/ip_input.c @@ -0,0 +1,461 @@ @@ -4984,7 +4994,7 @@ index 0000000000..89a01d45aa + olen = (ip->ip_hl << 2) - sizeof(struct ip); + opts = (char *)(ip + 1); + i = m->m_len - (sizeof(struct ip) + olen); -+ memcpy(opts, opts + olen, (unsigned)i); ++ memmove(opts, opts + olen, (unsigned)i); + m->m_len -= olen; + + ip->ip_hl = sizeof(struct ip) >> 2; @@ -6720,10 +6730,10 @@ index 0000000000..7795ad83ee +#endif /* NCSI_PKT_H */ diff --git a/slirp/src/ncsi.c b/slirp/src/ncsi.c new file mode 100644 -index 0000000000..ddd980d869 +index 0000000000..3c1dfef1ff --- /dev/null +++ b/slirp/src/ncsi.c -@@ -0,0 +1,192 @@ +@@ -0,0 +1,193 @@ +/* SPDX-License-Identifier: BSD-3-Clause */ +/* + * NC-SI (Network Controller Sideband Interface) "echo" model @@ -6862,7 +6872,8 @@ index 0000000000..ddd980d869 + +void ncsi_input(Slirp *slirp, const uint8_t *pkt, int pkt_len) +{ -+ struct ncsi_pkt_hdr *nh = (struct ncsi_pkt_hdr *)(pkt + ETH_HLEN); ++ const struct ncsi_pkt_hdr *nh = ++ (const struct ncsi_pkt_hdr *)(pkt + ETH_HLEN); + uint8_t ncsi_reply[ETH_HLEN + NCSI_MAX_LEN]; + struct ethhdr *reh = (struct ethhdr *)ncsi_reply; + struct ncsi_rsp_pkt_hdr *rnh = @@ -7218,7 +7229,7 @@ index 0000000000..01886fbd01 +#endif diff --git a/slirp/src/slirp.c b/slirp/src/slirp.c new file mode 100644 -index 0000000000..14458e8510 +index 0000000000..dba7c98163 --- /dev/null +++ b/slirp/src/slirp.c @@ -0,0 +1,1185 @@ @@ -7968,7 +7979,8 @@ index 0000000000..14458e8510 + +static void arp_input(Slirp *slirp, const uint8_t *pkt, int pkt_len) +{ -+ struct slirp_arphdr *ah = (struct slirp_arphdr *)(pkt + ETH_HLEN); ++ const struct slirp_arphdr *ah = ++ (const struct slirp_arphdr *)(pkt + ETH_HLEN); + uint8_t arp_reply[MAX(ETH_HLEN + sizeof(struct slirp_arphdr), 64)]; + struct ethhdr *reh = (struct ethhdr *)arp_reply; + struct slirp_arphdr *rah = (struct slirp_arphdr *)(arp_reply + ETH_HLEN); @@ -8191,7 +8203,6 @@ index 0000000000..14458e8510 + + default: + g_assert_not_reached(); -+ break; + } + + memcpy(eh->h_dest, ethaddr, ETH_ALEN); @@ -8409,10 +8420,10 @@ index 0000000000..14458e8510 +} diff --git a/slirp/src/slirp.h b/slirp/src/slirp.h new file mode 100644 -index 0000000000..32634bcc00 +index 0000000000..763a65b9ef --- /dev/null +++ b/slirp/src/slirp.h -@@ -0,0 +1,283 @@ +@@ -0,0 +1,284 @@ +/* SPDX-License-Identifier: BSD-3-Clause */ +#ifndef SLIRP_H +#define SLIRP_H @@ -8513,7 +8524,8 @@ index 0000000000..32634bcc00 + int next_victim; +} ArpTable; + -+void arp_table_add(Slirp *slirp, uint32_t ip_addr, uint8_t ethaddr[ETH_ALEN]); ++void arp_table_add(Slirp *slirp, uint32_t ip_addr, ++ const uint8_t ethaddr[ETH_ALEN]); + +bool arp_table_search(Slirp *slirp, uint32_t ip_addr, + uint8_t out_ethaddr[ETH_ALEN]); @@ -8698,10 +8710,10 @@ index 0000000000..32634bcc00 +#endif diff --git a/slirp/src/socket.c b/slirp/src/socket.c new file mode 100644 -index 0000000000..4cd9a64b3c +index 0000000000..1e385df0d8 --- /dev/null +++ b/slirp/src/socket.c -@@ -0,0 +1,957 @@ +@@ -0,0 +1,954 @@ +/* SPDX-License-Identifier: BSD-3-Clause */ +/* + * Copyright (c) 1995 Danny Gasparovski. @@ -9255,7 +9267,6 @@ index 0000000000..4cd9a64b3c + break; + default: + g_assert_not_reached(); -+ break; + } + + /* @@ -9307,7 +9318,6 @@ index 0000000000..4cd9a64b3c + break; + default: + g_assert_not_reached(); -+ break; + } + m_free(m); + } else { @@ -9343,7 +9353,6 @@ index 0000000000..4cd9a64b3c + break; + default: + g_assert_not_reached(); -+ break; + } + } /* rx error */ + } /* if ping packet */ @@ -14316,10 +14325,10 @@ index 0000000000..d3df021493 +#endif diff --git a/slirp/src/tftp.c b/slirp/src/tftp.c new file mode 100644 -index 0000000000..c209145282 +index 0000000000..c6950ee10f --- /dev/null +++ b/slirp/src/tftp.c -@@ -0,0 +1,462 @@ +@@ -0,0 +1,464 @@ +/* SPDX-License-Identifier: MIT */ +/* + * tftp.c - a simple, read-only tftp server for qemu @@ -14440,7 +14449,9 @@ index 0000000000..c209145282 + } + + if (len) { -+ lseek(spt->fd, block_nr * spt->block_size, SEEK_SET); ++ if (lseek(spt->fd, block_nr * spt->block_size, SEEK_SET) == (off_t)-1) { ++ return -1; ++ } + + bytes_read = read(spt->fd, buf, len); + } @@ -14784,16 +14795,18 @@ index 0000000000..c209145282 +} diff --git a/slirp/src/tftp.h b/slirp/src/tftp.h new file mode 100644 -index 0000000000..c47bb43c7d +index 0000000000..6d75478e83 --- /dev/null +++ b/slirp/src/tftp.h -@@ -0,0 +1,52 @@ +@@ -0,0 +1,54 @@ +/* SPDX-License-Identifier: BSD-3-Clause */ +/* tftp defines */ + +#ifndef SLIRP_TFTP_H +#define SLIRP_TFTP_H + ++#include "util.h" ++ +#define TFTP_SESSIONS_MAX 20 + +#define TFTP_SERVER 69 @@ -14822,7 +14835,7 @@ index 0000000000..c47bb43c7d + } tp_error; + char tp_buf[TFTP_BLOCKSIZE_MAX + 2]; + } x; -+} __attribute__((packed)); ++} SLIRP_PACKED; + +struct tftp_session { + Slirp *slirp; @@ -14842,10 +14855,10 @@ index 0000000000..c47bb43c7d +#endif diff --git a/slirp/src/udp.c b/slirp/src/udp.c new file mode 100644 -index 0000000000..6bde20fafa +index 0000000000..0ad44d7c03 --- /dev/null +++ b/slirp/src/udp.c -@@ -0,0 +1,361 @@ +@@ -0,0 +1,365 @@ +/* SPDX-License-Identifier: BSD-3-Clause */ +/* + * Copyright (c) 1982, 1986, 1988, 1990, 1993 @@ -14900,7 +14913,10 @@ index 0000000000..6bde20fafa + +void udp_cleanup(Slirp *slirp) +{ -+ while (slirp->udb.so_next != &slirp->udb) { ++ struct socket *so, *so_next; ++ ++ for (so = slirp->udb.so_next; so != &slirp->udb; so = so_next) { ++ so_next = so->so_next; + udp_detach(slirp->udb.so_next); + } +} @@ -15174,6 +15190,7 @@ index 0000000000..6bde20fafa + struct socket *so; + socklen_t addrlen = sizeof(struct sockaddr_in); + ++ memset(&addr, 0, sizeof(addr)); + so = socreate(slirp); + so->s = slirp_socket(AF_INET, SOCK_DGRAM, 0); + if (so->s < 0) { @@ -15484,7 +15501,7 @@ index 0000000000..6f9486bbca +} diff --git a/slirp/src/util.c b/slirp/src/util.c new file mode 100644 -index 0000000000..570c53f303 +index 0000000000..d3ed5faf8b --- /dev/null +++ b/slirp/src/util.c @@ -0,0 +1,428 @@ @@ -15882,7 +15899,7 @@ index 0000000000..570c53f303 + rv = slirp_vsnprintf(str, size, format, args); + va_end(args); + -+ if (rv > size) { ++ if (rv >= size) { + g_critical("slirp_fmt() truncation"); + } + diff --git a/0005-Initial-redhat-build.patch b/0005-Initial-redhat-build.patch index c2d0dad..c3341be 100644 --- a/0005-Initial-redhat-build.patch +++ b/0005-Initial-redhat-build.patch @@ -1,4 +1,4 @@ -From 9f51ea3d645d7da3eaf55f3e5cedc4cd42981efc Mon Sep 17 00:00:00 2001 +From cf7532e0c854b385ee7acdf5788bc407172f7ae9 Mon Sep 17 00:00:00 2001 From: Miroslav Rezanina Date: Fri, 12 Oct 2018 07:31:11 +0200 Subject: Initial redhat build @@ -47,52 +47,24 @@ Rebase notes (4.2.0): - Removed spapr-rtas.bin (upstream) - Require newer SLOF (20191022) -Rebase notes (weekly-200115): -- Added index.html (upstream) - -Rebase notes (weekly-200122): +Rebase notes (5.1.0): - Use python3 for virtio_seg_max_adjust.py test - Removed qemu-trace-stap shebang from spec file - -Rebase notes (weekly-200129): -- Ship docs/qemu-kvm/system help files (added upstream) - -Rebase notes (weekly-200212): - Added virtiofsd.1 (upstream) - -Rebase notes (weekly-200219): - Use out-of-tree build - -Rebase notes (weekly-200226): -- added tools documentation (upstream) - -Rebase notes (weekly-200304): +- New documentation structure (upstream) - Update local build - -Rebase notes (weekly-200311): -- Add docs/qemu-kvm/user help files (added upstream) - Removing installed qemu-storage-daemon (added upstream) - -Rebase notes (weekly-200318): - Removing opensbi-riscv32-sifive_u-fw_jump.bin (added upstream) - -Rebase notes (weekly-200325): - Disable iotests (moved from Enable make check commit) - -Rebase notes (5.0.0 rc2): - Added missing configure options - -Rebase notes (5.0.0 rc3): - Reorder configure options - -Rebase notes (weekly-200617): -- Fixing qemu-kvm-tests rpm content - - Fixed python shenigans - - Include all qemu-iotests files - qemu-pr-helper moved to /usr/libexec/ (upstream) - -Rebase notes (weekly-200701): -- Moved qemu-ga-ref.* and qemu-qmp-ref.* docs files to interop diretory (upstream) +- Added submodules for usb-redir, smartcard-reader and qxl display (upstream) +- Added setting rc version in Makefile for build +- removed --disable-vxhs configure option (removed upstream) +- bumped required libusbx-devel version to 1.0.23 +- bumped libfdt version to 1.6.0 Merged patches (3.1.0): - 01f0c9f RHEL8: Add disable configure options to qemu spec file @@ -116,15 +88,11 @@ Merged patches (4.2.0): - 69e1fb2 enable virgla - d4f6115 enable virgl, for real this time ... -Merged patches (weekly-200205): +Merged patches (5.1.0): - 5edf6bd Add support for rh-brew-module - f77d52d redhat: ship virtiofsd vhost-user device backend - -Merged patches (weekly-200610): - 63f12d4 redhat: Always use module build target for rh-brew (modified) - 9b1e140 redhat: updating the modular target - -Merged patches (weekly-200617): - 44b8bd0 spec: Fix python shenigans for tests Signed-off-by: Danilo C. L. de Paula @@ -133,22 +101,22 @@ Signed-off-by: Danilo C. L. de Paula Makefile | 3 +- configure | 1 + redhat/Makefile | 86 + - redhat/Makefile.common | 53 + + redhat/Makefile.common | 54 + redhat/README.tests | 39 + - redhat/qemu-kvm.spec.template | 2961 +++++++++++++++++++++++++++ + redhat/qemu-kvm.spec.template | 2977 +++++++++++++++++++++++++++ redhat/qemu-pr-helper.service | 2 +- redhat/scripts/extract_build_cmd.py | 2 +- - redhat/scripts/process-patches.sh | 7 +- + redhat/scripts/process-patches.sh | 17 +- tests/check-block.sh | 2 + ui/vnc.c | 2 +- - 12 files changed, 3150 insertions(+), 9 deletions(-) + 12 files changed, 3173 insertions(+), 13 deletions(-) create mode 100644 redhat/Makefile create mode 100644 redhat/Makefile.common create mode 100644 redhat/README.tests create mode 100644 redhat/qemu-kvm.spec.template diff --git a/Makefile b/Makefile -index b1b8a5a6d0..88b7565246 100644 +index 13dd708c4a..42e854b2b1 100644 --- a/Makefile +++ b/Makefile @@ -549,6 +549,7 @@ CAP_CFLAGS += -DCAPSTONE_HAS_ARM @@ -159,7 +127,7 @@ index b1b8a5a6d0..88b7565246 100644 .PHONY: capstone/all capstone/all: .git-submodule-status -@@ -878,7 +879,7 @@ install-doc: $(DOCS) install-sphinxdocs +@@ -879,7 +880,7 @@ install-doc: $(DOCS) install-sphinxdocs $(INSTALL_DATA) docs/interop/qemu-qmp-ref.txt "$(DESTDIR)$(qemu_docdir)/interop" ifdef CONFIG_POSIX $(INSTALL_DIR) "$(DESTDIR)$(mandir)/man1" @@ -169,10 +137,10 @@ index b1b8a5a6d0..88b7565246 100644 $(INSTALL_DATA) docs/interop/qemu-qmp-ref.7 "$(DESTDIR)$(mandir)/man7" $(INSTALL_DATA) $(MANUAL_BUILDDIR)/system/qemu-block-drivers.7 "$(DESTDIR)$(mandir)/man7" diff --git a/configure b/configure -index ee6c3c6792..bd957a5a26 100755 +index 2acc4d1465..eb5b695dbe 100755 --- a/configure +++ b/configure -@@ -2610,6 +2610,7 @@ if test "$seccomp" != "no" ; then +@@ -2633,6 +2633,7 @@ if test "$seccomp" != "no" ; then seccomp="no" fi fi @@ -194,7 +162,7 @@ index 8e29c868e5..e9bcb5ac27 100755 ret=0 diff --git a/ui/vnc.c b/ui/vnc.c -index 527ad25124..8099c0ee13 100644 +index f006aa1afd..992f428fec 100644 --- a/ui/vnc.c +++ b/ui/vnc.c @@ -3970,7 +3970,7 @@ void vnc_display_open(const char *id, Error **errp) diff --git a/0006-Enable-disable-devices-for-RHEL.patch b/0006-Enable-disable-devices-for-RHEL.patch index 12b0b4a..5b44b6b 100644 --- a/0006-Enable-disable-devices-for-RHEL.patch +++ b/0006-Enable-disable-devices-for-RHEL.patch @@ -1,4 +1,4 @@ -From c956c1d145adb87a8a830bf6091dac80b7925054 Mon Sep 17 00:00:00 2001 +From 3c93dbb29fed4f555904494efe9b823310a14604 Mon Sep 17 00:00:00 2001 From: Miroslav Rezanina Date: Mon, 11 Jan 2016 11:53:33 +0100 Subject: Enable/disable devices for RHEL @@ -39,17 +39,13 @@ Rebase notes (4.2.0-rc3): - Disabled ccid-card-emulated (patch 92566) - Disabled vfio-pci-igd-lpc-bridge (patch 92565) -Rebase notes (weekly-200205): +Rebase notes (5.1.0): - added CONFIG_PCI_EXPRESS on ppc64 (due to upstream dependency) - -Rebase notes (weekly-200226): - Added CONFIG_NVDIMM - -Rebase notes (weekly-200513) - updated cortex-15 disabling to upstream code - -Rebase notes (weekly-200520): - Add CONFIG_ACPI_APEI for aarch64 +- removed obsolete hw/bt/Makefile.objs chunk +- removed unnecessary changes in target/i386/cpu.c Merged patches (qemu 3.1.0): - d51e082 Re-enable CONFIG_HYPERV_TESTDEV @@ -69,13 +65,9 @@ Merged patches (4.1.0): Merged patches (4.2.0): - f7587dd RHEL: disable hostmem-memfd -Merged patches (weekly-200108): +Merged patches (weekly-5.1.0): - 4543a3c i386: Remove cpu64-rhel6 CPU model - -Merged patches (weekly-200520): - 96533 aarch64: Remove tcg cpu types (pjw commit) - -Merged patches (weekly-200610): - 559d589 Revert "RHEL: disable hostmem-memfd" - 441128e enable ramfb @@ -93,7 +85,6 @@ Signed-off-by: Danilo C. L. de Paula hw/acpi/ich9.c | 4 +- hw/arm/Makefile.objs | 2 +- hw/block/fdc.c | 10 +++ - hw/bt/Makefile.objs | 3 + hw/cpu/Makefile.objs | 5 +- hw/display/cirrus_vga.c | 3 + hw/ide/piix.c | 5 +- @@ -106,17 +97,16 @@ Signed-off-by: Danilo C. L. de Paula softmmu/vl.c | 2 +- target/arm/cpu.c | 4 +- target/arm/cpu_tcg.c | 3 + - target/i386/cpu.c | 17 +++-- + target/i386/cpu.c | 1 + target/ppc/cpu-models.c | 10 +++ target/s390x/cpu_models.c | 3 + target/s390x/kvm.c | 8 ++ - 29 files changed, 274 insertions(+), 33 deletions(-) + 28 files changed, 263 insertions(+), 25 deletions(-) create mode 100644 default-configs/aarch64-rh-devices.mak create mode 100644 default-configs/ppc64-rh-devices.mak create mode 100644 default-configs/rh-virtio.mak create mode 100644 default-configs/s390x-rh-devices.mak create mode 100644 default-configs/x86_64-rh-devices.mak - create mode 100644 hw/bt/Makefile.objs diff --git a/default-configs/aarch64-rh-devices.mak b/default-configs/aarch64-rh-devices.mak new file mode 100644 @@ -394,7 +384,7 @@ index 64b2ee2960..b5de7e5279 100644 + +include x86_64-rh-devices.mak diff --git a/hw/acpi/ich9.c b/hw/acpi/ich9.c -index 2d204babc6..7ead029e68 100644 +index 6a19070cec..bb8379f6a7 100644 --- a/hw/acpi/ich9.c +++ b/hw/acpi/ich9.c @@ -374,8 +374,8 @@ void ich9_pm_add_properties(Object *obj, ICH9LPCPMRegs *pm) @@ -422,7 +412,7 @@ index 534a6a119e..bd62442b54 100644 obj-$(CONFIG_PXA2XX) += pxa2xx.o pxa2xx_gpio.o pxa2xx_pic.o obj-$(CONFIG_DIGIC) += digic.o diff --git a/hw/block/fdc.c b/hw/block/fdc.c -index 3425d56e2a..f4ae220905 100644 +index e9ed3eef45..965528a512 100644 --- a/hw/block/fdc.c +++ b/hw/block/fdc.c @@ -47,6 +47,8 @@ @@ -434,7 +424,7 @@ index 3425d56e2a..f4ae220905 100644 /********************************************************/ /* debug Floppy devices */ -@@ -2625,6 +2627,14 @@ static void fdctrl_realize_common(DeviceState *dev, FDCtrl *fdctrl, +@@ -2621,6 +2623,14 @@ static void fdctrl_realize_common(DeviceState *dev, FDCtrl *fdctrl, int i, j; static int command_tables_inited = 0; @@ -449,15 +439,6 @@ index 3425d56e2a..f4ae220905 100644 if (fdctrl->fallback == FLOPPY_DRIVE_TYPE_AUTO) { error_setg(errp, "Cannot choose a fallback FDrive type of 'auto'"); return; -diff --git a/hw/bt/Makefile.objs b/hw/bt/Makefile.objs -new file mode 100644 -index 0000000000..e678e9ee3c ---- /dev/null -+++ b/hw/bt/Makefile.objs -@@ -0,0 +1,3 @@ -+#common-obj-y += core.o l2cap.o sdp.o hci.o hid.o -+#common-obj-y += hci-csr.o -+ diff --git a/hw/cpu/Makefile.objs b/hw/cpu/Makefile.objs index 8db9e8a7b3..1601ea93c7 100644 --- a/hw/cpu/Makefile.objs @@ -542,10 +523,10 @@ index a18f80e369..960b2f00ee 100644 static void e1000_register_types(void) diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c -index 26ad566f42..bfdf6b3e5c 100644 +index c4f47dcc04..6a2239d5e5 100644 --- a/hw/ppc/spapr_cpu_core.c +++ b/hw/ppc/spapr_cpu_core.c -@@ -396,10 +396,12 @@ static const TypeInfo spapr_cpu_core_type_infos[] = { +@@ -389,10 +389,12 @@ static const TypeInfo spapr_cpu_core_type_infos[] = { .instance_size = sizeof(SpaprCpuCore), .class_size = sizeof(SpaprCpuCoreClass), }, @@ -559,25 +540,25 @@ index 26ad566f42..bfdf6b3e5c 100644 DEFINE_SPAPR_CPU_CORE_TYPE("power7+_v2.1"), DEFINE_SPAPR_CPU_CORE_TYPE("power8_v2.0"), diff --git a/hw/usb/Makefile.objs b/hw/usb/Makefile.objs -index fa5c3fa1b8..854094c4f2 100644 +index e342ff59fa..abf044a20f 100644 --- a/hw/usb/Makefile.objs +++ b/hw/usb/Makefile.objs -@@ -30,7 +30,9 @@ common-obj-$(CONFIG_USB_NETWORK) += dev-network.o - ifeq ($(CONFIG_USB_SMARTCARD),y) +@@ -31,7 +31,9 @@ ifeq ($(CONFIG_USB_SMARTCARD),y) common-obj-y += dev-smartcard-reader.o - common-obj-$(CONFIG_SMARTCARD) += smartcard.mo + ifeq ($(CONFIG_SMARTCARD),y) + common-obj-m += smartcard.mo -smartcard.mo-objs := ccid-card-passthru.o ccid-card-emulated.o +# Disabled for Red Hat Enterprise Linux: -+# smartcard.mo-objs := ccid-card-passthru.o ccid-card-emulated.o ++#smartcard.mo-objs := ccid-card-passthru.o ccid-card-emulated.o +smartcard.mo-objs := ccid-card-passthru.o smartcard.mo-cflags := $(SMARTCARD_CFLAGS) smartcard.mo-libs := $(SMARTCARD_LIBS) endif diff --git a/qemu-options.hx b/qemu-options.hx -index fa1b19de4c..b9699440a3 100644 +index 708583b4ce..1700205035 100644 --- a/qemu-options.hx +++ b/qemu-options.hx -@@ -2248,10 +2248,6 @@ ERST +@@ -2257,10 +2257,6 @@ ERST DEF("no-hpet", 0, QEMU_OPTION_no_hpet, "-no-hpet disable HPET\n", QEMU_ARCH_I386) @@ -589,7 +570,7 @@ index fa1b19de4c..b9699440a3 100644 DEF("acpitable", HAS_ARG, QEMU_OPTION_acpitable, "-acpitable [sig=str][,rev=n][,oem_id=str][,oem_table_id=str][,oem_rev=n][,asl_compiler_id=str][,asl_compiler_rev=n][,{data|file}=file1[:file2]...]\n" diff --git a/softmmu/vl.c b/softmmu/vl.c -index 9da2e23144..6509057752 100644 +index 4eb9d1f7fd..a1fb06dca0 100644 --- a/softmmu/vl.c +++ b/softmmu/vl.c @@ -145,7 +145,7 @@ static Chardev **serial_hds; @@ -602,10 +583,10 @@ index 9da2e23144..6509057752 100644 static int no_reboot; int no_shutdown = 0; diff --git a/target/arm/cpu.c b/target/arm/cpu.c -index 5050e1843a..79adfe25c4 100644 +index 111579554f..13ad40aa7d 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c -@@ -2335,7 +2335,9 @@ static void arm_cpu_register_types(void) +@@ -2338,7 +2338,9 @@ static void arm_cpu_register_types(void) type_register_static(&idau_interface_type_info); for (i = 0; i < cpu_count; ++i) { @@ -631,10 +612,10 @@ index 00b0e08f33..94d429b61c 100644 arm_cpu_register(&arm_tcg_cpus[i]); } diff --git a/target/i386/cpu.c b/target/i386/cpu.c -index 36cbd3d027..55a30cd4d9 100644 +index 588f32e136..030a5a09ed 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c -@@ -1825,20 +1825,21 @@ static CPUCaches epyc_rome_cache_info = { +@@ -1825,6 +1825,7 @@ static CPUCaches epyc_rome_cache_info = { static X86CPUDefinition builtin_x86_defs[] = { { @@ -642,28 +623,6 @@ index 36cbd3d027..55a30cd4d9 100644 .name = "qemu64", .level = 0xd, .vendor = CPUID_VENDOR_AMD, - .family = 6, - .model = 6, - .stepping = 3, -- .features[FEAT_1_EDX] = -- PPRO_FEATURES | -- CPUID_MTRR | CPUID_CLFLUSH | CPUID_MCA | -- CPUID_PSE36, -- .features[FEAT_1_ECX] = -- CPUID_EXT_SSE3 | CPUID_EXT_CX16, -- .features[FEAT_8000_0001_EDX] = -- CPUID_EXT2_LM | CPUID_EXT2_SYSCALL | CPUID_EXT2_NX, -+ .features[FEAT_1_EDX] = CPUID_SSE2 | CPUID_SSE | CPUID_FXSR | -+ CPUID_MMX | CPUID_CLFLUSH | CPUID_PSE36 | CPUID_PAT | CPUID_CMOV | -+ CPUID_MCA | CPUID_PGE | CPUID_MTRR | CPUID_SEP | CPUID_APIC | -+ CPUID_CX8 | CPUID_MCE | CPUID_PAE | CPUID_MSR | CPUID_TSC | -+ CPUID_PSE | CPUID_DE | CPUID_FP87, -+ .features[FEAT_1_ECX] = CPUID_EXT_CX16 | CPUID_EXT_SSE3, -+ .features[FEAT_8000_0001_EDX] = CPUID_EXT2_LM | CPUID_EXT2_NX | -+ CPUID_EXT2_SYSCALL, - .features[FEAT_8000_0001_ECX] = - CPUID_EXT3_LAHF_LM | CPUID_EXT3_SVM, - .xlevel = 0x8000000A, diff --git a/target/ppc/cpu-models.c b/target/ppc/cpu-models.c index 4ad16863c0..16b2185fd8 100644 --- a/target/ppc/cpu-models.c @@ -735,7 +694,7 @@ index 4ad16863c0..16b2185fd8 100644 { NULL, NULL } }; diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c -index 2fa609bffe..f6bee3204c 100644 +index c2af226174..e35bf745dd 100644 --- a/target/s390x/cpu_models.c +++ b/target/s390x/cpu_models.c @@ -404,6 +404,9 @@ static void check_unavailable_features(const S390CPUModel *max_model, diff --git a/0007-Machine-type-related-general-changes.patch b/0007-Machine-type-related-general-changes.patch index 467366b..32ede92 100644 --- a/0007-Machine-type-related-general-changes.patch +++ b/0007-Machine-type-related-general-changes.patch @@ -1,4 +1,4 @@ -From cbbdd67535fc6da1b77b2fa9f5368f72c211eeb1 Mon Sep 17 00:00:00 2001 +From a86a622ecc7b0b3c66d21fdd1c5dd279bfc75a03 Mon Sep 17 00:00:00 2001 From: Miroslav Rezanina Date: Fri, 11 Jan 2019 09:54:45 +0100 Subject: Machine type related general changes @@ -70,7 +70,7 @@ Signed-off-by: Danilo C. L. de Paula 23 files changed, 354 insertions(+), 11 deletions(-) diff --git a/hw/acpi/ich9.c b/hw/acpi/ich9.c -index 7ead029e68..3b8501fa38 100644 +index bb8379f6a7..43ad1ff927 100644 --- a/hw/acpi/ich9.c +++ b/hw/acpi/ich9.c @@ -369,6 +369,18 @@ static void ich9_pm_set_enable_tco(Object *obj, bool value, Error **errp) @@ -103,7 +103,7 @@ index 7ead029e68..3b8501fa38 100644 &pm->disable_s3, OBJ_PROP_FLAG_READWRITE); object_property_add_uint8_ptr(obj, ACPI_PM_PROP_S4_DISABLED, diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c -index 283422e0d3..f6642011c6 100644 +index 26bac4f16c..7c2e17ceb6 100644 --- a/hw/acpi/piix4.c +++ b/hw/acpi/piix4.c @@ -276,6 +276,7 @@ static const VMStateDescription vmstate_acpi = { @@ -126,7 +126,7 @@ index 283422e0d3..f6642011c6 100644 DEFINE_PROP_BOOL("acpi-pci-hotplug-with-bridge-support", PIIX4PMState, use_acpi_hotplug_bridge, true), diff --git a/hw/arm/virt.c b/hw/arm/virt.c -index 7d9f7157da..e30b837135 100644 +index ecfee362a1..43cf75333b 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -1450,7 +1450,7 @@ static void virt_build_smbios(VirtMachineState *vms) @@ -139,7 +139,7 @@ index 7d9f7157da..e30b837135 100644 smbios_get_tables(MACHINE(vms), NULL, 0, &smbios_tables, &smbios_tables_len, &smbios_anchor, &smbios_anchor_len); diff --git a/hw/char/serial.c b/hw/char/serial.c -index 9eebcb27e7..11d2d08912 100644 +index 2386479492..c83f816f42 100644 --- a/hw/char/serial.c +++ b/hw/char/serial.c @@ -35,6 +35,7 @@ @@ -194,7 +194,7 @@ index 9eebcb27e7..11d2d08912 100644 } diff --git a/hw/core/machine.c b/hw/core/machine.c -index 211b4e077a..ef6b320ea7 100644 +index 8d1a90c6cf..2b8e480040 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -28,6 +28,176 @@ @@ -372,8 +372,8 @@ index 211b4e077a..ef6b320ea7 100644 +const size_t hw_compat_rhel_7_1_len = G_N_ELEMENTS(hw_compat_rhel_7_1); + GlobalProperty hw_compat_5_0[] = { + { "pci-host-bridge", "x-config-reg-migration-enabled", "off" }, { "virtio-balloon-device", "page-poison", "false" }, - { "vmport", "x-read-set-eax", "off" }, diff --git a/hw/display/vga-isa.c b/hw/display/vga-isa.c index 3aaeeeca1e..d88f52a587 100644 --- a/hw/display/vga-isa.c @@ -388,7 +388,7 @@ index 3aaeeeca1e..d88f52a587 100644 }; diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c -index fae487f57d..18815e8302 100644 +index b789e83f9a..0ecdd57689 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -179,6 +179,8 @@ static void pc_init1(MachineState *machine, @@ -401,7 +401,7 @@ index fae487f57d..18815e8302 100644 } diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c -index acd6d405f0..a1131e6825 100644 +index a3e607a544..b8ea764ce3 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -204,6 +204,8 @@ static void pc_q35_init(MachineState *machine) @@ -535,7 +535,7 @@ index 7a38540cb9..377d861913 100644 } diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c -index ffd98727ee..7818b90c96 100644 +index f560826904..8875e83941 100644 --- a/hw/smbios/smbios.c +++ b/hw/smbios/smbios.c @@ -56,6 +56,9 @@ static bool smbios_legacy = true; @@ -650,7 +650,7 @@ index 37f7beb3fa..2741edc589 100644 if (s->masterbus) { USBPort *ports[NB_PORTS]; diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c -index b330e36fe6..b25cce8f0c 100644 +index 67a18fe2b6..38bdfaf3fd 100644 --- a/hw/usb/hcd-xhci.c +++ b/hw/usb/hcd-xhci.c @@ -3600,9 +3600,27 @@ static const VMStateDescription vmstate_xhci_slot = { @@ -767,10 +767,10 @@ index 02a0ced0a0..67e38a1b13 100644 void smbios_get_tables(MachineState *ms, const struct smbios_phys_mem_area *mem_array, diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h -index dce1273c7d..665c4309a2 100644 +index 3d7ed3a55e..951e825778 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h -@@ -102,6 +102,9 @@ typedef struct PCMachineClass { +@@ -103,6 +103,9 @@ typedef struct PCMachineClass { bool smbios_defaults; bool smbios_legacy_mode; bool smbios_uuid_encoded; @@ -794,10 +794,10 @@ index e29a37635b..35ac38c459 100644 + #endif diff --git a/migration/migration.c b/migration/migration.c -index 92e44e021e..67d3b75485 100644 +index 8fe36339db..bf684185b7 100644 --- a/migration/migration.c +++ b/migration/migration.c -@@ -128,6 +128,8 @@ enum mig_rp_message_type { +@@ -129,6 +129,8 @@ enum mig_rp_message_type { MIG_RP_MSG_MAX }; @@ -807,10 +807,10 @@ index 92e44e021e..67d3b75485 100644 migrations at once. For now we don't need to add dynamic creation of migration */ diff --git a/migration/migration.h b/migration/migration.h -index f617960522..b8bc10d16d 100644 +index 6c6a931d0d..721e272713 100644 --- a/migration/migration.h +++ b/migration/migration.h -@@ -339,6 +339,11 @@ void init_dirty_bitmap_incoming_migration(void); +@@ -340,6 +340,11 @@ void dirty_bitmap_mig_cancel_incoming(void); void migrate_add_address(SocketAddress *address); int foreach_not_ignored_block(RAMBlockIterFunc func, void *opaque); diff --git a/0008-Add-aarch64-machine-types.patch b/0008-Add-aarch64-machine-types.patch index 9e569fb..7d60da2 100644 --- a/0008-Add-aarch64-machine-types.patch +++ b/0008-Add-aarch64-machine-types.patch @@ -1,4 +1,4 @@ -From 1f0568a29b004dd3557d5405fddc6979ac5ff911 Mon Sep 17 00:00:00 2001 +From 0ba70804c179d934e5be555abff3c4455ac137a0 Mon Sep 17 00:00:00 2001 From: Miroslav Rezanina Date: Fri, 19 Oct 2018 12:53:31 +0200 Subject: Add aarch64 machine types @@ -35,6 +35,9 @@ Rebase notes (weekly-200520): Rebase notes (weekly-200701): - Added to virt_machine_device_unplug_cb to machine type (upstream) +Rebase notes (5.1.0-rc1): +- added mte property (upstream) + Merged patches (4.0.0): - 7bfdb4c aarch64: Add virt-rhel8.0.0 machine type for ARM - 3433e69 aarch64: Set virt-rhel8.0.0 max_cpus to 512 @@ -46,12 +49,12 @@ Merged patches (4.1.0): Signed-off-by: Danilo C. L. de Paula --- - hw/arm/virt.c | 172 +++++++++++++++++++++++++++++++++++++++++- + hw/arm/virt.c | 180 +++++++++++++++++++++++++++++++++++++++++- include/hw/arm/virt.h | 11 +++ - 2 files changed, 182 insertions(+), 1 deletion(-) + 2 files changed, 188 insertions(+), 3 deletions(-) diff --git a/hw/arm/virt.c b/hw/arm/virt.c -index e30b837135..5a45677205 100644 +index 43cf75333b..e1a17e7c87 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -79,6 +79,7 @@ @@ -113,7 +116,7 @@ index e30b837135..5a45677205 100644 /* Number of external interrupt lines to configure the GIC with */ #define NUM_IRQS 256 -@@ -1964,6 +2007,7 @@ static void machvirt_init(MachineState *machine) +@@ -1979,6 +2022,7 @@ static void machvirt_init(MachineState *machine) qemu_add_machine_init_done_notifier(&vms->machine_done); } @@ -121,7 +124,7 @@ index e30b837135..5a45677205 100644 static bool virt_get_secure(Object *obj, Error **errp) { VirtMachineState *vms = VIRT_MACHINE(obj); -@@ -1992,6 +2036,7 @@ static void virt_set_virt(Object *obj, bool value, Error **errp) +@@ -2007,6 +2051,7 @@ static void virt_set_virt(Object *obj, bool value, Error **errp) vms->virt = value; } @@ -129,7 +132,25 @@ index e30b837135..5a45677205 100644 static bool virt_get_highmem(Object *obj, Error **errp) { VirtMachineState *vms = VIRT_MACHINE(obj); -@@ -2367,6 +2412,7 @@ static int virt_kvm_type(MachineState *ms, const char *type_str) +@@ -2073,7 +2118,7 @@ static void virt_set_ras(Object *obj, bool value, Error **errp) + + vms->ras = value; + } +- ++#if 0 /* Disabled for Red Hat Enterprise Linux */ + static bool virt_get_mte(Object *obj, Error **errp) + { + VirtMachineState *vms = VIRT_MACHINE(obj); +@@ -2087,7 +2132,7 @@ static void virt_set_mte(Object *obj, bool value, Error **errp) + + vms->mte = value; + } +- ++#endif + static char *virt_get_gic_version(Object *obj, Error **errp) + { + VirtMachineState *vms = VIRT_MACHINE(obj); +@@ -2401,6 +2446,7 @@ static int virt_kvm_type(MachineState *ms, const char *type_str) return requested_pa_size > 40 ? requested_pa_size : 0; } @@ -137,7 +158,7 @@ index e30b837135..5a45677205 100644 static void virt_machine_class_init(ObjectClass *oc, void *data) { MachineClass *mc = MACHINE_CLASS(oc); -@@ -2637,3 +2683,127 @@ static void virt_machine_2_6_options(MachineClass *mc) +@@ -2679,3 +2725,131 @@ static void virt_machine_2_6_options(MachineClass *mc) vmc->no_pmu = true; } DEFINE_VIRT_MACHINE(2, 6) @@ -256,6 +277,10 @@ index e30b837135..5a45677205 100644 + object_property_set_description(obj, "ras", + "Set on/off to enable/disable reporting host memory errors " + "to a KVM guest using ACPI and guest external abort exceptions"); ++ ++ /* MTE is disabled by default. */ ++ vms->mte = false; ++ + vms->irqmap=a15irqmap; + virt_flash_create(vms); +} @@ -266,10 +291,10 @@ index e30b837135..5a45677205 100644 +} +DEFINE_RHEL_MACHINE_AS_LATEST(8, 2, 0) diff --git a/include/hw/arm/virt.h b/include/hw/arm/virt.h -index 54bcf17afd..5fdabd87d6 100644 +index dff67e1bef..7c1e085749 100644 --- a/include/hw/arm/virt.h +++ b/include/hw/arm/virt.h -@@ -165,6 +165,7 @@ typedef struct { +@@ -166,6 +166,7 @@ typedef struct { #define VIRT_ECAM_ID(high) (high ? VIRT_HIGH_PCIE_ECAM : VIRT_PCIE_ECAM) @@ -277,7 +302,7 @@ index 54bcf17afd..5fdabd87d6 100644 #define TYPE_VIRT_MACHINE MACHINE_TYPE_NAME("virt") #define VIRT_MACHINE(obj) \ OBJECT_CHECK(VirtMachineState, (obj), TYPE_VIRT_MACHINE) -@@ -173,6 +174,16 @@ typedef struct { +@@ -174,6 +175,16 @@ typedef struct { #define VIRT_MACHINE_CLASS(klass) \ OBJECT_CLASS_CHECK(VirtMachineClass, klass, TYPE_VIRT_MACHINE) diff --git a/0009-Add-ppc64-machine-types.patch b/0009-Add-ppc64-machine-types.patch index c8e6c81..cca2073 100644 --- a/0009-Add-ppc64-machine-types.patch +++ b/0009-Add-ppc64-machine-types.patch @@ -1,4 +1,4 @@ -From 59c55f3104aa650b5b2a31150a34646cc7018b77 Mon Sep 17 00:00:00 2001 +From da49e223e70695ec4ecc5668658d836346e7f29c Mon Sep 17 00:00:00 2001 From: Miroslav Rezanina Date: Fri, 19 Oct 2018 13:27:13 +0200 Subject: Add ppc64 machine types @@ -44,10 +44,10 @@ Signed-off-by: Danilo C. L. de Paula 5 files changed, 307 insertions(+), 1 deletion(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c -index f6f034d039..f30618e4b1 100644 +index 0ae293ec94..756c8667c1 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c -@@ -4530,6 +4530,7 @@ static void spapr_machine_class_init(ObjectClass *oc, void *data) +@@ -4529,6 +4529,7 @@ static void spapr_machine_class_init(ObjectClass *oc, void *data) smc->smp_threads_vsmt = true; smc->nr_xirqs = SPAPR_NR_XIRQS; xfc->match_nvt = spapr_match_nvt; @@ -55,7 +55,7 @@ index f6f034d039..f30618e4b1 100644 } static const TypeInfo spapr_machine_info = { -@@ -4580,6 +4581,7 @@ static void spapr_machine_latest_class_options(MachineClass *mc) +@@ -4579,6 +4580,7 @@ static void spapr_machine_latest_class_options(MachineClass *mc) } \ type_init(spapr_machine_register_##suffix) @@ -63,7 +63,7 @@ index f6f034d039..f30618e4b1 100644 /* * pseries-5.1 */ -@@ -4638,6 +4640,7 @@ static void spapr_machine_4_1_class_options(MachineClass *mc) +@@ -4644,6 +4646,7 @@ static void spapr_machine_4_1_class_options(MachineClass *mc) } DEFINE_SPAPR_MACHINE(4_1, "4.1", false); @@ -71,7 +71,7 @@ index f6f034d039..f30618e4b1 100644 /* * pseries-4.0 -@@ -4654,6 +4657,7 @@ static void phb_placement_4_0(SpaprMachineState *spapr, uint32_t index, +@@ -4660,6 +4663,7 @@ static void phb_placement_4_0(SpaprMachineState *spapr, uint32_t index, *nv2atsd = 0; } @@ -79,7 +79,7 @@ index f6f034d039..f30618e4b1 100644 static void spapr_machine_4_0_class_options(MachineClass *mc) { SpaprMachineClass *smc = SPAPR_MACHINE_CLASS(mc); -@@ -4813,6 +4817,7 @@ DEFINE_SPAPR_MACHINE(2_8, "2.8", false); +@@ -4819,6 +4823,7 @@ DEFINE_SPAPR_MACHINE(2_8, "2.8", false); /* * pseries-2.7 */ @@ -87,7 +87,7 @@ index f6f034d039..f30618e4b1 100644 static void phb_placement_2_7(SpaprMachineState *spapr, uint32_t index, uint64_t *buid, hwaddr *pio, -@@ -4867,6 +4872,7 @@ static void phb_placement_2_7(SpaprMachineState *spapr, uint32_t index, +@@ -4873,6 +4878,7 @@ static void phb_placement_2_7(SpaprMachineState *spapr, uint32_t index, *nv2atsd = 0; } @@ -95,7 +95,7 @@ index f6f034d039..f30618e4b1 100644 static void spapr_machine_2_7_class_options(MachineClass *mc) { SpaprMachineClass *smc = SPAPR_MACHINE_CLASS(mc); -@@ -4981,6 +4987,280 @@ static void spapr_machine_2_1_class_options(MachineClass *mc) +@@ -4987,6 +4993,280 @@ static void spapr_machine_2_1_class_options(MachineClass *mc) compat_props_add(mc->compat_props, hw_compat_2_1, hw_compat_2_1_len); } DEFINE_SPAPR_MACHINE(2_1, "2.1", false); @@ -377,7 +377,7 @@ index f6f034d039..f30618e4b1 100644 static void spapr_machine_register_types(void) { diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c -index bfdf6b3e5c..39fcaf855b 100644 +index 6a2239d5e5..f228f8bb75 100644 --- a/hw/ppc/spapr_cpu_core.c +++ b/hw/ppc/spapr_cpu_core.c @@ -24,6 +24,7 @@ @@ -394,9 +394,9 @@ index bfdf6b3e5c..39fcaf855b 100644 Error *local_err = NULL; + SpaprMachineClass *smc = SPAPR_MACHINE_GET_CLASS(spapr); - qdev_realize(DEVICE(cpu), NULL, &local_err); - if (local_err) { -@@ -250,6 +252,17 @@ static void spapr_realize_vcpu(PowerPCCPU *cpu, SpaprMachineState *spapr, + if (!qdev_realize(DEVICE(cpu), NULL, errp)) { + return; +@@ -249,6 +251,17 @@ static void spapr_realize_vcpu(PowerPCCPU *cpu, SpaprMachineState *spapr, cpu_ppc_set_vhyp(cpu, PPC_VIRTUAL_HYPERVISOR(spapr)); kvmppc_set_papr(cpu); @@ -412,22 +412,22 @@ index bfdf6b3e5c..39fcaf855b 100644 + } + if (spapr_irq_cpu_intc_create(spapr, cpu, &local_err) < 0) { - goto error_intc_create; - } + cpu_remove_sync(CPU(cpu)); + return; diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h -index c421410e3f..5190d6a936 100644 +index 3134d339e8..f48089edba 100644 --- a/include/hw/ppc/spapr.h +++ b/include/hw/ppc/spapr.h -@@ -130,6 +130,7 @@ struct SpaprMachineClass { - bool smp_threads_vsmt; /* set VSMT to smp_threads by default */ +@@ -131,6 +131,7 @@ struct SpaprMachineClass { hwaddr rma_limit; /* clamp the RMA to this size */ + bool pre_5_1_assoc_refpoints; + bool has_power9_support; void (*phb_placement)(SpaprMachineState *spapr, uint32_t index, uint64_t *buid, hwaddr *pio, hwaddr *mmio32, hwaddr *mmio64, diff --git a/target/ppc/compat.c b/target/ppc/compat.c -index fda0dfe8f8..ab8e3b2125 100644 +index 08aede88dc..b193445aca 100644 --- a/target/ppc/compat.c +++ b/target/ppc/compat.c @@ -114,8 +114,19 @@ static const CompatInfo *compat_by_pvr(uint32_t pvr) diff --git a/0010-Add-s390x-machine-types.patch b/0010-Add-s390x-machine-types.patch index d363b4b..0d4e3ef 100644 --- a/0010-Add-s390x-machine-types.patch +++ b/0010-Add-s390x-machine-types.patch @@ -1,4 +1,4 @@ -From 92594368e1369e85d1b87dd1a65408a4f594cf09 Mon Sep 17 00:00:00 2001 +From dc0914b5e43a9925217af8ddde44194176822108 Mon Sep 17 00:00:00 2001 From: Miroslav Rezanina Date: Fri, 19 Oct 2018 13:47:32 +0200 Subject: Add s390x machine types @@ -27,10 +27,10 @@ Signed-off-by: Danilo C. L. de Paula 1 file changed, 70 insertions(+), 1 deletion(-) diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c -index 023fd25f2b..0e8dd62b18 100644 +index e72c61d2ea..a6a37cce94 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c -@@ -778,7 +778,7 @@ bool css_migration_enabled(void) +@@ -777,7 +777,7 @@ bool css_migration_enabled(void) { \ MachineClass *mc = MACHINE_CLASS(oc); \ ccw_machine_##suffix##_class_options(mc); \ @@ -39,7 +39,7 @@ index 023fd25f2b..0e8dd62b18 100644 if (latest) { \ mc->alias = "s390-ccw-virtio"; \ mc->is_default = true; \ -@@ -802,6 +802,7 @@ bool css_migration_enabled(void) +@@ -801,6 +801,7 @@ bool css_migration_enabled(void) } \ type_init(ccw_machine_register_##suffix) @@ -47,7 +47,7 @@ index 023fd25f2b..0e8dd62b18 100644 static void ccw_machine_5_1_instance_options(MachineState *machine) { } -@@ -1054,6 +1055,74 @@ static void ccw_machine_2_4_class_options(MachineClass *mc) +@@ -1053,6 +1054,74 @@ static void ccw_machine_2_4_class_options(MachineClass *mc) compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); } DEFINE_CCW_MACHINE(2_4, "2.4", false); diff --git a/0011-Add-x86_64-machine-types.patch b/0011-Add-x86_64-machine-types.patch index 45c1f1b..5f827db 100644 --- a/0011-Add-x86_64-machine-types.patch +++ b/0011-Add-x86_64-machine-types.patch @@ -1,4 +1,4 @@ -From 31a74446c5312b248bbc6093f21aee3500b96fca Mon Sep 17 00:00:00 2001 +From 45d5ef7594e5b07d3a975feea8e72541402a797f Mon Sep 17 00:00:00 2001 From: Miroslav Rezanina Date: Fri, 19 Oct 2018 13:10:31 +0200 Subject: Add x86_64 machine types @@ -70,10 +70,10 @@ index b7bcbbbb2a..fe815c5403 100644 } diff --git a/hw/i386/pc.c b/hw/i386/pc.c -index 61acc9e530..fe37bdec7a 100644 +index 47c5ca3e34..063f01d19a 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c -@@ -346,6 +346,263 @@ GlobalProperty pc_compat_1_4[] = { +@@ -347,6 +347,263 @@ GlobalProperty pc_compat_1_4[] = { }; const size_t pc_compat_1_4_len = G_N_ELEMENTS(pc_compat_1_4); @@ -337,7 +337,7 @@ index 61acc9e530..fe37bdec7a 100644 GSIState *pc_gsi_create(qemu_irq **irqs, bool pci_enabled) { GSIState *s; -@@ -1011,7 +1268,8 @@ void pc_memory_init(PCMachineState *pcms, +@@ -1012,7 +1269,8 @@ void pc_memory_init(PCMachineState *pcms, option_rom_mr = g_malloc(sizeof(*option_rom_mr)); memory_region_init_ram(option_rom_mr, NULL, "pc.rom", PC_ROM_SIZE, &error_fatal); @@ -347,7 +347,7 @@ index 61acc9e530..fe37bdec7a 100644 memory_region_set_readonly(option_rom_mr, true); } memory_region_add_subregion_overlap(rom_memory, -@@ -1969,6 +2227,8 @@ static void pc_machine_class_init(ObjectClass *oc, void *data) +@@ -1956,6 +2214,8 @@ static void pc_machine_class_init(ObjectClass *oc, void *data) pcmc->linuxboot_dma_enabled = true; pcmc->pvh_enabled = true; assert(!mc->get_hotplug_handler); @@ -356,7 +356,7 @@ index 61acc9e530..fe37bdec7a 100644 mc->get_hotplug_handler = pc_get_hotplug_handler; mc->hotplug_allowed = pc_hotplug_allowed; mc->cpu_index_to_instance_props = x86_cpu_index_to_props; -@@ -1981,7 +2241,8 @@ static void pc_machine_class_init(ObjectClass *oc, void *data) +@@ -1968,7 +2228,8 @@ static void pc_machine_class_init(ObjectClass *oc, void *data) mc->hot_add_cpu = pc_hot_add_cpu; mc->smp_parse = pc_smp_parse; mc->block_default_type = IF_IDE; @@ -367,7 +367,7 @@ index 61acc9e530..fe37bdec7a 100644 mc->wakeup = pc_machine_wakeup; hc->pre_plug = pc_machine_device_pre_plug_cb; diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c -index 18815e8302..eeadd896c2 100644 +index 0ecdd57689..6d935645b6 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -54,6 +54,7 @@ @@ -389,7 +389,7 @@ index 18815e8302..eeadd896c2 100644 pcmc->smbios_uuid_encoded, pcmc->smbios_stream_product, pcmc->smbios_stream_version, -@@ -314,6 +315,7 @@ static void pc_init1(MachineState *machine, +@@ -316,6 +317,7 @@ static void pc_init1(MachineState *machine, * hw_compat_*, pc_compat_*, or * pc_*_machine_options(). */ @@ -397,7 +397,7 @@ index 18815e8302..eeadd896c2 100644 static void pc_compat_2_3_fn(MachineState *machine) { X86MachineState *x86ms = X86_MACHINE(machine); -@@ -992,3 +994,207 @@ static void xenfv_3_1_machine_options(MachineClass *m) +@@ -994,3 +996,207 @@ static void xenfv_3_1_machine_options(MachineClass *m) DEFINE_PC_MACHINE(xenfv, "xenfv-3.1", pc_xen_hvm_init, xenfv_3_1_machine_options); #endif @@ -606,7 +606,7 @@ index 18815e8302..eeadd896c2 100644 +DEFINE_PC_MACHINE(rhel700, "pc-i440fx-rhel7.0.0", pc_init_rhel700, + pc_machine_rhel700_options); diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c -index a1131e6825..1cd4e15297 100644 +index b8ea764ce3..f4edb049d6 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -201,8 +201,8 @@ static void pc_q35_init(MachineState *machine) @@ -620,7 +620,7 @@ index a1131e6825..1cd4e15297 100644 pcmc->smbios_uuid_encoded, pcmc->smbios_stream_product, pcmc->smbios_stream_version, -@@ -337,6 +337,7 @@ static void pc_q35_init(MachineState *machine) +@@ -336,6 +336,7 @@ static void pc_q35_init(MachineState *machine) DEFINE_PC_MACHINE(suffix, name, pc_init_##suffix, optionfn) @@ -628,7 +628,7 @@ index a1131e6825..1cd4e15297 100644 static void pc_q35_machine_options(MachineClass *m) { PCMachineClass *pcmc = PC_MACHINE_CLASS(m); -@@ -565,3 +566,160 @@ static void pc_q35_2_4_machine_options(MachineClass *m) +@@ -564,3 +565,160 @@ static void pc_q35_2_4_machine_options(MachineClass *m) DEFINE_Q35_MACHINE(v2_4, "pc-q35-2.4", NULL, pc_q35_2_4_machine_options); @@ -803,10 +803,10 @@ index 1062df96c0..c3577319c0 100644 int nb_nodes, ram_addr_t size); bool ignore_boot_device_suffixes; diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h -index 665c4309a2..95d07f81a0 100644 +index 951e825778..156be22995 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h -@@ -120,6 +120,9 @@ typedef struct PCMachineClass { +@@ -121,6 +121,9 @@ typedef struct PCMachineClass { /* use PVH to load kernels that support this feature */ bool pvh_enabled; @@ -816,7 +816,7 @@ index 665c4309a2..95d07f81a0 100644 } PCMachineClass; #define TYPE_PC_MACHINE "generic-pc-machine" -@@ -264,6 +267,36 @@ extern const size_t pc_compat_1_5_len; +@@ -265,6 +268,36 @@ extern const size_t pc_compat_1_5_len; extern GlobalProperty pc_compat_1_4[]; extern const size_t pc_compat_1_4_len; @@ -854,7 +854,7 @@ index 665c4309a2..95d07f81a0 100644 * depending on QEMU versions up to QEMU 2.4. */ diff --git a/target/i386/cpu.c b/target/i386/cpu.c -index 55a30cd4d9..5477433af5 100644 +index 030a5a09ed..cdaa1463f2 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -1830,7 +1830,7 @@ static X86CPUDefinition builtin_x86_defs[] = { @@ -864,9 +864,9 @@ index 55a30cd4d9..5477433af5 100644 - .model = 6, + .model = 13, .stepping = 3, - .features[FEAT_1_EDX] = CPUID_SSE2 | CPUID_SSE | CPUID_FXSR | - CPUID_MMX | CPUID_CLFLUSH | CPUID_PSE36 | CPUID_PAT | CPUID_CMOV | -@@ -4114,6 +4114,7 @@ static PropValue kvm_default_props[] = { + .features[FEAT_1_EDX] = + PPRO_FEATURES | +@@ -4142,6 +4142,7 @@ static PropValue kvm_default_props[] = { { "acpi", "off" }, { "monitor", "off" }, { "svm", "off" }, @@ -875,10 +875,10 @@ index 55a30cd4d9..5477433af5 100644 }; diff --git a/target/i386/kvm.c b/target/i386/kvm.c -index 6adbff3d74..51fbfd528e 100644 +index 6f18d940a5..98249b2e3b 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c -@@ -3139,6 +3139,7 @@ static int kvm_get_msrs(X86CPU *cpu) +@@ -3135,6 +3135,7 @@ static int kvm_get_msrs(X86CPU *cpu) struct kvm_msr_entry *msrs = cpu->kvm_msr_buf->entries; int ret, i; uint64_t mtrr_top_bits; @@ -886,7 +886,7 @@ index 6adbff3d74..51fbfd528e 100644 kvm_msr_buf_reset(cpu); -@@ -3448,6 +3449,9 @@ static int kvm_get_msrs(X86CPU *cpu) +@@ -3444,6 +3445,9 @@ static int kvm_get_msrs(X86CPU *cpu) break; case MSR_KVM_ASYNC_PF_EN: env->async_pf_en_msr = msrs[i].data; diff --git a/0012-Enable-make-check.patch b/0012-Enable-make-check.patch index 52af98e..1ce3d04 100644 --- a/0012-Enable-make-check.patch +++ b/0012-Enable-make-check.patch @@ -1,4 +1,4 @@ -From 93f9f7beccd34102c5c8e25c3b2b3888c61aa063 Mon Sep 17 00:00:00 2001 +From 69de445124e71df949a3d5289f8a10a5f771bac2 Mon Sep 17 00:00:00 2001 From: Miroslav Rezanina Date: Fri, 19 Oct 2018 13:48:41 +0200 Subject: Enable make check @@ -28,6 +28,9 @@ Rebase changes (weekly-200129): Rebased changes (weekly-200212): - Do not run iotests on make checka +Rebase changes (5.1.0-rc1): +- Enabled iotests 071 and 099 + Merged patches (4.0.0): - f7ffd13 Remove 7 qcow2 and luks iotests that are taking > 25 sec to run during the fast train build proce @@ -38,7 +41,6 @@ Signed-off-by: Danilo C. L. de Paula --- redhat/qemu-kvm.spec.template | 2 +- tests/qemu-iotests/051 | 12 ++++++------ - tests/qemu-iotests/group | 4 ++-- tests/qtest/Makefile.include | 12 ++++++------ tests/qtest/boot-serial-test.c | 6 +++++- tests/qtest/cpu-plug-test.c | 4 ++-- @@ -47,10 +49,10 @@ Signed-off-by: Danilo C. L. de Paula tests/qtest/prom-env-test.c | 4 ++++ tests/qtest/test-x86-cpuid-compat.c | 2 ++ tests/qtest/usb-hcd-xhci-test.c | 4 ++++ - 11 files changed, 38 insertions(+), 18 deletions(-) + 10 files changed, 36 insertions(+), 16 deletions(-) diff --git a/tests/qemu-iotests/051 b/tests/qemu-iotests/051 -index 034d3a3250..aadc413ee6 100755 +index bee26075b2..61d25c4ed7 100755 --- a/tests/qemu-iotests/051 +++ b/tests/qemu-iotests/051 @@ -183,11 +183,11 @@ run_qemu -drive if=virtio @@ -83,30 +85,8 @@ index 034d3a3250..aadc413ee6 100755 ;; *) ;; -diff --git a/tests/qemu-iotests/group b/tests/qemu-iotests/group -index 9b07a7ed03..c678d915b2 100644 ---- a/tests/qemu-iotests/group -+++ b/tests/qemu-iotests/group -@@ -92,7 +92,7 @@ - 068 rw quick - 069 rw auto quick - 070 rw quick --071 rw auto quick -+# 071 rw auto quick -- requires whitelisted blkverify - 072 rw auto quick - 073 rw auto quick - 074 rw auto quick -@@ -120,7 +120,7 @@ - 096 rw quick - 097 rw auto backing - 098 rw auto backing quick --099 rw auto quick -+# 099 rw auto quick -- requires whitelisted blkverify - # 100 was removed, do not reuse - 101 rw quick - 102 rw quick diff --git a/tests/qtest/Makefile.include b/tests/qtest/Makefile.include -index 98af2c2d93..d370459c3a 100644 +index b0204e44f2..cf8a138791 100644 --- a/tests/qtest/Makefile.include +++ b/tests/qtest/Makefile.include @@ -29,7 +29,7 @@ check-qtest-i386-y += ide-test @@ -127,7 +107,7 @@ index 98af2c2d93..d370459c3a 100644 check-qtest-i386-y += vmgenid-test check-qtest-i386-$(CONFIG_TPM_CRB) += tpm-crb-swtpm-test check-qtest-i386-$(CONFIG_TPM_CRB) += tpm-crb-test -@@ -88,7 +88,7 @@ check-qtest-mips64el-$(CONFIG_VGA) += display-vga-test +@@ -90,7 +90,7 @@ check-qtest-mips64el-$(CONFIG_VGA) += display-vga-test check-qtest-moxie-y += boot-serial-test check-qtest-ppc-$(CONFIG_ISA_TESTDEV) = endianness-test @@ -136,7 +116,7 @@ index 98af2c2d93..d370459c3a 100644 check-qtest-ppc-y += prom-env-test check-qtest-ppc-y += drive_del-test check-qtest-ppc-y += boot-serial-test -@@ -102,8 +102,8 @@ check-qtest-ppc64-$(CONFIG_PSERIES) += rtas-test +@@ -104,8 +104,8 @@ check-qtest-ppc64-$(CONFIG_PSERIES) += rtas-test check-qtest-ppc64-$(CONFIG_SLIRP) += pxe-test check-qtest-ppc64-$(CONFIG_USB_UHCI) += usb-hcd-uhci-test check-qtest-ppc64-$(CONFIG_USB_XHCI_NEC) += usb-hcd-xhci-test @@ -147,7 +127,7 @@ index 98af2c2d93..d370459c3a 100644 check-qtest-ppc64-$(CONFIG_RTL8139_PCI) += test-filter-redirector check-qtest-ppc64-$(CONFIG_VGA) += display-vga-test check-qtest-ppc64-y += numa-test -@@ -152,7 +152,7 @@ check-qtest-s390x-$(CONFIG_SLIRP) += test-netfilter +@@ -154,7 +154,7 @@ check-qtest-s390x-$(CONFIG_SLIRP) += test-netfilter check-qtest-s390x-$(CONFIG_POSIX) += test-filter-mirror check-qtest-s390x-$(CONFIG_POSIX) += test-filter-redirector check-qtest-s390x-y += drive_del-test @@ -157,10 +137,10 @@ index 98af2c2d93..d370459c3a 100644 check-qtest-s390x-y += cpu-plug-test check-qtest-s390x-y += migration-test diff --git a/tests/qtest/boot-serial-test.c b/tests/qtest/boot-serial-test.c -index 85a3614286..1c18441334 100644 +index bfe7624dc6..1ffaa0bd7e 100644 --- a/tests/qtest/boot-serial-test.c +++ b/tests/qtest/boot-serial-test.c -@@ -109,19 +109,23 @@ static testdef_t tests[] = { +@@ -120,19 +120,23 @@ static testdef_t tests[] = { { "ppc", "g3beige", "", "PowerPC,750" }, { "ppc", "mac99", "", "PowerPC,G4" }, { "ppc", "sam460ex", "-m 256", "DRAM: 256 MiB" }, diff --git a/0013-vfio-cap-number-of-devices-that-can-be-assigned.patch b/0013-vfio-cap-number-of-devices-that-can-be-assigned.patch index cbf42e0..428a3f9 100644 --- a/0013-vfio-cap-number-of-devices-that-can-be-assigned.patch +++ b/0013-vfio-cap-number-of-devices-that-can-be-assigned.patch @@ -1,4 +1,4 @@ -From ac9ff21203ff07854c232464d96e1f35741af8a6 Mon Sep 17 00:00:00 2001 +From 08d751996b6c983d037134551f1c4b4691989168 Mon Sep 17 00:00:00 2001 From: Bandan Das Date: Tue, 3 Dec 2013 20:05:13 +0100 Subject: vfio: cap number of devices that can be assigned @@ -42,7 +42,7 @@ Signed-off-by: Danilo C. L. de Paula 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c -index d020ea9f82..e4292ea2b4 100644 +index 2e561c06d6..be1b843e7f 100644 --- a/hw/vfio/pci.c +++ b/hw/vfio/pci.c @@ -47,6 +47,9 @@ @@ -55,7 +55,7 @@ index d020ea9f82..e4292ea2b4 100644 static void vfio_disable_interrupts(VFIOPCIDevice *vdev); static void vfio_mmap_set_enabled(VFIOPCIDevice *vdev, bool enabled); -@@ -2715,9 +2718,30 @@ static void vfio_realize(PCIDevice *pdev, Error **errp) +@@ -2712,9 +2715,30 @@ static void vfio_realize(PCIDevice *pdev, Error **errp) ssize_t len; struct stat st; int groupid; @@ -87,7 +87,7 @@ index d020ea9f82..e4292ea2b4 100644 if (!vdev->vbasedev.sysfsdev) { if (!(~vdev->host.domain || ~vdev->host.bus || ~vdev->host.slot || ~vdev->host.function)) { -@@ -3162,6 +3186,9 @@ static Property vfio_pci_dev_properties[] = { +@@ -3158,6 +3182,9 @@ static Property vfio_pci_dev_properties[] = { DEFINE_PROP_BOOL("x-no-kvm-msix", VFIOPCIDevice, no_kvm_msix, false), DEFINE_PROP_BOOL("x-no-geforce-quirks", VFIOPCIDevice, no_geforce_quirks, false), diff --git a/0014-Add-support-statement-to-help-output.patch b/0014-Add-support-statement-to-help-output.patch index 2ef2119..2e97d83 100644 --- a/0014-Add-support-statement-to-help-output.patch +++ b/0014-Add-support-statement-to-help-output.patch @@ -1,4 +1,4 @@ -From 0f0f3ab53bc61fbf66e546ab6bd22d1a60102b79 Mon Sep 17 00:00:00 2001 +From 5ee503bc80a271f9b0fcf3d24df42ee3f8c7d687 Mon Sep 17 00:00:00 2001 From: Eduardo Habkost Date: Wed, 4 Dec 2013 18:53:17 +0100 Subject: Add support statement to -help output @@ -24,10 +24,10 @@ Signed-off-by: Danilo C. L. de Paula 1 file changed, 9 insertions(+) diff --git a/softmmu/vl.c b/softmmu/vl.c -index 6509057752..8453de5e68 100644 +index a1fb06dca0..3c383911cd 100644 --- a/softmmu/vl.c +++ b/softmmu/vl.c -@@ -1674,9 +1674,17 @@ static void version(void) +@@ -1686,9 +1686,17 @@ static void version(void) QEMU_COPYRIGHT "\n"); } @@ -45,7 +45,7 @@ index 6509057752..8453de5e68 100644 printf("usage: %s [options] [disk_image]\n\n" "'disk_image' is a raw hard disk image for IDE hard disk 0\n\n", error_get_progname()); -@@ -1693,6 +1701,7 @@ static void help(int exitcode) +@@ -1705,6 +1713,7 @@ static void help(int exitcode) "\n" QEMU_HELP_BOTTOM "\n"); diff --git a/0015-globally-limit-the-maximum-number-of-CPUs.patch b/0015-globally-limit-the-maximum-number-of-CPUs.patch index e5bb3c8..a6ee268 100644 --- a/0015-globally-limit-the-maximum-number-of-CPUs.patch +++ b/0015-globally-limit-the-maximum-number-of-CPUs.patch @@ -1,4 +1,4 @@ -From 47faf13d999995693d505074ee73d4908356888b Mon Sep 17 00:00:00 2001 +From edf9e38a2ef58908f45e37a63746926a494f9057 Mon Sep 17 00:00:00 2001 From: Andrew Jones Date: Tue, 21 Jan 2014 10:46:52 +0100 Subject: globally limit the maximum number of CPUs @@ -82,7 +82,7 @@ Signed-off-by: Danilo C. L. de Paula 2 files changed, 30 insertions(+) diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c -index ab36fbfa0c..6f6bb47d9a 100644 +index 63ef6af9a1..db9a6b38b1 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -2088,6 +2088,18 @@ static int kvm_init(MachineState *ms) @@ -105,7 +105,7 @@ index ab36fbfa0c..6f6bb47d9a 100644 if (nc->num > soft_vcpus_limit) { warn_report("Number of %s cpus requested (%d) exceeds " diff --git a/softmmu/vl.c b/softmmu/vl.c -index 8453de5e68..ea6e9e4f01 100644 +index 3c383911cd..62fc7c898f 100644 --- a/softmmu/vl.c +++ b/softmmu/vl.c @@ -116,6 +116,8 @@ @@ -117,7 +117,7 @@ index 8453de5e68..ea6e9e4f01 100644 static const char *data_dir[16]; static int data_dir_idx; const char *bios_name = NULL; -@@ -1177,6 +1179,20 @@ static MachineClass *find_default_machine(GSList *machines) +@@ -1189,6 +1191,20 @@ static MachineClass *find_default_machine(GSList *machines) return default_machineclass; } @@ -138,7 +138,7 @@ index 8453de5e68..ea6e9e4f01 100644 static int machine_help_func(QemuOpts *opts, MachineState *machine) { ObjectProperty *prop; -@@ -3831,6 +3847,8 @@ void qemu_init(int argc, char **argv, char **envp) +@@ -3845,6 +3861,8 @@ void qemu_init(int argc, char **argv, char **envp) "mutually exclusive"); exit(EXIT_FAILURE); } diff --git a/0016-Add-support-for-simpletrace.patch b/0016-Add-support-for-simpletrace.patch index 7309f2c..3c79abb 100644 --- a/0016-Add-support-for-simpletrace.patch +++ b/0016-Add-support-for-simpletrace.patch @@ -1,4 +1,4 @@ -From bc118b0038083bcd54a970ed0a6c92f9d55759e2 Mon Sep 17 00:00:00 2001 +From 9238ce7ba819979c2df2caa49c5db3185376fedd Mon Sep 17 00:00:00 2001 From: Miroslav Rezanina Date: Thu, 8 Oct 2015 09:50:17 +0200 Subject: Add support for simpletrace @@ -39,10 +39,10 @@ Signed-off-by: Danilo C. L. de Paula create mode 100644 scripts/systemtap/script.d/qemu_kvm.stp diff --git a/Makefile b/Makefile -index 88b7565246..045eeb545e 100644 +index 42e854b2b1..3b9ff25f10 100644 --- a/Makefile +++ b/Makefile -@@ -995,6 +995,10 @@ endif +@@ -996,6 +996,10 @@ endif $(INSTALL_DATA) $(SRC_PATH)/pc-bios/keymaps/$$x "$(DESTDIR)$(qemu_datadir)/keymaps"; \ done $(INSTALL_DATA) $(BUILD_DIR)/trace-events-all "$(DESTDIR)$(qemu_datadir)/trace-events-all" diff --git a/0017-Use-qemu-kvm-in-documentation-instead-of-qemu-system.patch b/0017-Use-qemu-kvm-in-documentation-instead-of-qemu-system.patch index 48d46dc..4ca0022 100644 --- a/0017-Use-qemu-kvm-in-documentation-instead-of-qemu-system.patch +++ b/0017-Use-qemu-kvm-in-documentation-instead-of-qemu-system.patch @@ -1,4 +1,4 @@ -From cc88b2746e9e8cfa6816e871ca282cddb07a0146 Mon Sep 17 00:00:00 2001 +From 44c255eddd3096d63ebdc055181d3fcebe202eef Mon Sep 17 00:00:00 2001 From: Miroslav Rezanina Date: Wed, 8 Jul 2020 08:35:50 +0200 Subject: Use qemu-kvm in documentation instead of qemu-system- @@ -142,10 +142,10 @@ index 824e713491..8449936c63 100644 -device vhost-user-fs-pci,chardev=char0,tag=myfs \ -object memory-backend-memfd,id=mem,size=4G,share=on \ diff --git a/qemu-options.hx b/qemu-options.hx -index b9699440a3..fe85a0e952 100644 +index 1700205035..697276859b 100644 --- a/qemu-options.hx +++ b/qemu-options.hx -@@ -2891,11 +2891,11 @@ SRST +@@ -2900,11 +2900,11 @@ SRST :: diff --git a/0018-usb-xhci-Fix-PCI-capability-order.patch b/0018-usb-xhci-Fix-PCI-capability-order.patch index f4c5de6..7549bdb 100644 --- a/0018-usb-xhci-Fix-PCI-capability-order.patch +++ b/0018-usb-xhci-Fix-PCI-capability-order.patch @@ -1,4 +1,4 @@ -From 1cd3f04262da39a69509435c1db96c0c2a8ebd62 Mon Sep 17 00:00:00 2001 +From 5bb61f2b69d9880dea36d604719ee7bd4cf74ba6 Mon Sep 17 00:00:00 2001 From: "Dr. David Alan Gilbert" Date: Fri, 5 May 2017 19:06:14 +0200 Subject: usb-xhci: Fix PCI capability order @@ -62,7 +62,7 @@ Signed-off-by: Danilo C. L. de Paula 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c -index b25cce8f0c..9582d81d14 100644 +index 38bdfaf3fd..4acd7842ac 100644 --- a/hw/usb/hcd-xhci.c +++ b/hw/usb/hcd-xhci.c @@ -3413,6 +3413,12 @@ static void usb_xhci_realize(struct PCIDevice *dev, Error **errp) diff --git a/0019-virtio-scsi-Reject-scsi-cd-if-data-plane-enabled-RHE.patch b/0019-virtio-scsi-Reject-scsi-cd-if-data-plane-enabled-RHE.patch index 94a535a..269d357 100644 --- a/0019-virtio-scsi-Reject-scsi-cd-if-data-plane-enabled-RHE.patch +++ b/0019-virtio-scsi-Reject-scsi-cd-if-data-plane-enabled-RHE.patch @@ -1,4 +1,4 @@ -From 766fb0162dea8353a39f6eeff5ba90309cb0338e Mon Sep 17 00:00:00 2001 +From 63a330ad8eeb2025c12d56714cb1271196f80dbe Mon Sep 17 00:00:00 2001 From: Fam Zheng Date: Wed, 14 Jun 2017 15:37:01 +0200 Subject: virtio-scsi: Reject scsi-cd if data plane enabled [RHEL only] diff --git a/0020-BZ1653590-Require-at-least-64kiB-pages-for-downstrea.patch b/0020-BZ1653590-Require-at-least-64kiB-pages-for-downstrea.patch index b6808d3..00b6ba7 100644 --- a/0020-BZ1653590-Require-at-least-64kiB-pages-for-downstrea.patch +++ b/0020-BZ1653590-Require-at-least-64kiB-pages-for-downstrea.patch @@ -1,4 +1,4 @@ -From ff6425248e516c678db5bb85d59b5811c48bedaf Mon Sep 17 00:00:00 2001 +From 9ff2cc74cd1f41abc4b379fbaaaaa03a30415494 Mon Sep 17 00:00:00 2001 From: David Gibson Date: Wed, 6 Feb 2019 03:58:56 +0000 Subject: BZ1653590: Require at least 64kiB pages for downstream guests & hosts @@ -32,10 +32,10 @@ Signed-off-by: Danilo C. L. de Paula 1 file changed, 7 insertions(+) diff --git a/hw/ppc/spapr_caps.c b/hw/ppc/spapr_caps.c -index 0c2bc8e06e..15bef3d27f 100644 +index 3225fc5a2e..08ae7724d5 100644 --- a/hw/ppc/spapr_caps.c +++ b/hw/ppc/spapr_caps.c -@@ -335,12 +335,19 @@ void spapr_check_pagesize(SpaprMachineState *spapr, hwaddr pagesize, +@@ -326,12 +326,19 @@ void spapr_check_pagesize(SpaprMachineState *spapr, hwaddr pagesize, static void cap_hpt_maxpagesize_apply(SpaprMachineState *spapr, uint8_t val, Error **errp) { diff --git a/0021-block-Versioned-x-blockdev-reopen-API-with-feature-f.patch b/0021-block-Versioned-x-blockdev-reopen-API-with-feature-f.patch index 55de732..eaaf5a3 100644 --- a/0021-block-Versioned-x-blockdev-reopen-API-with-feature-f.patch +++ b/0021-block-Versioned-x-blockdev-reopen-API-with-feature-f.patch @@ -1,4 +1,4 @@ -From 2ce0d065e712fdfae74a52cfa5188791eaa7f848 Mon Sep 17 00:00:00 2001 +From e27f3d72ac38e37758d4ea5b84bccf03cab8219a Mon Sep 17 00:00:00 2001 From: Kevin Wolf Date: Fri, 13 Mar 2020 12:34:32 +0000 Subject: block: Versioned x-blockdev-reopen API with feature flag @@ -29,10 +29,10 @@ Signed-off-by: Danilo C. L. de Paula 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/qapi/block-core.json b/qapi/block-core.json -index b20332e592..db4544df75 100644 +index 197bdc1c36..efc0f6a377 100644 --- a/qapi/block-core.json +++ b/qapi/block-core.json -@@ -4135,10 +4135,17 @@ +@@ -4118,10 +4118,17 @@ # image does not have a default backing file name as part of its # metadata. # diff --git a/0024-RHEL-only-Enable-vTPM-for-POWER-in-downstream-config.patch b/0022-RHEL-only-Enable-vTPM-for-POWER-in-downstream-config.patch similarity index 90% rename from 0024-RHEL-only-Enable-vTPM-for-POWER-in-downstream-config.patch rename to 0022-RHEL-only-Enable-vTPM-for-POWER-in-downstream-config.patch index edd80d0..7bafd66 100644 --- a/0024-RHEL-only-Enable-vTPM-for-POWER-in-downstream-config.patch +++ b/0022-RHEL-only-Enable-vTPM-for-POWER-in-downstream-config.patch @@ -1,6 +1,6 @@ -From 64afb1a8b06f0017b3ee5eb59790e1751424b1d5 Mon Sep 17 00:00:00 2001 +From f70eb50b7107ee4e18cec3561bbdde1cbd0a0bdb Mon Sep 17 00:00:00 2001 From: David Gibson -Date: Fri, 22 May 2020 02:27:18 +0000 +Date: Mon, 27 Jul 2020 13:29:01 +0200 Subject: RHEL-only: Enable vTPM for POWER in downstream configs RH-Author: David Gibson @@ -23,6 +23,7 @@ Brew: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=28742072 Testing: With brewed qemu was able to see a vTPM device in a guest Signed-off-by: David Gibson +Signed-off-by: Miroslav Rezanina Signed-off-by: Danilo C. L. de Paula --- default-configs/ppc64-rh-devices.mak | 3 +++ diff --git a/0022-virtio-net-fix-removal-of-failover-device.patch b/0022-virtio-net-fix-removal-of-failover-device.patch deleted file mode 100644 index ca33979..0000000 --- a/0022-virtio-net-fix-removal-of-failover-device.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 0e4d9f0332efd8417831815a414a5131f85e0a85 Mon Sep 17 00:00:00 2001 -From: Juan Quintela -Date: Fri, 3 Jul 2020 12:37:05 -0400 -Subject: virtio-net: fix removal of failover device - -RH-Author: Juan Quintela -Message-id: <20200703123705.7175-2-quintela@redhat.com> -Patchwork-id: 97901 -O-Subject: [RHEL-AV-8.2.1 qemu-kvm PATCH 1/1] virtio-net: fix removal of failover device -Bugzilla: 1820120 -RH-Acked-by: Stefan Hajnoczi -RH-Acked-by: Laurent Vivier -RH-Acked-by: Dr. David Alan Gilbert - -If you have a networking device and its virtio failover device, and -you remove them in this order: -- virtio device -- the real device - -You get qemu crash. -See bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1820120 - -Bug exist on qemu 4.2 and 5.0. -But in 5.0 don't shows because commit -77b06bba62034a87cc61a9c8de1309ae3e527d97 - -somehow papers over it. - -CC: Jason Wang -CC: Michael S. Tsirkin - -Signed-off-by: Juan Quintela -Signed-off-by: Danilo C. L. de Paula ---- - hw/net/virtio-net.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c -index 1596cb1397..f82455ba5d 100644 ---- a/hw/net/virtio-net.c -+++ b/hw/net/virtio-net.c -@@ -3417,6 +3417,7 @@ static void virtio_net_device_unrealize(DeviceState *dev) - g_free(n->vlans); - - if (n->failover) { -+ device_listener_unregister(&n->primary_listener); - g_free(n->primary_device_id); - g_free(n->standby_id); - qobject_unref(n->primary_device_dict); --- -2.27.0 - diff --git a/0025-redhat-fix-5.0-rebase-missing-ISA-TPM-TIS.patch b/0023-redhat-fix-5.0-rebase-missing-ISA-TPM-TIS.patch similarity index 86% rename from 0025-redhat-fix-5.0-rebase-missing-ISA-TPM-TIS.patch rename to 0023-redhat-fix-5.0-rebase-missing-ISA-TPM-TIS.patch index 87ec07a..7489bf1 100644 --- a/0025-redhat-fix-5.0-rebase-missing-ISA-TPM-TIS.patch +++ b/0023-redhat-fix-5.0-rebase-missing-ISA-TPM-TIS.patch @@ -1,6 +1,6 @@ -From def5545e3588c8b8c7cd12e3ff8967ce059d3f38 Mon Sep 17 00:00:00 2001 +From 69d8ae7ad5314e465c24fdeb1317751fa3e50ceb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= -Date: Mon, 8 Jun 2020 15:54:26 -0400 +Date: Mon, 27 Jul 2020 13:29:01 +0200 Subject: redhat: fix 5.0 rebase missing ISA TPM TIS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -20,7 +20,8 @@ BRANCH: rhel-av-8.3.0-preview-2020-04-29 UPSTREAM: N/A BREW: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=29172313 -Signed-off-by: Marc-André Lureau +Signed-off-by: Marc-André Lureau +Signed-off-by: Miroslav Rezanina Signed-off-by: Danilo C. L. de Paula --- default-configs/x86_64-rh-devices.mak | 2 +- diff --git a/0026-redhat-define-hw_compat_8_2.patch b/0024-redhat-define-hw_compat_8_2.patch similarity index 93% rename from 0026-redhat-define-hw_compat_8_2.patch rename to 0024-redhat-define-hw_compat_8_2.patch index 229c59c..c31fdde 100644 --- a/0026-redhat-define-hw_compat_8_2.patch +++ b/0024-redhat-define-hw_compat_8_2.patch @@ -1,6 +1,6 @@ -From f8f3c2d598ca5921b6a5d477e848f02977c715fd Mon Sep 17 00:00:00 2001 +From 83486421151111ec118cc703819bd4764fea677e Mon Sep 17 00:00:00 2001 From: "Dr. David Alan Gilbert" -Date: Fri, 19 Jun 2020 15:42:26 -0400 +Date: Mon, 27 Jul 2020 13:29:01 +0200 Subject: redhat: define hw_compat_8_2 RH-Author: Dr. David Alan Gilbert @@ -17,6 +17,8 @@ From: Laurent Vivier Signed-off-by: Laurent Vivier Signed-off-by: Dr. David Alan Gilbert For minor fix + +Signed-off-by: Miroslav Rezanina Signed-off-by: Danilo C. L. de Paula --- hw/core/machine.c | 28 ++++++++++++++++++++++++++++ @@ -24,7 +26,7 @@ Signed-off-by: Danilo C. L. de Paula 2 files changed, 31 insertions(+) diff --git a/hw/core/machine.c b/hw/core/machine.c -index ef6b320ea7..b8373991e9 100644 +index 2b8e480040..5476af98e1 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -28,6 +28,34 @@ diff --git a/0027-x86-Add-8.3.0-x86_64-machine-type.patch b/0025-x86-Add-8.3.0-x86_64-machine-type.patch similarity index 86% rename from 0027-x86-Add-8.3.0-x86_64-machine-type.patch rename to 0025-x86-Add-8.3.0-x86_64-machine-type.patch index cee8833..70da7fa 100644 --- a/0027-x86-Add-8.3.0-x86_64-machine-type.patch +++ b/0025-x86-Add-8.3.0-x86_64-machine-type.patch @@ -1,6 +1,6 @@ -From 8b509ce5c11a82d05ad0d43270e4b76e0010015b Mon Sep 17 00:00:00 2001 +From b02c9f5373f6ffa65b8ddbdee32d6ed4e59198ad Mon Sep 17 00:00:00 2001 From: "Dr. David Alan Gilbert" -Date: Fri, 19 Jun 2020 15:42:27 -0400 +Date: Mon, 27 Jul 2020 13:29:01 +0200 Subject: x86: Add 8.3.0 x86_64 machine type RH-Author: Dr. David Alan Gilbert @@ -17,6 +17,7 @@ From: "Dr. David Alan Gilbert" Not much change, just the smbase-smram. Signed-off-by: Dr. David Alan Gilbert +Signed-off-by: Miroslav Rezanina Signed-off-by: Danilo C. L. de Paula --- hw/i386/pc.c | 6 ++++++ @@ -26,10 +27,10 @@ Signed-off-by: Danilo C. L. de Paula 4 files changed, 35 insertions(+) diff --git a/hw/i386/pc.c b/hw/i386/pc.c -index fe37bdec7a..94c857ea97 100644 +index 063f01d19a..a75e0137ab 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c -@@ -360,6 +360,12 @@ GlobalProperty pc_rhel_compat[] = { +@@ -361,6 +361,12 @@ GlobalProperty pc_rhel_compat[] = { }; const size_t pc_rhel_compat_len = G_N_ELEMENTS(pc_rhel_compat); @@ -43,10 +44,10 @@ index fe37bdec7a..94c857ea97 100644 GlobalProperty pc_rhel_8_1_compat[] = { }; const size_t pc_rhel_8_1_compat_len = G_N_ELEMENTS(pc_rhel_8_1_compat); diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c -index eeadd896c2..f14ddcb472 100644 +index 6d935645b6..4af4497a0c 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c -@@ -1028,6 +1028,10 @@ static void pc_machine_rhel760_options(MachineClass *m) +@@ -1030,6 +1030,10 @@ static void pc_machine_rhel760_options(MachineClass *m) m->smbus_no_migration_support = true; pcmc->pvh_enabled = false; pcmc->default_cpu_version = CPU_VERSION_LEGACY; @@ -58,10 +59,10 @@ index eeadd896c2..f14ddcb472 100644 compat_props_add(m->compat_props, pc_rhel_8_1_compat, pc_rhel_8_1_compat_len); compat_props_add(m->compat_props, hw_compat_rhel_8_0, hw_compat_rhel_8_0_len); diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c -index 1cd4e15297..b9e8dcb392 100644 +index f4edb049d6..d75d6d8805 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c -@@ -590,6 +590,23 @@ static void pc_q35_machine_rhel_options(MachineClass *m) +@@ -589,6 +589,23 @@ static void pc_q35_machine_rhel_options(MachineClass *m) compat_props_add(m->compat_props, pc_rhel_compat, pc_rhel_compat_len); } @@ -85,7 +86,7 @@ index 1cd4e15297..b9e8dcb392 100644 static void pc_q35_init_rhel820(MachineState *machine) { pc_q35_init(machine); -@@ -600,8 +617,13 @@ static void pc_q35_machine_rhel820_options(MachineClass *m) +@@ -599,8 +616,13 @@ static void pc_q35_machine_rhel820_options(MachineClass *m) PCMachineClass *pcmc = PC_MACHINE_CLASS(m); pc_q35_machine_rhel_options(m); m->desc = "RHEL-8.2.0 PC (Q35 + ICH9, 2009)"; @@ -100,10 +101,10 @@ index 1cd4e15297..b9e8dcb392 100644 DEFINE_PC_MACHINE(q35_rhel820, "pc-q35-rhel8.2.0", pc_q35_init_rhel820, diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h -index 95d07f81a0..e67468ba41 100644 +index 156be22995..e9dc8c370c 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h -@@ -270,6 +270,9 @@ extern const size_t pc_compat_1_4_len; +@@ -271,6 +271,9 @@ extern const size_t pc_compat_1_4_len; extern GlobalProperty pc_rhel_compat[]; extern const size_t pc_rhel_compat_len; diff --git a/0027-hw-arm-Changes-to-rhel820-machine.patch b/0027-hw-arm-Changes-to-rhel820-machine.patch new file mode 100644 index 0000000..84c289c --- /dev/null +++ b/0027-hw-arm-Changes-to-rhel820-machine.patch @@ -0,0 +1,82 @@ +From 12990ad9479216d96e4d67a7e613d2ef3b4fb700 Mon Sep 17 00:00:00 2001 +From: Gavin Shan +Date: Wed, 12 Aug 2020 10:58:04 +0200 +Subject: hw/arm: Changes to rhel820 machine + +RH-Author: Gavin Shan +Message-id: <20200630013648.101937-1-gshan@redhat.com> +Patchwork-id: 97844 +O-Subject: [RHEL-AV 8.3.0 qemu-kvm PATCH v5 1/3] hw/arm: Changes to rhel820 machine +Bugzilla: 1818843 +RH-Acked-by: Auger Eric +RH-Acked-by: Miroslav Rezanina +RH-Acked-by: Andrew Jones + +This applies two changes to rhel820 machine: + + * Set the gic version to VIRT_GIC_VERSION_NOSEL by default, which + doesn't cause functional changes. + * Disallow to configure the RAS property, which is hidden by default. + +Signed-off-by: Gavin Shan +RH-Acked-by: Auger Eric +RH-Acked-by: Andrew Jones +Signed-off-by: Miroslav Rezanina +Signed-off-by: Danilo C. L. de Paula +--- + hw/arm/virt.c | 17 +++++------------ + 1 file changed, 5 insertions(+), 12 deletions(-) + +diff --git a/hw/arm/virt.c b/hw/arm/virt.c +index e1a17e7c87..c22e1e6d5c 100644 +--- a/hw/arm/virt.c ++++ b/hw/arm/virt.c +@@ -2105,6 +2105,7 @@ static void virt_set_acpi(Object *obj, Visitor *v, const char *name, + visit_type_OnOffAuto(v, name, &vms->acpi, errp); + } + ++#if 0 /* Disabled for Red Hat Enterprise Linux */ + static bool virt_get_ras(Object *obj, Error **errp) + { + VirtMachineState *vms = VIRT_MACHINE(obj); +@@ -2125,6 +2126,7 @@ static bool virt_get_mte(Object *obj, Error **errp) + + return vms->mte; + } ++#endif /* disabled for RHEL */ + + static void virt_set_mte(Object *obj, bool value, Error **errp) + { +@@ -2802,12 +2804,8 @@ static void rhel820_virt_instance_init(Object *obj) + object_property_set_description(obj, "highmem", + "Set on/off to enable/disable using " + "physical address space above 32 bits"); +- /* +- * Default GIC type is still v2, but became configurable for RHEL. We +- * keep v2 instead of max as TCG CI test cases require an MSI controller +- * and there is no userspace ITS MSI emulation available. +- */ +- vms->gic_version = 2; ++ ++ vms->gic_version = VIRT_GIC_VERSION_NOSEL; + object_property_add_str(obj, "gic-version", virt_get_gic_version, + virt_set_gic_version); + object_property_set_description(obj, "gic-version", +@@ -2834,13 +2832,8 @@ static void rhel820_virt_instance_init(Object *obj) + object_property_set_description(obj, "iommu", + "Set the IOMMU type. " + "Valid values are none and smmuv3"); +- vms->ras = false; +- object_property_add_bool(obj, "ras", virt_get_ras, +- virt_set_ras); +- object_property_set_description(obj, "ras", +- "Set on/off to enable/disable reporting host memory errors " +- "to a KVM guest using ACPI and guest external abort exceptions"); + ++ vms->ras = false; + /* MTE is disabled by default. */ + vms->mte = false; + +-- +2.27.0 + diff --git a/0028-hw-arm-Introduce-rhel_virt_instance_init-helper.patch b/0028-hw-arm-Introduce-rhel_virt_instance_init-helper.patch new file mode 100644 index 0000000..04d0eda --- /dev/null +++ b/0028-hw-arm-Introduce-rhel_virt_instance_init-helper.patch @@ -0,0 +1,53 @@ +From 46d5a797986373ecc0dfa578cae07a3641847935 Mon Sep 17 00:00:00 2001 +From: Gavin Shan +Date: Wed, 12 Aug 2020 10:58:04 +0200 +Subject: hw/arm: Introduce rhel_virt_instance_init() helper + +RH-Author: Gavin Shan +Message-id: <20200629022939.76453-3-gshan@redhat.com> +Patchwork-id: 97838 +O-Subject: [RHEL-AV 8.3.0 qemu-kvm PATCH v4 2/3] hw/arm: Introduce rhel_virt_instance_init() helper +Bugzilla: 1818843 +RH-Acked-by: Auger Eric +RH-Acked-by: Miroslav Rezanina +RH-Acked-by: Andrew Jones + +This introduces rhel_virt_instance_init() helper function so that +it can be shared by rhel820 and rhel830 machine. This shouldn't +cause functional changes. + +Signed-off-by: Gavin Shan +Signed-off-by: Miroslav Rezanina +Signed-off-by: Danilo C. L. de Paula +--- + hw/arm/virt.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/hw/arm/virt.c b/hw/arm/virt.c +index c22e1e6d5c..650668a8d1 100644 +--- a/hw/arm/virt.c ++++ b/hw/arm/virt.c +@@ -2788,7 +2788,7 @@ static void rhel_machine_init(void) + } + type_init(rhel_machine_init); + +-static void rhel820_virt_instance_init(Object *obj) ++static void rhel_virt_instance_init(Object *obj) + { + VirtMachineState *vms = VIRT_MACHINE(obj); + VirtMachineClass *vmc = VIRT_MACHINE_GET_CLASS(vms); +@@ -2841,6 +2841,11 @@ static void rhel820_virt_instance_init(Object *obj) + virt_flash_create(vms); + } + ++static void rhel820_virt_instance_init(Object *obj) ++{ ++ rhel_virt_instance_init(obj); ++} ++ + static void rhel820_virt_options(MachineClass *mc) + { + compat_props_add(mc->compat_props, arm_rhel_compat, arm_rhel_compat_len); +-- +2.27.0 + diff --git a/0029-hw-arm-Add-rhel830-machine-type.patch b/0029-hw-arm-Add-rhel830-machine-type.patch new file mode 100644 index 0000000..af129dc --- /dev/null +++ b/0029-hw-arm-Add-rhel830-machine-type.patch @@ -0,0 +1,61 @@ +From 098954acda750a54d2eb512297bcd205212ee718 Mon Sep 17 00:00:00 2001 +From: Gavin Shan +Date: Wed, 12 Aug 2020 10:58:04 +0200 +Subject: hw/arm: Add rhel830 machine type + +RH-Author: Gavin Shan +Message-id: <20200630014756.102753-1-gshan@redhat.com> +Patchwork-id: 97845 +O-Subject: [RHEL-AV 8.3.0 qemu-kvm PATCH v5 3/3] hw/arm: Add rhel830 machine type +Bugzilla: 1818843 +RH-Acked-by: Auger Eric +RH-Acked-by: Miroslav Rezanina +RH-Acked-by: Andrew Jones + +This adds rhel830 machine type, whose properties are same as to +rhel820. + +Signed-off-by: Gavin Shan +RH-Acked-by: Auger Eric +Signed-off-by: Miroslav Rezanina +Signed-off-by: Danilo C. L. de Paula +--- + hw/arm/virt.c | 17 +++++++++++++++-- + 1 file changed, 15 insertions(+), 2 deletions(-) + +diff --git a/hw/arm/virt.c b/hw/arm/virt.c +index 650668a8d1..48b58be597 100644 +--- a/hw/arm/virt.c ++++ b/hw/arm/virt.c +@@ -2841,6 +2841,17 @@ static void rhel_virt_instance_init(Object *obj) + virt_flash_create(vms); + } + ++static void rhel830_virt_instance_init(Object *obj) ++{ ++ rhel_virt_instance_init(obj); ++} ++ ++static void rhel830_virt_options(MachineClass *mc) ++{ ++ compat_props_add(mc->compat_props, arm_rhel_compat, arm_rhel_compat_len); ++} ++DEFINE_RHEL_MACHINE_AS_LATEST(8, 3, 0) ++ + static void rhel820_virt_instance_init(Object *obj) + { + rhel_virt_instance_init(obj); +@@ -2848,6 +2859,8 @@ static void rhel820_virt_instance_init(Object *obj) + + static void rhel820_virt_options(MachineClass *mc) + { +- compat_props_add(mc->compat_props, arm_rhel_compat, arm_rhel_compat_len); ++ rhel830_virt_options(mc); ++ compat_props_add(mc->compat_props, hw_compat_rhel_8_2, ++ hw_compat_rhel_8_2_len); + } +-DEFINE_RHEL_MACHINE_AS_LATEST(8, 2, 0) ++DEFINE_RHEL_MACHINE(8, 2, 0) +-- +2.27.0 + diff --git a/0030-redhat-define-pseries-rhel8.3.0-machine-type.patch b/0030-redhat-define-pseries-rhel8.3.0-machine-type.patch new file mode 100644 index 0000000..165d197 --- /dev/null +++ b/0030-redhat-define-pseries-rhel8.3.0-machine-type.patch @@ -0,0 +1,77 @@ +From 311a20fb12a4d0ebed840be194db8117c8eea595 Mon Sep 17 00:00:00 2001 +From: Laurent Vivier +Date: Wed, 12 Aug 2020 10:58:04 +0200 +Subject: redhat: define pseries-rhel8.3.0 machine type + +RH-Author: Laurent Vivier +Message-id: <20200706104117.219174-3-lvivier@redhat.com> +Patchwork-id: 97904 +O-Subject: [RHEL-AV-8.3.0 qemu-kvm PATCH v2 2/2] redhat: define pseries-rhel8.3.0 machine type +Bugzilla: 1853265 +RH-Acked-by: Thomas Huth + +Note: rebase to qemu-5.1 introduces + + 32a354dc6c07 ("numa: forbid '-numa node, mem' for 5.1 and newer machine types") + +and so '-numa node, mem' will not be available with pseries-rhel8.3.0 + +Signed-off-by: Laurent Vivier +Signed-off-by: Miroslav Rezanina +Signed-off-by: Danilo C. L. de Paula +--- + hw/ppc/spapr.c | 30 ++++++++++++++++++++++++++++-- + 1 file changed, 28 insertions(+), 2 deletions(-) + +diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c +index 756c8667c1..ccceb6d39f 100644 +--- a/hw/ppc/spapr.c ++++ b/hw/ppc/spapr.c +@@ -4995,16 +4995,42 @@ static void spapr_machine_2_1_class_options(MachineClass *mc) + DEFINE_SPAPR_MACHINE(2_1, "2.1", false); + #endif + ++/* ++ * pseries-rhel8.3.0 ++ * like pseries-5.1 ++ */ ++ ++static void spapr_machine_rhel830_class_options(MachineClass *mc) ++{ ++ /* Defaults for the latest behaviour inherited from the base class */ ++} ++ ++DEFINE_SPAPR_MACHINE(rhel830, "rhel8.3.0", true); ++ + /* + * pseries-rhel8.2.0 ++ * like pseries-4.2 + pseries-5.0 ++ * except SPAPR_CAP_CCF_ASSIST that has been backported to pseries-rhel8.1.0 + */ + + static void spapr_machine_rhel820_class_options(MachineClass *mc) + { +- /* Defaults for the latest behaviour inherited from the base class */ ++ SpaprMachineClass *smc = SPAPR_MACHINE_CLASS(mc); ++ ++ spapr_machine_rhel830_class_options(mc); ++ compat_props_add(mc->compat_props, hw_compat_rhel_8_2, ++ hw_compat_rhel_8_2_len); ++ ++ /* from pseries-4.2 */ ++ smc->default_caps.caps[SPAPR_CAP_FWNMI] = SPAPR_CAP_OFF; ++ smc->rma_limit = 16 * GiB; ++ mc->nvdimm_supported = false; ++ ++ /* from pseries-5.0 */ ++ mc->numa_mem_supported = true; + } + +-DEFINE_SPAPR_MACHINE(rhel820, "rhel8.2.0", true); ++DEFINE_SPAPR_MACHINE(rhel820, "rhel8.2.0", false); + + /* + * pseries-rhel8.1.0 +-- +2.27.0 + diff --git a/0031-ppc-Set-correct-max_cpus-value-on-spapr-rhel-machine.patch b/0031-ppc-Set-correct-max_cpus-value-on-spapr-rhel-machine.patch new file mode 100644 index 0000000..6fde229 --- /dev/null +++ b/0031-ppc-Set-correct-max_cpus-value-on-spapr-rhel-machine.patch @@ -0,0 +1,49 @@ +From 12841675e2a81f3b98cb9741b54c3041cebf9e87 Mon Sep 17 00:00:00 2001 +From: Eduardo Habkost +Date: Wed, 12 Aug 2020 10:58:04 +0200 +Subject: ppc: Set correct max_cpus value on spapr-rhel* machine types + +RH-Author: Eduardo Habkost +Message-id: <20200729180236.627559-2-ehabkost@redhat.com> +Patchwork-id: 98073 +O-Subject: [RHEL-AV-8.3.0 qemu-kvm PATCH v2 1/4] ppc: Set correct max_cpus value on spapr-rhel* machine types +Bugzilla: 1819292 +RH-Acked-by: Andrew Jones +RH-Acked-by: Thomas Huth +RH-Acked-by: David Gibson + +Currently vl.c forces MachineClass::max_cpus to be +<= RHEL_MAX_CPUS (384) on all machine types. + +Instead of relying on that global limit, set max_cpus=384 +explicitly at spapr_machine_rhel820_class_options(), which will +affect all pseriesl-rhel* machine types. + +This will keep exactly the same behavior as before, but will +allow us to remove the downstream-only RHEL_MAX_CPUS code at vl.c +later. + +Signed-off-by: Eduardo Habkost +Signed-off-by: Miroslav Rezanina +Signed-off-by: Danilo C. L. de Paula +--- + hw/ppc/spapr.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c +index ccceb6d39f..1c367a2367 100644 +--- a/hw/ppc/spapr.c ++++ b/hw/ppc/spapr.c +@@ -5003,6 +5003,9 @@ DEFINE_SPAPR_MACHINE(2_1, "2.1", false); + static void spapr_machine_rhel830_class_options(MachineClass *mc) + { + /* Defaults for the latest behaviour inherited from the base class */ ++ ++ /* Maximum supported VCPU count for all pseries-rhel* machines */ ++ mc->max_cpus = 384; + } + + DEFINE_SPAPR_MACHINE(rhel830, "rhel8.3.0", true); +-- +2.27.0 + diff --git a/0032-arm-Set-correct-max_cpus-value-on-virt-rhel-machine-.patch b/0032-arm-Set-correct-max_cpus-value-on-virt-rhel-machine-.patch new file mode 100644 index 0000000..0656938 --- /dev/null +++ b/0032-arm-Set-correct-max_cpus-value-on-virt-rhel-machine-.patch @@ -0,0 +1,53 @@ +From ee8e99d0a7821b26d0afe20c3a1f7517e4fa6772 Mon Sep 17 00:00:00 2001 +From: Eduardo Habkost +Date: Wed, 12 Aug 2020 10:58:04 +0200 +Subject: arm: Set correct max_cpus value on virt-rhel* machine types + +RH-Author: Eduardo Habkost +Message-id: <20200729180236.627559-3-ehabkost@redhat.com> +Patchwork-id: 98074 +O-Subject: [RHEL-AV-8.3.0 qemu-kvm PATCH v2 2/4] arm: Set correct max_cpus value on virt-rhel* machine types +Bugzilla: 1819292 +RH-Acked-by: Andrew Jones +RH-Acked-by: Thomas Huth +RH-Acked-by: David Gibson + +Currently vl.c forces MachineClass::max_cpus to be +<= RHEL_MAX_CPUS (384) on all machine types. + +Instead of relying on that global limit, set max_cpus=384 +explicitly at the virt-rhel-machine base class, which will affect +all virt-rhel* machine types. + +This will keep exactly the same behavior as before, but will +allow us to remove the downstream-only RHEL_MAX_CPUS code at vl.c +later. + +Signed-off-by: Eduardo Habkost +Signed-off-by: Miroslav Rezanina +Signed-off-by: Danilo C. L. de Paula +--- + hw/arm/virt.c | 7 ++----- + 1 file changed, 2 insertions(+), 5 deletions(-) + +diff --git a/hw/arm/virt.c b/hw/arm/virt.c +index 48b58be597..fb5a5a7013 100644 +--- a/hw/arm/virt.c ++++ b/hw/arm/virt.c +@@ -2736,11 +2736,8 @@ static void rhel_machine_class_init(ObjectClass *oc, void *data) + + mc->family = "virt-rhel-Z"; + mc->init = machvirt_init; +- /* Start with max_cpus set to 512, which is the maximum supported by KVM. +- * The value may be reduced later when we have more information about the +- * configuration of the particular instance. +- */ +- mc->max_cpus = 512; ++ /* Maximum supported VCPU count for all virt-rhel* machines */ ++ mc->max_cpus = 384; + mc->block_default_type = IF_VIRTIO; + mc->no_cdrom = 1; + mc->pci_allow_0_address = true; +-- +2.27.0 + diff --git a/0033-vl-Remove-downstream-only-MAX_RHEL_CPUS-code.patch b/0033-vl-Remove-downstream-only-MAX_RHEL_CPUS-code.patch new file mode 100644 index 0000000..b522ab1 --- /dev/null +++ b/0033-vl-Remove-downstream-only-MAX_RHEL_CPUS-code.patch @@ -0,0 +1,83 @@ +From f8a4123e211ed0685097f496c99e73913a6b34d0 Mon Sep 17 00:00:00 2001 +From: Eduardo Habkost +Date: Wed, 12 Aug 2020 10:58:04 +0200 +Subject: vl: Remove downstream-only MAX_RHEL_CPUS code + +RH-Author: Eduardo Habkost +Message-id: <20200729180236.627559-4-ehabkost@redhat.com> +Patchwork-id: 98075 +O-Subject: [RHEL-AV-8.3.0 qemu-kvm PATCH v2 3/4] vl: Remove downstream-only MAX_RHEL_CPUS code +Bugzilla: 1819292 +RH-Acked-by: Andrew Jones +RH-Acked-by: Thomas Huth +RH-Acked-by: David Gibson + +Now that all machine types have max_cpus set to the actual +supported number of VCPUs, the MAX_RHEL_CPUS code becomes +unnecessary and can be completely removed. + +For reference these are the max_cpus values set by the RHEL +machine types: + +- arm: virt-rhel*: max_cpus=384 (rhel_machine_class_init()); +- ppc: spapr-rhel*: max_cpus=384 + (spapr_machine_rhel820_class_options()); +- s390: s390-ccw*: max_cpus=248 (ccw_machine_class_init()); +- x86: q35: max_cpus=384 (pc_q35_machine_rhel_options()); +- x86: q35-rhel7.3.0 and older: max_cpus=255 + (pc_q35_machine_rhel730_options()); +- x86: pc-i440fx*: max_cpus=240 (pc_machine_class_init()). + +Signed-off-by: Eduardo Habkost +Signed-off-by: Miroslav Rezanina +Signed-off-by: Danilo C. L. de Paula +--- + softmmu/vl.c | 18 ------------------ + 1 file changed, 18 deletions(-) + +diff --git a/softmmu/vl.c b/softmmu/vl.c +index 62fc7c898f..3c383911cd 100644 +--- a/softmmu/vl.c ++++ b/softmmu/vl.c +@@ -116,8 +116,6 @@ + + #define MAX_VIRTIO_CONSOLES 1 + +-#define RHEL_MAX_CPUS 384 +- + static const char *data_dir[16]; + static int data_dir_idx; + const char *bios_name = NULL; +@@ -1191,20 +1189,6 @@ static MachineClass *find_default_machine(GSList *machines) + return default_machineclass; + } + +-/* Maximum number of CPUs limited for Red Hat Enterprise Linux */ +-static void limit_max_cpus_in_machines(void) +-{ +- GSList *el, *machines = object_class_get_list(TYPE_MACHINE, false); +- +- for (el = machines; el; el = el->next) { +- MachineClass *mc = el->data; +- +- if (mc->max_cpus > RHEL_MAX_CPUS) { +- mc->max_cpus = RHEL_MAX_CPUS; +- } +- } +-} +- + static int machine_help_func(QemuOpts *opts, MachineState *machine) + { + ObjectProperty *prop; +@@ -3861,8 +3845,6 @@ void qemu_init(int argc, char **argv, char **envp) + "mutually exclusive"); + exit(EXIT_FAILURE); + } +- /* Maximum number of CPUs limited for Red Hat Enterprise Linux */ +- limit_max_cpus_in_machines(); + + configure_rtc(qemu_find_opts_singleton("rtc")); + +-- +2.27.0 + diff --git a/0034-q35-Set-max_cpus-to-512.patch b/0034-q35-Set-max_cpus-to-512.patch new file mode 100644 index 0000000..410103d --- /dev/null +++ b/0034-q35-Set-max_cpus-to-512.patch @@ -0,0 +1,45 @@ +From f2edc4f9262e9130d020ef6caef2443e7ae31371 Mon Sep 17 00:00:00 2001 +From: Eduardo Habkost +Date: Wed, 12 Aug 2020 10:58:04 +0200 +Subject: q35: Set max_cpus to 512 + +RH-Author: Eduardo Habkost +Message-id: <20200729180236.627559-5-ehabkost@redhat.com> +Patchwork-id: 98076 +O-Subject: [RHEL-AV-8.3.0 qemu-kvm PATCH v2 4/4] q35: Set max_cpus to 512 +Bugzilla: 1819292 +RH-Acked-by: Andrew Jones +RH-Acked-by: Thomas Huth +RH-Acked-by: David Gibson + +Increase supported VCPU count for the Q35 machine type. + +The VCPU count that partners confirmed to work depended on other +parameters (especially RAM size), but fluctuated between 640 and +710 VCPUs. I chose to increase the limit to 512 to be +conservative, until we find out what exactly prevents larger VMs +from booting. + +Signed-off-by: Eduardo Habkost +Signed-off-by: Miroslav Rezanina +Signed-off-by: Danilo C. L. de Paula +--- + hw/i386/pc_q35.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c +index d75d6d8805..c709460ab7 100644 +--- a/hw/i386/pc_q35.c ++++ b/hw/i386/pc_q35.c +@@ -585,7 +585,7 @@ static void pc_q35_machine_rhel_options(MachineClass *m) + machine_class_allow_dynamic_sysbus_dev(m, TYPE_INTEL_IOMMU_DEVICE); + machine_class_allow_dynamic_sysbus_dev(m, TYPE_RAMFB_DEVICE); + m->alias = "q35"; +- m->max_cpus = 384; ++ m->max_cpus = 512; + compat_props_add(m->compat_props, pc_rhel_compat, pc_rhel_compat_len); + } + +-- +2.27.0 + diff --git a/0035-RHEL-only-arm-virt-Allow-the-TPM_TIS_SYSBUS-device-d.patch b/0035-RHEL-only-arm-virt-Allow-the-TPM_TIS_SYSBUS-device-d.patch new file mode 100644 index 0000000..69877bc --- /dev/null +++ b/0035-RHEL-only-arm-virt-Allow-the-TPM_TIS_SYSBUS-device-d.patch @@ -0,0 +1,39 @@ +From e5edd3824a782900bcb7aa2a980696e550b55cf6 Mon Sep 17 00:00:00 2001 +From: Eric Auger +Date: Wed, 12 Aug 2020 11:03:02 +0200 +Subject: RHEL-only: arm/virt: Allow the TPM_TIS_SYSBUS device dynamic + allocation in machvirt + +RH-Author: Auger Eric +Message-id: <20200811163601.14341-2-eric.auger@redhat.com> +Patchwork-id: 98143 +O-Subject: [RHEL-AV-8.3.0 qemu-kvm PATCH 1/2] RHEL-only: arm/virt: Allow the TPM_TIS_SYSBUS device dynamic allocation in machvirt +Bugzilla: 1801242 + +Allow the TPM_TIS_SYSBUS device dynamic instantiation onto the +platform bus. The TPM_TIS sysbus device compilation will be enabled +in a separate patch. That way associated qmp tests pass once the config +is set. + +Signed-off-by: Eric Auger +Signed-off-by: Miroslav Rezanina +Signed-off-by: Danilo C. L. de Paula +--- + hw/arm/virt.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/hw/arm/virt.c b/hw/arm/virt.c +index fb5a5a7013..f087483a04 100644 +--- a/hw/arm/virt.c ++++ b/hw/arm/virt.c +@@ -2738,6 +2738,7 @@ static void rhel_machine_class_init(ObjectClass *oc, void *data) + mc->init = machvirt_init; + /* Maximum supported VCPU count for all virt-rhel* machines */ + mc->max_cpus = 384; ++ machine_class_allow_dynamic_sysbus_dev(mc, TYPE_TPM_TIS_SYSBUS); + mc->block_default_type = IF_VIRTIO; + mc->no_cdrom = 1; + mc->pci_allow_0_address = true; +-- +2.27.0 + diff --git a/0036-RHEL-only-Enable-vTPM-for-ARM-in-downstream-configs.patch b/0036-RHEL-only-Enable-vTPM-for-ARM-in-downstream-configs.patch new file mode 100644 index 0000000..d833611 --- /dev/null +++ b/0036-RHEL-only-Enable-vTPM-for-ARM-in-downstream-configs.patch @@ -0,0 +1,35 @@ +From 8310f89d8818bc9d41b386bbb2824593aa8e8dca Mon Sep 17 00:00:00 2001 +From: Auger Eric +Date: Wed, 12 Aug 2020 11:03:31 +0200 +Subject: RHEL-only: Enable vTPM for ARM in downstream configs + +RH-Author: Auger Eric +Message-id: <20200811163601.14341-3-eric.auger@redhat.com> +Patchwork-id: 98144 +O-Subject: [RHEL-AV-8.3.0 qemu-kvm PATCH 2/2] RHEL-only: Enable vTPM for ARM in downstream configs +Bugzilla: 1801242 + +We allow the compilation of the TPM_TIS_SYSBUS device and both +passthrough and software emulation backends. + +Signed-off-by: Eric Auger +Signed-off-by: Miroslav Rezanina +Signed-off-by: Danilo C. L. de Paula +--- + default-configs/aarch64-rh-devices.mak | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/default-configs/aarch64-rh-devices.mak b/default-configs/aarch64-rh-devices.mak +index f0cf5a1b22..0b6a03f816 100644 +--- a/default-configs/aarch64-rh-devices.mak ++++ b/default-configs/aarch64-rh-devices.mak +@@ -20,3 +20,6 @@ CONFIG_VIRTIO_PCI=y + CONFIG_XIO3130=y + CONFIG_NVDIMM=y + CONFIG_ACPI_APEI=y ++CONFIG_TPM_EMULATOR=y ++CONFIG_TPM_PASSTHROUGH=y ++CONFIG_TPM_TIS_SYSBUS=y +-- +2.27.0 + diff --git a/qemu-kvm.spec b/qemu-kvm.spec index 0530b54..8edde51 100644 --- a/qemu-kvm.spec +++ b/qemu-kvm.spec @@ -10,6 +10,7 @@ %global have_memlock_limits 0 + %ifnarch %{ix86} x86_64 %global have_usbredir 0 %endif @@ -67,8 +68,8 @@ Obsoletes: %1-rhev Summary: QEMU is a machine emulator and virtualizer Name: qemu-kvm -Version: 5.0.0 -Release: 2%{?dist} +Version: 5.1.0 +Release: 0%{?dist} # Epoch because we pushed a qemu-1.0 package. AIUI this can't ever be dropped Epoch: 15 License: GPLv2 and GPLv2+ and CC-BY @@ -77,7 +78,7 @@ URL: http://www.qemu.org/ ExclusiveArch: x86_64 %{power64} aarch64 s390x -Source0: http://wiki.qemu.org/download/qemu-5.0.0.tar.xz +Source0: http://wiki.qemu.org/download/qemu-5.1.0.tar.xz # KSM control scripts Source4: ksm.service @@ -123,11 +124,20 @@ Patch0018: 0018-usb-xhci-Fix-PCI-capability-order.patch Patch0019: 0019-virtio-scsi-Reject-scsi-cd-if-data-plane-enabled-RHE.patch Patch0020: 0020-BZ1653590-Require-at-least-64kiB-pages-for-downstrea.patch Patch0021: 0021-block-Versioned-x-blockdev-reopen-API-with-feature-f.patch -Patch0022: 0022-virtio-net-fix-removal-of-failover-device.patch -Patch0024: 0024-RHEL-only-Enable-vTPM-for-POWER-in-downstream-config.patch -Patch0025: 0025-redhat-fix-5.0-rebase-missing-ISA-TPM-TIS.patch -Patch0026: 0026-redhat-define-hw_compat_8_2.patch -Patch0027: 0027-x86-Add-8.3.0-x86_64-machine-type.patch +Patch0022: 0022-RHEL-only-Enable-vTPM-for-POWER-in-downstream-config.patch +Patch0023: 0023-redhat-fix-5.0-rebase-missing-ISA-TPM-TIS.patch +Patch0024: 0024-redhat-define-hw_compat_8_2.patch +Patch0025: 0025-x86-Add-8.3.0-x86_64-machine-type.patch +Patch0027: 0027-hw-arm-Changes-to-rhel820-machine.patch +Patch0028: 0028-hw-arm-Introduce-rhel_virt_instance_init-helper.patch +Patch0029: 0029-hw-arm-Add-rhel830-machine-type.patch +Patch0030: 0030-redhat-define-pseries-rhel8.3.0-machine-type.patch +Patch0031: 0031-ppc-Set-correct-max_cpus-value-on-spapr-rhel-machine.patch +Patch0032: 0032-arm-Set-correct-max_cpus-value-on-virt-rhel-machine-.patch +Patch0033: 0033-vl-Remove-downstream-only-MAX_RHEL_CPUS-code.patch +Patch0034: 0034-q35-Set-max_cpus-to-512.patch +Patch0035: 0035-RHEL-only-arm-virt-Allow-the-TPM_TIS_SYSBUS-device-d.patch +Patch0036: 0036-RHEL-only-Enable-vTPM-for-ARM-in-downstream-configs.patch BuildRequires: wget BuildRequires: rpm-build @@ -144,7 +154,7 @@ BuildRequires: pciutils-devel BuildRequires: libiscsi-devel BuildRequires: ncurses-devel BuildRequires: libattr-devel -BuildRequires: libusbx-devel >= 1.0.22 +BuildRequires: libusbx-devel >= 1.0.23 %if %{have_usbredir} BuildRequires: usbredir-devel >= 0.7.1 %endif @@ -193,7 +203,8 @@ BuildRequires: python3-sphinx BuildRequires: rdma-core-devel %endif %if %{have_fdt} -BuildRequires: libfdt-devel >= 1.4.3 +BuildRequires: libfdt-devel >= 1.6.0 +Requires: libfdt >= 1.6.0 %endif # iasl and cpp for acpi generation (not a hard requirement as we can use # pre-compiled files, but it's better to use this) @@ -430,6 +441,7 @@ buildldflags="VL_LDFLAGS=-Wl,--build-id" %global block_drivers_list %{block_drivers_list},gluster %endif + cd qemu-kvm-build ../configure \ --prefix="%{_prefix}" \ @@ -498,6 +510,7 @@ cd qemu-kvm-build --enable-iconv \ --disable-jemalloc \ --enable-kvm \ + --disable-libdaxctl \ --enable-libiscsi \ --disable-libnfs \ %ifarch x86_64 @@ -543,7 +556,9 @@ cd qemu-kvm-build %else --disable-rdma \ %endif + --disable-rng-none \ --disable-replication \ + --disable-safe-stack \ --disable-sanitizers \ --disable-sdl \ --disable-sdl-image \ @@ -578,6 +593,7 @@ cd qemu-kvm-build --enable-vhost-net \ --disable-vhost-scsi \ --enable-vhost-user \ + --enable-vhost-vdpa \ --enable-vhost-vsock \ %if 0%{have_spice} --enable-virglrenderer \ @@ -591,13 +607,13 @@ cd qemu-kvm-build --enable-vnc-sasl \ --disable-vte \ --disable-vvfat \ - --disable-vxhs \ --enable-werror \ --disable-whpx \ --disable-xen \ --disable-xen-pci-passthrough \ --disable-xfsctl \ --enable-xkbcommon \ + --disable-zstd \ --without-default-devices echo "config-host.mak contents:" @@ -1036,6 +1052,15 @@ useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin \ %endif %{_libexecdir}/virtiofsd %{_datadir}/%{name}/vhost-user/50-qemu-virtiofsd.json +%if %{have_usbredir} + %{_libdir}/qemu-kvm/hw-usb-redirect.so +%endif +%if 0%{have_spice} + %{_libdir}/qemu-kvm/hw-usb-smartcard.so +%endif +%ifarch x86_64 + %{_libdir}/qemu-kvm/hw-display-qxl.so +%endif %files -n qemu-img %defattr(-,root,root) @@ -1079,12 +1104,9 @@ useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin \ %changelog -* Wed Jul 15 2020 Danilo Cesar Lemes de Paula - 5.0.0-2.el8 -- Resolves: bz#1781911 -- Resolves: bz#1841529 -- Resolves: bz#1842902 - (This is an unofficial build that fixes the BZs mentioned above) - +* Wed Aug 12 2020 Danilo Cesar Lemes de Paula - 5.1.0-0.el8 +- Rebase to 5.1.0 +- Resolves: bz#1809650 * Tue Jul 07 2020 Danilo Cesar Lemes de Paula - 4.2.0-29.el8 - kvm-virtio-net-fix-removal-of-failover-device.patch [bz#1820120] diff --git a/sources b/sources index 13799b0..eae2427 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (qemu-5.0.0.tar.xz) = 2011fc15747d9d8effcf0af4e1e3af6440eaf801c27948a8bdf97d0cb33cf99ac380f828c1aee02e55e2c2c6c674150a264ce025c99642c8f974fda34be285cd +SHA512 (qemu-5.1.0.tar.xz) = e213edb71d93d5167ddce7546220ecb7b52a7778586a4f476f65bd1e510c9cfc6d1876238a7b501d9cc3fd31cc2ae4b7fb9e753bc3f12cc17cd16dfce2a96ba3