Messages in this thread | | | From | Linus Torvalds <> | Date | Thu, 10 May 2012 10:04:56 -0700 | Subject | Re: [PATCH 1/3] coredump: flush the fpu exit state for proper multi-threaded core dump |
| |
On Thu, May 10, 2012 at 9:55 AM, Oleg Nesterov <oleg@redhat.com> wrote: > > My point was, there is no any guarantee prepare_to_copy() does the flush. > An architecture can do this in copy_thread() or arch_dup_task_struct(), > for example. In fact I do not understand why x86 doesn't do this.
I agree that it would actually make more sense to do in arch_dup_task_struct(). I had trouble finding where the heck the fork() code did the FPU fixes back when I was fighting the FPU corruption thing.
The prepare_to_copy() thing is, I think, purely historical, and I think we should in fact get rid of it. Everybody else makes it a no-op, I think, with a *few* exceptions that seem to have copied the x86 model of flushing the FPU there.
So if somebody sends me a patch to remove that thing, and move the few existing users to arch_dup_task_struct(), I'd take it.
I think it would be a mistake to use it in the exit path. Make an explicit "drop_thread_state()" or similar macro, which can undo FPU state and possibly other architecture state.
Linus
| |