On Sat, Feb 18, 2017 at 04:18:05AM -0800, Mark Millard wrote: > [Note: I experiment with clang based powerpc64 builds, > reporting problems that I find. Justin is familiar > with this, as is Nathan.] > > I tried to update the PowerMac G5 (a so-called "Quad Core") > that I have access to from head -r312761 to -r313864 and > ended up with random panics and hang ups in fairly short > order after booting. > > Some approximate bisecting for the kernel lead to: > (sometimes getting part way into a buildkernel attempt > for a different version before a failure happens) > > -r313266: works (just before use of atomic_fcmpset) > vs. > -r313271: fails (last of the "use atomic_fcmpset" check-ins) > > (I did not try -r313268 through -r313270 as the use was > gradually added.) > > So I'm currently running a -r313864 world with a -r313266 > kernel. > > No kernel that I tried that was from before -r313266 had the > problems. > > Any kernel that I tried that was from after -r313271 had the > problems. > > Of course I did not try them all in other direction. :) >
I found that spin mutexes were not properly handling this, fixed in r313996. Locally I added a if (cpu_tick() % 2) return (0); snipped to amd64 fcmpset to simulate failures. Everything works, while it would easily fail without the patch. That said, I hope this concludes the 'missing check for not-reread value of failed fcmpset' saga. -- Mateusz Guzik <mjguzik gmail.com> _______________________________________________ email@example.com mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"