You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I seem to have found an infinite loop in the GUI code, or at least pathological slowness that fails to un-freeze the GUI after 30 minutes at 100% CPU. This does not require a loaded design.
To reproduce:
Get nextpnr 0.7. Specifically, I'm using the nixpkgs-unstable build, which is built at the nextpnr-0.7 tag with a single change irrelevant to this issue (optionally switches out python interpreters in the ice40 variant).
Start the GUI: nextpnr-ecp5 --gui
Take care to avoid mousing over the properties panel (highlighted below) for now
In the elements list, select the "Wires" tab, then expand X0/Y0 and select the first wire within (X0/Y0/G_JLECLK1)
Mouse over the first few elements in the properties panel ("Name", "Type"), observe normal behavior.
Mouse over the entries under "Pips Downhill" or "Pips Uphill". Observe tooltip doesn't render, and GUI locks up.
In top or similar tool, observe nextpnr-ecp5 pegging one core at 100%. I gave it 30min on a 5950X to unstick itself, without success.
Here is perf data while the GUI is spinning, recording full stack traces for 60s. Take care, the 1.6MiB gz decompresses to ~50MiB.
I looked through the commit history since 0.7 was tagged, and don't see an obvious commit that would have fixed this. I'll try to build from HEAD and check that it reproduces there.
The text was updated successfully, but these errors were encountered:
I seem to have found an infinite loop in the GUI code, or at least pathological slowness that fails to un-freeze the GUI after 30 minutes at 100% CPU. This does not require a loaded design.
To reproduce:
nextpnr-ecp5 --gui
X0/Y0/G_JLECLK1
)top
or similar tool, observe nextpnr-ecp5 pegging one core at 100%. I gave it 30min on a 5950X to unstick itself, without success.Here is perf data while the GUI is spinning, recording full stack traces for 60s. Take care, the 1.6MiB gz decompresses to ~50MiB.
perf.data.gz
perf report
says the GUI is spending 99% of runtime in this stack trace, with 40% of that being inQList<nextpnr_ecp5::TreeModel::Item*>::removeAll
:I looked through the commit history since 0.7 was tagged, and don't see an obvious commit that would have fixed this. I'll try to build from HEAD and check that it reproduces there.
The text was updated successfully, but these errors were encountered: