On Thu, 18 Jan 2024 at 06:49, Kai <kai.k...@windriver.com> wrote: > > On 1/18/24 01:31, Peter Maydell wrote: > > (cc'd the people listed for this file in MAINTAINERS) > > > > On Tue, 9 Jan 2024 at 13:53, Kai Kang <kai.k...@windriver.com> wrote: > >> When this section of source codes were added via commit: > >> > >> * 02e2da45c4 Add common BusState > >> > >> it added devices to bus with LIST_INSERT_HEAD() which operated on the > >> single direction list. It didn't have something like LIST_INSERT_TAIL() > >> at that time and kept that way when turned to QTAILQ. > >> > >> Then it causes the fist device in qemu command line inserted at the end > >> of the bus child link list. And when realize them, the first device will > >> be the last one to be realized. > >> > >> Replace QTAILQ_INSERT_HEAD_RCU() with QTAILQ_INSERT_TAIL_RCU() to make > >> sure that devices are added to bus with the sequence in the command > >> line. > > What are the problems being caused by the the list items being added > > in reverse order? Your commit message doesn't say what specific > > bug or problem it's trying to fix. > > The problem I met was just as I asked for for help in the maillist on > Dec 18, 2023. > > The indexes of serial isa devices changes with the commit dcdbfaafe90a > since qemu 6.2.0. > Before the commit, it creates devices literally with "1" & "2": > > @@ -1252,8 +1222,6 @@ static void build_isa_devices_aml(Aml *table) > aml_append(scope, build_fdc_device_aml(fdc)); > } > aml_append(scope, build_lpt_device_aml()); > - build_com_device_aml(scope, 1); > - build_com_device_aml(scope, 2); > > After apply the commit, it uses the 'aml builder' way and the devices > are handled in reverse way. > Then the indexes are reversed. It affects guest os such as freebsd. When > run `pstat -t` on freebsd > with qemu, the sequence of the output is not right. > > root@freebsd:~ # pstat -t > LINE INQ CAN LIN LOW OUTQ USE LOW COL SESS PGID STATE > ttyu2 0 0 0 0 0 0 0 0 0 0 IC > ttyu3 0 0 0 0 0 0 0 0 0 0 IC > ttyu1 0 0 0 0 0 0 0 0 0 0 IC > ttyu0 1920 0 0 192 1984 0 199 0 664 668 ICOi > > It is expected with ascend order which keeps the same behavior with > older version qemu.
Thanks. This seems like something that should be fixed in the AML related code, not here. -- PMM