Message ID | 20230307070816.34833-1-jasowang@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, 7 Mar 2023 at 07:08, Jason Wang <jasowang@redhat.com> wrote: > > The following changes since commit 817fd33836e73812df2f1907612b57750fcb9491: > > Merge tag 'audio-pull-request' of https://gitlab.com/marcandre.lureau/qemu into staging (2023-03-06 14:06:06 +0000) > > are available in the git repository at: > > https://github.com/jasowang/qemu.git tags/net-pull-request > > for you to fetch changes up to c19b566a3898510ec2b3e881b3fb78614b240414: > > hw/net/eepro100: Replace DO_UPCAST(EEPRO100State) by EEPRO100() (2023-03-07 14:55:39 +0800) > > ---------------------------------------------------------------- > > ---------------------------------------------------------------- Fails to build on Windows: https://gitlab.com/qemu-project/qemu/-/jobs/3889073853 https://gitlab.com/qemu-project/qemu/-/jobs/3889073855 https://gitlab.com/qemu-project/qemu/-/jobs/3889073780 https://gitlab.com/qemu-project/qemu/-/jobs/3889073778 ../tests/qtest/igb-test.c: In function 'data_test_init': ../tests/qtest/igb-test.c:219:15: error: implicit declaration of function 'socketpair'; did you mean 'socket_uri'? [-Werror=implicit-function-declaration] 219 | int ret = socketpair(PF_UNIX, SOCK_STREAM, 0, test_sockets); | ^~~~~~~~~~ | socket_uri ../tests/qtest/igb-test.c:219:15: error: nested extern declaration of 'socketpair' [-Werror=nested-externs] build-oss-fuzz failed on something involving fuzzing eepro100: https://gitlab.com/qemu-project/qemu/-/jobs/3889073821 The 'crash-test' jobs failed with an assertion "qemu-system-i386: -device igb: MSI-X is not supported by interrupt controller": https://gitlab.com/qemu-project/qemu/-/jobs/3889073868 https://gitlab.com/qemu-project/qemu/-/jobs/3889073873 thanks -- PMM
On 7/3/23 18:01, Peter Maydell wrote: > On Tue, 7 Mar 2023 at 07:08, Jason Wang <jasowang@redhat.com> wrote: >> >> The following changes since commit 817fd33836e73812df2f1907612b57750fcb9491: >> >> Merge tag 'audio-pull-request' of https://gitlab.com/marcandre.lureau/qemu into staging (2023-03-06 14:06:06 +0000) >> >> are available in the git repository at: >> >> https://github.com/jasowang/qemu.git tags/net-pull-request >> >> for you to fetch changes up to c19b566a3898510ec2b3e881b3fb78614b240414: >> >> hw/net/eepro100: Replace DO_UPCAST(EEPRO100State) by EEPRO100() (2023-03-07 14:55:39 +0800) >> >> ---------------------------------------------------------------- > build-oss-fuzz failed on something involving fuzzing eepro100: > https://gitlab.com/qemu-project/qemu/-/jobs/3889073821 Jason, please drop my patches. I'll look at that failure.
On Wed, Mar 8, 2023 at 4:43 AM Philippe Mathieu-Daudé <philmd@linaro.org> wrote: > > On 7/3/23 18:01, Peter Maydell wrote: > > On Tue, 7 Mar 2023 at 07:08, Jason Wang <jasowang@redhat.com> wrote: > >> > >> The following changes since commit 817fd33836e73812df2f1907612b57750fcb9491: > >> > >> Merge tag 'audio-pull-request' of https://gitlab.com/marcandre.lureau/qemu into staging (2023-03-06 14:06:06 +0000) > >> > >> are available in the git repository at: > >> > >> https://github.com/jasowang/qemu.git tags/net-pull-request > >> > >> for you to fetch changes up to c19b566a3898510ec2b3e881b3fb78614b240414: > >> > >> hw/net/eepro100: Replace DO_UPCAST(EEPRO100State) by EEPRO100() (2023-03-07 14:55:39 +0800) > >> > >> ---------------------------------------------------------------- > > > build-oss-fuzz failed on something involving fuzzing eepro100: > > https://gitlab.com/qemu-project/qemu/-/jobs/3889073821 > Jason, please drop my patches. I'll look at that failure. Ok. Thanks >
On Wed, Mar 8, 2023 at 1:01 AM Peter Maydell <peter.maydell@linaro.org> wrote: > > On Tue, 7 Mar 2023 at 07:08, Jason Wang <jasowang@redhat.com> wrote: > > > > The following changes since commit 817fd33836e73812df2f1907612b57750fcb9491: > > > > Merge tag 'audio-pull-request' of https://gitlab.com/marcandre.lureau/qemu into staging (2023-03-06 14:06:06 +0000) > > > > are available in the git repository at: > > > > https://github.com/jasowang/qemu.git tags/net-pull-request > > > > for you to fetch changes up to c19b566a3898510ec2b3e881b3fb78614b240414: > > > > hw/net/eepro100: Replace DO_UPCAST(EEPRO100State) by EEPRO100() (2023-03-07 14:55:39 +0800) > > > > ---------------------------------------------------------------- > > > > ---------------------------------------------------------------- > > Fails to build on Windows: > https://gitlab.com/qemu-project/qemu/-/jobs/3889073853 > https://gitlab.com/qemu-project/qemu/-/jobs/3889073855 > https://gitlab.com/qemu-project/qemu/-/jobs/3889073780 > https://gitlab.com/qemu-project/qemu/-/jobs/3889073778 > > ../tests/qtest/igb-test.c: In function 'data_test_init': > ../tests/qtest/igb-test.c:219:15: error: implicit declaration of > function 'socketpair'; did you mean 'socket_uri'? > [-Werror=implicit-function-declaration] > 219 | int ret = socketpair(PF_UNIX, SOCK_STREAM, 0, test_sockets); > | ^~~~~~~~~~ > | socket_uri > ../tests/qtest/igb-test.c:219:15: error: nested extern declaration of > 'socketpair' [-Werror=nested-externs] Will add ifndef to make sure windows won't try to compile the related test. > > build-oss-fuzz failed on something involving fuzzing eepro100: > https://gitlab.com/qemu-project/qemu/-/jobs/3889073821 > > The 'crash-test' jobs failed with an assertion > "qemu-system-i386: -device igb: MSI-X is not supported by interrupt controller": > https://gitlab.com/qemu-project/qemu/-/jobs/3889073868 > https://gitlab.com/qemu-project/qemu/-/jobs/3889073873 This is because we use error_abort for msix/msi_init(). I think we can gracefully fail in those cases. Will send a new version of pull request. Thanks > > thanks > -- PMM >
On 8/3/23 07:56, Jason Wang wrote: > On Wed, Mar 8, 2023 at 4:43 AM Philippe Mathieu-Daudé <philmd@linaro.org> wrote: >> >> On 7/3/23 18:01, Peter Maydell wrote: >>> On Tue, 7 Mar 2023 at 07:08, Jason Wang <jasowang@redhat.com> wrote: >>>> >>>> The following changes since commit 817fd33836e73812df2f1907612b57750fcb9491: >>>> >>>> Merge tag 'audio-pull-request' of https://gitlab.com/marcandre.lureau/qemu into staging (2023-03-06 14:06:06 +0000) >>>> >>>> are available in the git repository at: >>>> >>>> https://github.com/jasowang/qemu.git tags/net-pull-request >>>> >>>> for you to fetch changes up to c19b566a3898510ec2b3e881b3fb78614b240414: >>>> >>>> hw/net/eepro100: Replace DO_UPCAST(EEPRO100State) by EEPRO100() (2023-03-07 14:55:39 +0800) >>>> >>>> ---------------------------------------------------------------- >> >>> build-oss-fuzz failed on something involving fuzzing eepro100: >>> https://gitlab.com/qemu-project/qemu/-/jobs/3889073821 >> Jason, please drop my patches. I'll look at that failure. Before "hw/net/eepro100: Convert reset handler to DeviceReset", e100_pci_reset() is only called once from DeviceRealize _before_ the device is realized. After, 1/ it can be called multiple times and 2/ it seems to do stuffs that really belong to DeviceRealize (should be called once), in particular pci_add_capability(). I *think* it should be illegal to call pci_add_capability() _after_ a device is realized. Auditing pci_add_capability(), there is only one other use before realize: amdvi_sysbus_realize() in hw/i386/amd_iommu.c.
On Wed, Mar 08, 2023 at 08:40:42AM +0100, Philippe Mathieu-Daudé wrote: > On 8/3/23 07:56, Jason Wang wrote: > > On Wed, Mar 8, 2023 at 4:43 AM Philippe Mathieu-Daudé <philmd@linaro.org> wrote: > > > > > > On 7/3/23 18:01, Peter Maydell wrote: > > > > On Tue, 7 Mar 2023 at 07:08, Jason Wang <jasowang@redhat.com> wrote: > > > > > > > > > > The following changes since commit 817fd33836e73812df2f1907612b57750fcb9491: > > > > > > > > > > Merge tag 'audio-pull-request' of https://gitlab.com/marcandre.lureau/qemu into staging (2023-03-06 14:06:06 +0000) > > > > > > > > > > are available in the git repository at: > > > > > > > > > > https://github.com/jasowang/qemu.git tags/net-pull-request > > > > > > > > > > for you to fetch changes up to c19b566a3898510ec2b3e881b3fb78614b240414: > > > > > > > > > > hw/net/eepro100: Replace DO_UPCAST(EEPRO100State) by EEPRO100() (2023-03-07 14:55:39 +0800) > > > > > > > > > > ---------------------------------------------------------------- > > > > > > > build-oss-fuzz failed on something involving fuzzing eepro100: > > > > https://gitlab.com/qemu-project/qemu/-/jobs/3889073821 > > > Jason, please drop my patches. I'll look at that failure. > > Before "hw/net/eepro100: Convert reset handler to DeviceReset", > e100_pci_reset() is only called once from DeviceRealize _before_ > the device is realized. > > After, 1/ it can be called multiple times and 2/ it seems to do > stuffs that really belong to DeviceRealize (should be called once), > in particular pci_add_capability(). > > I *think* it should be illegal to call pci_add_capability() _after_ > a device is realized. Auditing pci_add_capability(), there is only > one other use before realize: amdvi_sysbus_realize() in > hw/i386/amd_iommu.c. Calling pci_add_capability when VM is running is likely to confuse guests, yes.
On 8/3/23 13:17, Michael S. Tsirkin wrote: > On Wed, Mar 08, 2023 at 08:40:42AM +0100, Philippe Mathieu-Daudé wrote: >> On 8/3/23 07:56, Jason Wang wrote: >>> On Wed, Mar 8, 2023 at 4:43 AM Philippe Mathieu-Daudé <philmd@linaro.org> wrote: >>>> >>>> On 7/3/23 18:01, Peter Maydell wrote: >>>>> On Tue, 7 Mar 2023 at 07:08, Jason Wang <jasowang@redhat.com> wrote: >>>>>> >>>>>> The following changes since commit 817fd33836e73812df2f1907612b57750fcb9491: >>>>>> >>>>>> Merge tag 'audio-pull-request' of https://gitlab.com/marcandre.lureau/qemu into staging (2023-03-06 14:06:06 +0000) >>>>>> >>>>>> are available in the git repository at: >>>>>> >>>>>> https://github.com/jasowang/qemu.git tags/net-pull-request >>>>>> >>>>>> for you to fetch changes up to c19b566a3898510ec2b3e881b3fb78614b240414: >>>>>> >>>>>> hw/net/eepro100: Replace DO_UPCAST(EEPRO100State) by EEPRO100() (2023-03-07 14:55:39 +0800) >>>>>> >>>>>> ---------------------------------------------------------------- >>>> >>>>> build-oss-fuzz failed on something involving fuzzing eepro100: >>>>> https://gitlab.com/qemu-project/qemu/-/jobs/3889073821 >>>> Jason, please drop my patches. I'll look at that failure. >> >> Before "hw/net/eepro100: Convert reset handler to DeviceReset", >> e100_pci_reset() is only called once from DeviceRealize _before_ >> the device is realized. >> >> After, 1/ it can be called multiple times and 2/ it seems to do >> stuffs that really belong to DeviceRealize (should be called once), >> in particular pci_add_capability(). >> >> I *think* it should be illegal to call pci_add_capability() _after_ >> a device is realized. Auditing pci_add_capability(), there is only >> one other use before realize: amdvi_sysbus_realize() in >> hw/i386/amd_iommu.c. > > Calling pci_add_capability when VM is running is likely to confuse > guests, yes. Thanks for confirming. Similar pattern: msi_init(). While trying to fix that in hw/i386/amd_iommu.c I realized this device isn't in a good shape, almost unmaintained: 2 bugfixes in since 7 years, the other commits are generic API cleanups. I'll post the series and we can discuss that there.
On Wed, Mar 08, 2023 at 01:21:52PM +0100, Philippe Mathieu-Daudé wrote: > On 8/3/23 13:17, Michael S. Tsirkin wrote: > > On Wed, Mar 08, 2023 at 08:40:42AM +0100, Philippe Mathieu-Daudé wrote: > > > On 8/3/23 07:56, Jason Wang wrote: > > > > On Wed, Mar 8, 2023 at 4:43 AM Philippe Mathieu-Daudé <philmd@linaro.org> wrote: > > > > > > > > > > On 7/3/23 18:01, Peter Maydell wrote: > > > > > > On Tue, 7 Mar 2023 at 07:08, Jason Wang <jasowang@redhat.com> wrote: > > > > > > > > > > > > > > The following changes since commit 817fd33836e73812df2f1907612b57750fcb9491: > > > > > > > > > > > > > > Merge tag 'audio-pull-request' of https://gitlab.com/marcandre.lureau/qemu into staging (2023-03-06 14:06:06 +0000) > > > > > > > > > > > > > > are available in the git repository at: > > > > > > > > > > > > > > https://github.com/jasowang/qemu.git tags/net-pull-request > > > > > > > > > > > > > > for you to fetch changes up to c19b566a3898510ec2b3e881b3fb78614b240414: > > > > > > > > > > > > > > hw/net/eepro100: Replace DO_UPCAST(EEPRO100State) by EEPRO100() (2023-03-07 14:55:39 +0800) > > > > > > > > > > > > > > ---------------------------------------------------------------- > > > > > > > > > > > build-oss-fuzz failed on something involving fuzzing eepro100: > > > > > > https://gitlab.com/qemu-project/qemu/-/jobs/3889073821 > > > > > Jason, please drop my patches. I'll look at that failure. > > > > > > Before "hw/net/eepro100: Convert reset handler to DeviceReset", > > > e100_pci_reset() is only called once from DeviceRealize _before_ > > > the device is realized. > > > > > > After, 1/ it can be called multiple times and 2/ it seems to do > > > stuffs that really belong to DeviceRealize (should be called once), > > > in particular pci_add_capability(). > > > > > > I *think* it should be illegal to call pci_add_capability() _after_ > > > a device is realized. Auditing pci_add_capability(), there is only > > > one other use before realize: amdvi_sysbus_realize() in > > > hw/i386/amd_iommu.c. > > > > Calling pci_add_capability when VM is running is likely to confuse > > guests, yes. > > Thanks for confirming. Similar pattern: msi_init(). > > While trying to fix that in hw/i386/amd_iommu.c I realized this device > isn't in a good shape, almost unmaintained: 2 bugfixes in since 7 years, > the other commits are generic API cleanups. I'll post the series and > we can discuss that there. Absolutely. A mix of VTD or for that matter virtio iommu and AMD CPUs seems to work well enough that most people don't bother. I vaguely remember spec review showed some things were hard to support correctly with shadowing, but I don't remember the detail (and our shadowing with VTD only works because it matches what drivers are doing).
On Wed, Mar 8, 2023 at 8:25 PM Michael S. Tsirkin <mst@redhat.com> wrote: > > On Wed, Mar 08, 2023 at 01:21:52PM +0100, Philippe Mathieu-Daudé wrote: > > On 8/3/23 13:17, Michael S. Tsirkin wrote: > > > On Wed, Mar 08, 2023 at 08:40:42AM +0100, Philippe Mathieu-Daudé wrote: > > > > On 8/3/23 07:56, Jason Wang wrote: > > > > > On Wed, Mar 8, 2023 at 4:43 AM Philippe Mathieu-Daudé <philmd@linaro.org> wrote: > > > > > > > > > > > > On 7/3/23 18:01, Peter Maydell wrote: > > > > > > > On Tue, 7 Mar 2023 at 07:08, Jason Wang <jasowang@redhat.com> wrote: > > > > > > > > > > > > > > > > The following changes since commit 817fd33836e73812df2f1907612b57750fcb9491: > > > > > > > > > > > > > > > > Merge tag 'audio-pull-request' of https://gitlab.com/marcandre.lureau/qemu into staging (2023-03-06 14:06:06 +0000) > > > > > > > > > > > > > > > > are available in the git repository at: > > > > > > > > > > > > > > > > https://github.com/jasowang/qemu.git tags/net-pull-request > > > > > > > > > > > > > > > > for you to fetch changes up to c19b566a3898510ec2b3e881b3fb78614b240414: > > > > > > > > > > > > > > > > hw/net/eepro100: Replace DO_UPCAST(EEPRO100State) by EEPRO100() (2023-03-07 14:55:39 +0800) > > > > > > > > > > > > > > > > ---------------------------------------------------------------- > > > > > > > > > > > > > build-oss-fuzz failed on something involving fuzzing eepro100: > > > > > > > https://gitlab.com/qemu-project/qemu/-/jobs/3889073821 > > > > > > Jason, please drop my patches. I'll look at that failure. > > > > > > > > Before "hw/net/eepro100: Convert reset handler to DeviceReset", > > > > e100_pci_reset() is only called once from DeviceRealize _before_ > > > > the device is realized. > > > > > > > > After, 1/ it can be called multiple times and 2/ it seems to do > > > > stuffs that really belong to DeviceRealize (should be called once), > > > > in particular pci_add_capability(). > > > > > > > > I *think* it should be illegal to call pci_add_capability() _after_ > > > > a device is realized. Auditing pci_add_capability(), there is only > > > > one other use before realize: amdvi_sysbus_realize() in > > > > hw/i386/amd_iommu.c. > > > > > > Calling pci_add_capability when VM is running is likely to confuse > > > guests, yes. > > > > Thanks for confirming. Similar pattern: msi_init(). > > > > While trying to fix that in hw/i386/amd_iommu.c I realized this device > > isn't in a good shape, almost unmaintained: 2 bugfixes in since 7 years, > > the other commits are generic API cleanups. Last time I tried AMD vIOMMU it didn't even boot. We need to check if anyone can maintain that driver (adding Wei and Peter). > I'll post the series and > > we can discuss that there. > > Absolutely. A mix of VTD or for that matter virtio iommu and AMD CPUs > seems to work well enough that most people don't bother. > I vaguely remember spec review showed some things were hard > to support correctly with shadowing, but I don't remember > the detail Something like caching mode otherwise we need to trap the page table modification via userfaultfd? > (and our shadowing with VTD only works because > it matches what drivers are doing). I think not, VTD has a caching mode that is designed to be friendly for virtualization/emulation (mentioned in the spec). But it would be replaced by hardware accelerated one soon. Thanks > > -- > MST >