[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 0/6] Resolve TYPE_PIIX3_XEN_DEVICE




Am 4. Januar 2023 13:11:16 UTC schrieb Chuck Zmudzinski <brchuckz@xxxxxxx>:
>On 1/4/2023 7:13 AM, Bernhard Beschow wrote:
>> Am 4. Januar 2023 08:18:59 UTC schrieb Chuck Zmudzinski <brchuckz@xxxxxxx>:
>> >On 1/3/2023 8:38 AM, Bernhard Beschow wrote:
>> >>
>> >>
>> >> On Tue, Jan 3, 2023 at 2:17 PM Philippe Mathieu-Daudé <philmd@xxxxxxxxxx> 
>> >> wrote:
>> >>
>> >>     Hi Chuck,
>> >>
>> >>     On 3/1/23 04:15, Chuck Zmudzinski wrote:
>> >>     > On 1/2/23 4:34 PM, Bernhard Beschow wrote:
>> >>     >> This series first renders TYPE_PIIX3_XEN_DEVICE redundant and 
>> >> finally removes
>> >>     >> it. The motivation is to 1/ decouple PIIX from Xen and 2/ to make 
>> >> Xen in the PC
>> >>     >> machine agnostic to the precise southbridge being used. 2/ will 
>> >> become
>> >>     >> particularily interesting once PIIX4 becomes usable in the PC 
>> >> machine, avoiding
>> >>     >> the "Frankenstein" use of PIIX4_ACPI in PIIX3.
>> >>     >>
>> >>     >> Testing done:
>> >>     >> None, because I don't know how to conduct this properly :(
>> >>     >>
>> >>     >> Based-on: <20221221170003.2929-1-shentey@xxxxxxxxx>
>> >>     >>            "[PATCH v4 00/30] Consolidate PIIX south bridges"
>> >>
>> >>     This series is based on a previous series:
>> >>     
>> >> https://lore.kernel.org/qemu-devel/20221221170003.2929-1-shentey@xxxxxxxxx/
>> >>     (which itself also is).
>> >>
>> >>     >> Bernhard Beschow (6):
>> >>     >>    include/hw/xen/xen: Make xen_piix3_set_irq() generic and rename 
>> >> it
>> >>     >>    hw/isa/piix: Reuse piix3_realize() in piix3_xen_realize()
>> >>     >>    hw/isa/piix: Wire up Xen PCI IRQ handling outside of PIIX3
>> >>     >>    hw/isa/piix: Avoid Xen-specific variant of piix_write_config()
>> >>     >>    hw/isa/piix: Resolve redundant k->config_write assignments
>> >>     >>    hw/isa/piix: Resolve redundant TYPE_PIIX3_XEN_DEVICE
>> >>     >>
>> >>     >>   hw/i386/pc_piix.c             | 34 ++++++++++++++++--
>> >>     >>   hw/i386/xen/xen-hvm.c         |  9 +++--
>> >>     >>   hw/isa/piix.c                 | 66 
>> >> +----------------------------------
>> >>     >
>> >>     > This file does not exist on the Qemu master branch.
>> >>     > But hw/isa/piix3.c and hw/isa/piix4.c do exist.
>> >>     >
>> >>     > I tried renaming it from piix.c to piix3.c in the patch, but
>> >>     > the patch set still does not apply cleanly on my tree.
>> >>     >
>> >>     > Is this patch set re-based against something other than
>> >>     > the current master Qemu branch?
>> >>     >
>> >>     > I have a system that is suitable for testing this patch set, but
>> >>     > I need guidance on how to apply it to the Qemu source tree.
>> >>
>> >>     You can ask Bernhard to publish a branch with the full work,
>> >>
>> >>
>> >> Hi Chuck,
>> >>
>> >> ... or just visit 
>> >> https://patchew.org/QEMU/20230102213504.14646-1-shentey@xxxxxxxxx/ . 
>> >> There you'll find a git tag with a complete history and all instructions!
>> >>
>> >> Thanks for giving my series a test ride!
>> >>
>> >> Best regards,
>> >> Bernhard
>> >>
>> >>     or apply each series locally. I use the b4 tool for that:
>> >>     https://b4.docs.kernel.org/en/latest/installing.html
>> >>
>> >>     i.e.:
>> >>
>> >>     $ git checkout -b shentey_work
>> >>     $ b4 am 20221120150550.63059-1-shentey@xxxxxxxxx
>> >>     $ git am
>> >>     
>> >> ./v2_20221120_shentey_decouple_intx_to_lnkx_routing_from_south_bridges.mbx
>> >>     $ b4 am 20221221170003.2929-1-shentey@xxxxxxxxx
>> >>     $ git am
>> >>     
>> >> ./v4_20221221_shentey_this_series_consolidates_the_implementations_of_the_piix3_and_piix4_south.mbx
>> >>     $ b4 am 20230102213504.14646-1-shentey@xxxxxxxxx
>> >>     $ git am ./20230102_shentey_resolve_type_piix3_xen_device.mbx
>> >>
>> >>     Now the branch 'shentey_work' contains all the patches and you can 
>> >> test.
>> >>
>> >>     Regards,
>> >>
>> >>     Phil.
>> >>
>> >
>> >Hi Phil and Bernard,
>> >
>> >I tried applying these 3 patch series on top of the current qemu
>> >master branch.
>> >
>> >Unfortunately, I saw a regression, so I can't give a tested-by tag yet.
>>
>> Hi Chuck,
>>
>> Thanks for your valuable test report! I think the culprit may be commit 
>> https://lists.nongnu.org/archive/html/qemu-devel/2023-01/msg00102.html where 
>> now 128 PIRQs are considered rather than four. I'll revisit my series and 
>> will prepare a v2 in the next days. I think there is no need for further 
>> testing v1.
>>
>> Thanks,
>> Bernhard
>
>Hi Bernhard,
>
>Thanks for letting me know I do not need to test v1 further. I agree the
>symptoms are that it is an IRQ problem - it looks like IRQs associated with
>the emulated usb tablet device are not making it to the guest with the
>patched v1 piix device on xen.

