Re: signal 8 (floating point exception) upon resume

看板FB_current作者時間12年前 (2014/03/01 10:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/20 (看更多)
On 28 February 2014 15:35, Adrian Chadd <adrian@freebsd.org> wrote: > ... how'd this ever work in the past then? > ... and I've submitted it as a PR: kern/187152 Thanks, -a > > -a > > > On 28 February 2014 13:08, John Baldwin <jhb@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@ 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 Baldwin _______________________________________________ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"
文章代碼(AID): #1J4KQZ-F (FB_current)
討論串 (同標題文章)
文章代碼(AID): #1J4KQZ-F (FB_current)