hw/i386/pc.c | 14 ++++++++++++-- hw/mem/nvdimm.c | 2 +- hw/mem/pc-dimm.c | 14 +++++++++++--- hw/ppc/spapr.c | 42 ++++++++++++++++++++++++++++++------------ hw/ppc/spapr_drc.c | 30 +++++++++++++++++++++++------- hw/ppc/spapr_iommu.c | 2 ++ hw/ppc/spapr_rtc.c | 2 ++ include/hw/mem/pc-dimm.h | 2 +- target/ppc/compat.c | 9 +++++---- target/ppc/kvm.c | 34 ++++++++++++++++++++++++++++++++++ target/ppc/kvm_ppc.h | 1 + target/ppc/machine.c | 22 ++++++++++++++++++++++ tests/boot-serial-test.c | 6 +++++- 13 files changed, 149 insertions(+), 31 deletions(-)
The following changes since commit 1f296733876434118fd766cfef5eb6f29ecab6a8: Update version for v2.10.0-rc3 release (2017-08-15 18:53:31 +0100) are available in the git repository at: git://github.com/dgibson/qemu.git tags/ppc-for-2.10-20170822 for you to fetch changes up to d3234e2851f1630c695c681beac1e87ac0881260: hw/ppc/spapr_iommu: Fix crash when removing the "spapr-tce-table" device (2017-08-22 11:11:30 +1000) ---------------------------------------------------------------- ppc patch queue 2017-08-22 Last minute ppc related fixes for qemu-2.10. I'm not sure if these are critical enough to prompt another rc, but I'm submitting them for consideration. First, is Cornelia's fix for 480bc11e6 which meant "make check" would always fail on a ppc host. Tracking that down delayed submission of the rest of these patches, sorry. The rest are all fairly important bugfixes for qemu crashes or guest behaviour regression on ppc. Patches 2-4 specifically are fixes for regressions from qemu-2.9, caused by the compatibility mode and hotplug handling cleanups for the pseries machine type. ---------------------------------------------------------------- Bharata B Rao (1): spapr: Allow configure-connector to be called multiple times Cornelia Huck (1): boot-serial-test: prefer tcg accelerator Daniel Henrique Barboza (1): target/ppc: 'PVR != host PVR' in KVM_SET_SREGS workaround Greg Kurz (1): ppc: fix ppc_set_compat() with KVM PR Thomas Huth (3): hw/ppc/spapr: Fix segfault when instantiating a 'pc-dimm' without 'memdev' hw/ppc/spapr_rtc: Mark the RTC device with user_creatable = false hw/ppc/spapr_iommu: Fix crash when removing the "spapr-tce-table" device hw/i386/pc.c | 14 ++++++++++++-- hw/mem/nvdimm.c | 2 +- hw/mem/pc-dimm.c | 14 +++++++++++--- hw/ppc/spapr.c | 42 ++++++++++++++++++++++++++++++------------ hw/ppc/spapr_drc.c | 30 +++++++++++++++++++++++------- hw/ppc/spapr_iommu.c | 2 ++ hw/ppc/spapr_rtc.c | 2 ++ include/hw/mem/pc-dimm.h | 2 +- target/ppc/compat.c | 9 +++++---- target/ppc/kvm.c | 34 ++++++++++++++++++++++++++++++++++ target/ppc/kvm_ppc.h | 1 + target/ppc/machine.c | 22 ++++++++++++++++++++++ tests/boot-serial-test.c | 6 +++++- 13 files changed, 149 insertions(+), 31 deletions(-)
On 22 August 2017 at 05:24, David Gibson <david@gibson.dropbear.id.au> wrote: > The following changes since commit 1f296733876434118fd766cfef5eb6f29ecab6a8: > > Update version for v2.10.0-rc3 release (2017-08-15 18:53:31 +0100) > > are available in the git repository at: > > git://github.com/dgibson/qemu.git tags/ppc-for-2.10-20170822 > > for you to fetch changes up to d3234e2851f1630c695c681beac1e87ac0881260: > > hw/ppc/spapr_iommu: Fix crash when removing the "spapr-tce-table" device (2017-08-22 11:11:30 +1000) > > ---------------------------------------------------------------- > ppc patch queue 2017-08-22 > > Last minute ppc related fixes for qemu-2.10. I'm not sure if these > are critical enough to prompt another rc, but I'm submitting them for > consideration. > > First, is Cornelia's fix for 480bc11e6 which meant "make check" would > always fail on a ppc host. Tracking that down delayed submission of > the rest of these patches, sorry. > > The rest are all fairly important bugfixes for qemu crashes or guest > behaviour regression on ppc. Patches 2-4 specifically are fixes for > regressions from qemu-2.9, caused by the compatibility mode and > hotplug handling cleanups for the pseries machine type. > > ---------------------------------------------------------------- I get a make check failure on ppc64 Linux: TEST: tests/postcopy-test... (pid=12468) /ppc64/postcopy: Broken pipe qemu-system-ppc64: RP: Received invalid message 0x0000 length 0x0000 FAIL GTester: last random seed: R02Se5468e06f561627824306d95b0566d2b (pid=13011) FAIL: tests/postcopy-test thanks -- PMM
On 22/08/2017 11:34, Peter Maydell wrote: > On 22 August 2017 at 05:24, David Gibson <david@gibson.dropbear.id.au> wrote: >> The following changes since commit 1f296733876434118fd766cfef5eb6f29ecab6a8: >> >> Update version for v2.10.0-rc3 release (2017-08-15 18:53:31 +0100) >> >> are available in the git repository at: >> >> git://github.com/dgibson/qemu.git tags/ppc-for-2.10-20170822 >> >> for you to fetch changes up to d3234e2851f1630c695c681beac1e87ac0881260: >> >> hw/ppc/spapr_iommu: Fix crash when removing the "spapr-tce-table" device (2017-08-22 11:11:30 +1000) >> >> ---------------------------------------------------------------- >> ppc patch queue 2017-08-22 >> >> Last minute ppc related fixes for qemu-2.10. I'm not sure if these >> are critical enough to prompt another rc, but I'm submitting them for >> consideration. >> >> First, is Cornelia's fix for 480bc11e6 which meant "make check" would >> always fail on a ppc host. Tracking that down delayed submission of >> the rest of these patches, sorry. >> >> The rest are all fairly important bugfixes for qemu crashes or guest >> behaviour regression on ppc. Patches 2-4 specifically are fixes for >> regressions from qemu-2.9, caused by the compatibility mode and >> hotplug handling cleanups for the pseries machine type. >> >> ---------------------------------------------------------------- > > I get a make check failure on ppc64 Linux: > > TEST: tests/postcopy-test... (pid=12468) > /ppc64/postcopy: > Broken pipe > qemu-system-ppc64: RP: Received invalid message 0x0000 length 0x0000 > FAIL > GTester: last random seed: R02Se5468e06f561627824306d95b0566d2b > (pid=13011) > FAIL: tests/postcopy-test This test should fail with KVM PR, but it is explicitly disabled by: tests/postcopy-test.c: 386 accel = access("/sys/module/kvm_hv", F_OK) ? "tcg" : "kvm:tcg"; What is your test machine? [CC' Greg] Thanks, Laurent
On 22 August 2017 at 10:43, Laurent Vivier <lvivier@redhat.com> wrote: > On 22/08/2017 11:34, Peter Maydell wrote: >> On 22 August 2017 at 05:24, David Gibson <david@gibson.dropbear.id.au> wrote: >>> The following changes since commit 1f296733876434118fd766cfef5eb6f29ecab6a8: >>> >>> Update version for v2.10.0-rc3 release (2017-08-15 18:53:31 +0100) >>> >>> are available in the git repository at: >>> >>> git://github.com/dgibson/qemu.git tags/ppc-for-2.10-20170822 >>> >>> for you to fetch changes up to d3234e2851f1630c695c681beac1e87ac0881260: >>> >>> hw/ppc/spapr_iommu: Fix crash when removing the "spapr-tce-table" device (2017-08-22 11:11:30 +1000) >>> >>> ---------------------------------------------------------------- >>> ppc patch queue 2017-08-22 >>> >>> Last minute ppc related fixes for qemu-2.10. I'm not sure if these >>> are critical enough to prompt another rc, but I'm submitting them for >>> consideration. >>> >>> First, is Cornelia's fix for 480bc11e6 which meant "make check" would >>> always fail on a ppc host. Tracking that down delayed submission of >>> the rest of these patches, sorry. >>> >>> The rest are all fairly important bugfixes for qemu crashes or guest >>> behaviour regression on ppc. Patches 2-4 specifically are fixes for >>> regressions from qemu-2.9, caused by the compatibility mode and >>> hotplug handling cleanups for the pseries machine type. >>> >>> ---------------------------------------------------------------- >> >> I get a make check failure on ppc64 Linux: >> >> TEST: tests/postcopy-test... (pid=12468) >> /ppc64/postcopy: >> Broken pipe >> qemu-system-ppc64: RP: Received invalid message 0x0000 length 0x0000 >> FAIL >> GTester: last random seed: R02Se5468e06f561627824306d95b0566d2b >> (pid=13011) >> FAIL: tests/postcopy-test > > This test should fail with KVM PR, but it is explicitly disabled by: > > tests/postcopy-test.c: > > 386 accel = access("/sys/module/kvm_hv", F_OK) ? "tcg" : "kvm:tcg"; There is no file of that name on the machine; but we'll be using TCG anyway because /dev/kvm is not readable by my user. > What is your test machine? It's the gcc compile farm ppc64 box (gcc110 if you have compile farm access): Linux gcc1-power7.osuosl.org 3.10.0-514.26.2.el7.ppc64 #1 SMP Mon Jul 10 02:26:53 GMT 2017 ppc64 ppc64 ppc64 GNU/Linux /proc/cpuinfo says processor : 0 cpu : POWER7 (architected), altivec supported clock : 3550.000000MHz revision : 2.1 (pvr 003f 0201) [etc] timebase : 512000000 platform : pSeries model : IBM,8231-E2B machine : CHRP IBM,8231-E2B git bisect blames "target/ppc: 'PVR != host PVR' in KVM_SET_SREGS workaround" for the regression. thanks -- PMM
On 22/08/2017 11:53, Peter Maydell wrote: > On 22 August 2017 at 10:43, Laurent Vivier <lvivier@redhat.com> wrote: >> On 22/08/2017 11:34, Peter Maydell wrote: >>> On 22 August 2017 at 05:24, David Gibson <david@gibson.dropbear.id.au> wrote: >>>> The following changes since commit 1f296733876434118fd766cfef5eb6f29ecab6a8: >>>> >>>> Update version for v2.10.0-rc3 release (2017-08-15 18:53:31 +0100) >>>> >>>> are available in the git repository at: >>>> >>>> git://github.com/dgibson/qemu.git tags/ppc-for-2.10-20170822 >>>> >>>> for you to fetch changes up to d3234e2851f1630c695c681beac1e87ac0881260: >>>> >>>> hw/ppc/spapr_iommu: Fix crash when removing the "spapr-tce-table" device (2017-08-22 11:11:30 +1000) >>>> >>>> ---------------------------------------------------------------- >>>> ppc patch queue 2017-08-22 >>>> >>>> Last minute ppc related fixes for qemu-2.10. I'm not sure if these >>>> are critical enough to prompt another rc, but I'm submitting them for >>>> consideration. >>>> >>>> First, is Cornelia's fix for 480bc11e6 which meant "make check" would >>>> always fail on a ppc host. Tracking that down delayed submission of >>>> the rest of these patches, sorry. >>>> >>>> The rest are all fairly important bugfixes for qemu crashes or guest >>>> behaviour regression on ppc. Patches 2-4 specifically are fixes for >>>> regressions from qemu-2.9, caused by the compatibility mode and >>>> hotplug handling cleanups for the pseries machine type. >>>> >>>> ---------------------------------------------------------------- >>> >>> I get a make check failure on ppc64 Linux: >>> >>> TEST: tests/postcopy-test... (pid=12468) >>> /ppc64/postcopy: >>> Broken pipe >>> qemu-system-ppc64: RP: Received invalid message 0x0000 length 0x0000 >>> FAIL >>> GTester: last random seed: R02Se5468e06f561627824306d95b0566d2b >>> (pid=13011) >>> FAIL: tests/postcopy-test The problem is in: bool kvmppc_pvr_workaround_required(PowerPCCPU *cpu) { CPUState *cs = CPU(cpu); if (cap_ppc_pvr_compat) { return false; } return !kvmppc_is_pr(cs->kvm_state); } It guesses !kvm pr means kvm_hv. That is not true, it can be TCG. This fixes the problem for me: --- a/target/ppc/kvm.c +++ b/target/ppc/kvm.c @@ -2817,5 +2817,5 @@ bool kvmppc_pvr_workaround_required(PowerPCCPU *cpu) return false; } - return !kvmppc_is_pr(cs->kvm_state); + return kvm_enabled() && !kvmppc_is_pr(cs->kvm_state); } [CC' Daniel] Thanks, Laurent
On 22 August 2017 at 11:41, Laurent Vivier <lvivier@redhat.com> wrote: > On 22/08/2017 11:53, Peter Maydell wrote: >> On 22 August 2017 at 10:43, Laurent Vivier <lvivier@redhat.com> wrote: >>> On 22/08/2017 11:34, Peter Maydell wrote: >>>> I get a make check failure on ppc64 Linux: >>>> >>>> TEST: tests/postcopy-test... (pid=12468) >>>> /ppc64/postcopy: >>>> Broken pipe >>>> qemu-system-ppc64: RP: Received invalid message 0x0000 length 0x0000 >>>> FAIL >>>> GTester: last random seed: R02Se5468e06f561627824306d95b0566d2b >>>> (pid=13011) >>>> FAIL: tests/postcopy-test > > The problem is in: > > bool kvmppc_pvr_workaround_required(PowerPCCPU *cpu) > { > CPUState *cs = CPU(cpu); > > if (cap_ppc_pvr_compat) { > return false; > } > > return !kvmppc_is_pr(cs->kvm_state); > } > > It guesses !kvm pr means kvm_hv. That is not true, it can be TCG. > > This fixes the problem for me: > --- a/target/ppc/kvm.c > +++ b/target/ppc/kvm.c > @@ -2817,5 +2817,5 @@ bool kvmppc_pvr_workaround_required(PowerPCCPU *cpu) > return false; > } > > - return !kvmppc_is_pr(cs->kvm_state); > + return kvm_enabled() && !kvmppc_is_pr(cs->kvm_state); > } Yep, fixes the failure for me too. David, can you respin your pull request, please? thanks -- PMM
On 08/22/2017 07:52 AM, Peter Maydell wrote: > On 22 August 2017 at 11:41, Laurent Vivier <lvivier@redhat.com> wrote: >> On 22/08/2017 11:53, Peter Maydell wrote: >>> On 22 August 2017 at 10:43, Laurent Vivier <lvivier@redhat.com> wrote: >>>> On 22/08/2017 11:34, Peter Maydell wrote: >>>>> I get a make check failure on ppc64 Linux: >>>>> >>>>> TEST: tests/postcopy-test... (pid=12468) >>>>> /ppc64/postcopy: >>>>> Broken pipe >>>>> qemu-system-ppc64: RP: Received invalid message 0x0000 length 0x0000 >>>>> FAIL >>>>> GTester: last random seed: R02Se5468e06f561627824306d95b0566d2b >>>>> (pid=13011) >>>>> FAIL: tests/postcopy-test >> The problem is in: >> >> bool kvmppc_pvr_workaround_required(PowerPCCPU *cpu) >> { >> CPUState *cs = CPU(cpu); >> >> if (cap_ppc_pvr_compat) { >> return false; >> } >> >> return !kvmppc_is_pr(cs->kvm_state); >> } >> >> It guesses !kvm pr means kvm_hv. That is not true, it can be TCG. >> >> This fixes the problem for me: >> --- a/target/ppc/kvm.c >> +++ b/target/ppc/kvm.c >> @@ -2817,5 +2817,5 @@ bool kvmppc_pvr_workaround_required(PowerPCCPU *cpu) >> return false; >> } >> >> - return !kvmppc_is_pr(cs->kvm_state); >> + return kvm_enabled() && !kvmppc_is_pr(cs->kvm_state); >> } Good catch. I forgot to cover/test TCG scenarios with this patch and this bug flew under the radar completely :( > Yep, fixes the failure for me too. David, can you respin your > pull request, please? I've send a v2 of the patch including Laurent's fix too. Feel free to use the v2 or amend it on top of the existing v1, whatever is easier. Thanks, Daniel > > thanks > -- PMM >
On Tue, Aug 22, 2017 at 11:52:00AM +0100, Peter Maydell wrote: > On 22 August 2017 at 11:41, Laurent Vivier <lvivier@redhat.com> wrote: > > On 22/08/2017 11:53, Peter Maydell wrote: > >> On 22 August 2017 at 10:43, Laurent Vivier <lvivier@redhat.com> wrote: > >>> On 22/08/2017 11:34, Peter Maydell wrote: > >>>> I get a make check failure on ppc64 Linux: > >>>> > >>>> TEST: tests/postcopy-test... (pid=12468) > >>>> /ppc64/postcopy: > >>>> Broken pipe > >>>> qemu-system-ppc64: RP: Received invalid message 0x0000 length 0x0000 > >>>> FAIL > >>>> GTester: last random seed: R02Se5468e06f561627824306d95b0566d2b > >>>> (pid=13011) > >>>> FAIL: tests/postcopy-test > > > > The problem is in: > > > > bool kvmppc_pvr_workaround_required(PowerPCCPU *cpu) > > { > > CPUState *cs = CPU(cpu); > > > > if (cap_ppc_pvr_compat) { > > return false; > > } > > > > return !kvmppc_is_pr(cs->kvm_state); > > } > > > > It guesses !kvm pr means kvm_hv. That is not true, it can be TCG. > > > > This fixes the problem for me: > > --- a/target/ppc/kvm.c > > +++ b/target/ppc/kvm.c > > @@ -2817,5 +2817,5 @@ bool kvmppc_pvr_workaround_required(PowerPCCPU *cpu) > > return false; > > } > > > > - return !kvmppc_is_pr(cs->kvm_state); > > + return kvm_enabled() && !kvmppc_is_pr(cs->kvm_state); > > } > > Yep, fixes the failure for me too. David, can you respin your > pull request, please? Done. In the interests of getting it out quickly, I haven't done the full usual set of tests, though I have done a make check on a ppc host both with and without KVM available. A tweaked version of the fix above is the only change, so I'm hoping the testing round on the previous pullreq should suffice. -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
© 2016 - 2024 Red Hat, Inc.