All PCI IRQs were routed to PCI slot 0. This should be fixed in v2 now.

>I will be looking for your v2 in coming days and try it out also!

Thank you! Here it is: 
https://patchew.org/QEMU/20230104144437.27479-1-shentey@xxxxxxxxx/

Best regards,
Bernhard

>
>Best regards,
>
>Chuck
>
>>
>> >
>> >Here are the details of the testing I did so far:
>> >
>> >Xen only needs one target, the i386-softmmu target which creates
>> >the qemu-system-i386 binary that Xen uses for its device model.
>> >That target compiled and linked with no problems with these 3
>> >patch series applied on top of qemu master. I didn't try building
>> >any other targets.
>> >
>> >My tests used the xenfv machine type with the xen platform
>> >pci device, which is ordinarily called a xen hvm guest with xen
>> >paravirtualized network and block device drivers. It is based on the
>> >i440fx machine type and so emulates piix3. I tested the xen
>> >hvm guests with two different configurations as described below.
>> >
>> >I tested both Linux and Windows guests, with mixed results. With the
>> >current Qemu master (commit 222059a0fccf4 without the 3 patch
>> >series applied), all tested guest configurations work normally for both
>> >Linux and Windows guests.
>> >
>> >With these 3 patch series applied on top of the qemu master branch,
>> >which tries to consolidate piix3 and piix4 and resolve the xen piix3
>> >device that my guests use, I unfortunately got a regression.
>> >
>> >The regression occurred with a configuration that uses the qemu
>> >bochs stdvga graphics device with a vnc display, and the qemu
>> >usb-tablet device to emulate the mouse and keyboard. After applying
>> >the 3 patch series, the emulated mouse is not working at all for Linux
>> >guests. It works for Windows guests, but the mouse pointer in the
>> >guest does not follow the mouse pointer in the vnc window as closely
>> >as it does without the 3 patch series. So this is the bad news of a
>> >regression introduced somewhere in these 3 patch series.
>> >
>> >The good news is that by using guests in a configuration that does
>> >not use the qemu usb-tablet device or the bochs stdvga device but
>> >instead uses a real passed through usb3 controller with a real usb
>> >mouse and a real usb keyboard connected, and also the real sound
>> >card and vga device passed through and a 1920x1080 HDMI monitor,
>> >there is no regression introduced by the 3 patch series and both Linux
>> >and Windows guests in that configuration work perfectly.
>> >
>> >My next test will be to test Bernhard's published git tag without
>> >trying to merge the 3 patch series into master and see if that also
>> >has the regression. I also will double check that I didn't make
>> >any mistakes in merging the 3 patch series by creating the shentey_work
>> >branch with b4 and git as Phil described and compare that to my
>> >working tree.
>> >
>> >I also will try testing only the first series, then the first series and the
>> >second series, to try to determine in which of the 3 series the regression
>> >is introduced.
>> >
>> >Best regards,
>> >
>> >Chuck
>



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.