Message ID | 1458320487-19603-1-git-send-email-armbru@redhat.com |
---|---|
State | New |
Headers | show |
On 18 March 2016 at 17:00, Markus Armbruster <armbru@redhat.com> wrote: > Major issues addressed by this series: > > * The specification document is incomplete and vague. Rewritten. > > * When a peer goes away, and its ID gets reused for another one, > interrupts don't work. > > * When configured for interrupts, we receive shared memory from the > server some time after realize(). This creates a (usually > short-lived) "no shared memory, yet" state. If the guest wins the > race, it is exposed to this state (known issue, if you count burying > in docs/specs/ as "known"). If migration wins the race, it fails or > corrupts memory. > > * Interrupts are unreliable in a (usually small) time window after the > destination peer connects. I believe fixing this will require > changing the client/server protocol, so just document it for now. > > * The device isn't capable to tell guest software whether it is > configured for interrupts. Fix that in a new, backwards-compatible > revision of the guest ABI, and bump the PCI revision. Deprecate the > old revision. > > * The device properties are a confusing mess and badly checked. > Clean that up. > > * Migration with interrupts relies on server behavior not guaranteed > by the specification. Tighten the specification. > > The following changes since commit 6741d38ad0f2405a6e999ebc9550801b01aca479: > > Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging (2016-03-17 15:59:42 +0000) > > are available in the git repository at: > > git://repo.or.cz/qemu/armbru.git tags/pull-ivshmem-2016-03-18 > > for you to fetch changes up to 9c4b53495c86f7c518e6daae6f98a349a9852009: > > contrib/ivshmem-server: Print "not for production" warning (2016-03-18 17:35:26 +0100) > > ---------------------------------------------------------------- > ivshmem: Fixes, cleanups, device model split > Hi; I'm afraid this fails 'make check' on OSX: GTESTER check-qtest-i386 qemu-system-i386: invalid object type: memory-backend-file Also some new clang ubsan warnings on x86 Linux: GTESTER check-qtest-i386 [deleted existing warnings about slirp code] /home/petmay01/linaro/qemu-for-merges/hw/pci/pci.c:166:23: runtime error: shift exponent -1 is negative /home/petmay01/linaro/qemu-for-merges/hw/pci/pci.c:171:24: runtime error: shift exponent -1 is negative /home/petmay01/linaro/qemu-for-merges/hw/pci/pci.c:172:24: runtime error: shift exponent -1 is negative thanks -- PMM
Peter Maydell <peter.maydell@linaro.org> writes: > On 18 March 2016 at 17:00, Markus Armbruster <armbru@redhat.com> wrote: >> Major issues addressed by this series: >> >> * The specification document is incomplete and vague. Rewritten. >> >> * When a peer goes away, and its ID gets reused for another one, >> interrupts don't work. >> >> * When configured for interrupts, we receive shared memory from the >> server some time after realize(). This creates a (usually >> short-lived) "no shared memory, yet" state. If the guest wins the >> race, it is exposed to this state (known issue, if you count burying >> in docs/specs/ as "known"). If migration wins the race, it fails or >> corrupts memory. >> >> * Interrupts are unreliable in a (usually small) time window after the >> destination peer connects. I believe fixing this will require >> changing the client/server protocol, so just document it for now. >> >> * The device isn't capable to tell guest software whether it is >> configured for interrupts. Fix that in a new, backwards-compatible >> revision of the guest ABI, and bump the PCI revision. Deprecate the >> old revision. >> >> * The device properties are a confusing mess and badly checked. >> Clean that up. >> >> * Migration with interrupts relies on server behavior not guaranteed >> by the specification. Tighten the specification. >> >> The following changes since commit 6741d38ad0f2405a6e999ebc9550801b01aca479: >> >> Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging (2016-03-17 15:59:42 +0000) >> >> are available in the git repository at: >> >> git://repo.or.cz/qemu/armbru.git tags/pull-ivshmem-2016-03-18 >> >> for you to fetch changes up to 9c4b53495c86f7c518e6daae6f98a349a9852009: >> >> contrib/ivshmem-server: Print "not for production" warning (2016-03-18 17:35:26 +0100) >> >> ---------------------------------------------------------------- >> ivshmem: Fixes, cleanups, device model split >> > > Hi; I'm afraid this fails 'make check' on OSX: > > GTESTER check-qtest-i386 > qemu-system-i386: invalid object type: memory-backend-file I forgot to update tests for "[PATCH] event_notifier: Make event_notifier_init_fd() #ifdef CONFIG_EVENTFD". Will fix. > Also some new clang ubsan warnings on x86 Linux: > GTESTER check-qtest-i386 > [deleted existing warnings about slirp code] > /home/petmay01/linaro/qemu-for-merges/hw/pci/pci.c:166:23: runtime > error: shift exponent -1 is negative > /home/petmay01/linaro/qemu-for-merges/hw/pci/pci.c:171:24: runtime > error: shift exponent -1 is negative > /home/petmay01/linaro/qemu-for-merges/hw/pci/pci.c:172:24: runtime > error: shift exponent -1 is negative Stack backtrace? If it's not too much trouble...
On 21 March 2016 at 10:05, Markus Armbruster <armbru@redhat.com> wrote: > Peter Maydell <peter.maydell@linaro.org> writes: >> Also some new clang ubsan warnings on x86 Linux: >> GTESTER check-qtest-i386 >> [deleted existing warnings about slirp code] >> /home/petmay01/linaro/qemu-for-merges/hw/pci/pci.c:166:23: runtime >> error: shift exponent -1 is negative >> /home/petmay01/linaro/qemu-for-merges/hw/pci/pci.c:171:24: runtime >> error: shift exponent -1 is negative >> /home/petmay01/linaro/qemu-for-merges/hw/pci/pci.c:172:24: runtime >> error: shift exponent -1 is negative > > Stack backtrace? If it's not too much trouble... Sorry, too painful -- this version of clang doesn't support the UBSAN_OPTIONS environment variable to request a backtrace at runtime and I can't remember the rune to connect gdb to the qemu under a qtest test, which is what I'd need to do if I rebuilt everything with the trap-on-error flag. The issues are all provoked by the i386/ivshmem/single test. thanks -- PMM
Peter Maydell <peter.maydell@linaro.org> writes: > On 21 March 2016 at 10:05, Markus Armbruster <armbru@redhat.com> wrote: >> Peter Maydell <peter.maydell@linaro.org> writes: >>> Also some new clang ubsan warnings on x86 Linux: >>> GTESTER check-qtest-i386 >>> [deleted existing warnings about slirp code] >>> /home/petmay01/linaro/qemu-for-merges/hw/pci/pci.c:166:23: runtime >>> error: shift exponent -1 is negative >>> /home/petmay01/linaro/qemu-for-merges/hw/pci/pci.c:171:24: runtime >>> error: shift exponent -1 is negative >>> /home/petmay01/linaro/qemu-for-merges/hw/pci/pci.c:172:24: runtime >>> error: shift exponent -1 is negative >> >> Stack backtrace? If it's not too much trouble... > > Sorry, too painful -- this version of clang doesn't support > the UBSAN_OPTIONS environment variable to request a backtrace > at runtime and I can't remember the rune to connect gdb to > the qemu under a qtest test, which is what I'd need to do if > I rebuilt everything with the trap-on-error flag. > > The issues are all provoked by the i386/ivshmem/single test. No worries, I reproduced it locally.