... how'd this ever work in the past then? -a On 28 February 2014 13:08, John Baldwin <jhb_at_freebsd.org> wrote: > On Friday, February 28, 2014 1:15:45 pm Adrian Chadd wrote: >> Hi, >> >> On my i386 -HEAD laptops (running -HEAD as of last night, but it's >> been a problem for a while) I occasionally hit a point where I get an >> FPE on _all_ processes upon resume. >> >> I can still do a clean shutdown through the power-button method, but I >> can't do anything else. >> >> Has anyone seen this before? Does anyone have an inkling of an idea >> why I'd be getting FPE's for things like ps and sh? > > I'm guessing fpcurthread is stale. We should probably be flushing > the FPU state on suspend and starting off without any FPU state on > resume. > > Ah, see this bit here in x86/acpica/acpi_wakeup.c: > > > int > acpi_sleep_machdep(struct acpi_softc *sc, int state) > { > ... > if (savectx(susppcbs[0])) { > #ifdef __amd64__ > ctx_fpusave(susppcbs[0]->pcb_fpususpend); > #endif > ... > } > > Looks like you need to implement ctx_fpusave() for i386. kib_at_ did it as part > of the AVX work, but I wonder if you can just steal the amd64 ctx_fpusave() > and have it call npxsave() instead of fpxsave()? Not sure if you'd need it to > be in asm as it is on amd64 or if you can do this in C. > > -- > John BaldwinReceived on Fri Feb 28 2014 - 22:35:15 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:47 UTC