Hi Richard, On 2016/3/13 15:58, Richard Weinberger wrote: > Eli, > > Am 12.03.2016 um 08:08 schrieb Eli Cooper: >> > Hi Richard, >> > >> > On 2016/3/10 4:44, Richard Weinberger wrote: >>> >> Hmm, this needs rework. Having everything on the stack is not good. >> > >> > Okay, I'll rework the functions whose stack size is greater than the >> > warning threshold by using kmalloc. > I fear it is not that easy. Having a kmalloc() per context switch would > be every expensive. Even for UML.
Actually only two functions' stack frame size exceed kernel's default warning threshold (1024 bytes) after the _xstate extension, i.e., copy_sc_from_user and copy_sc_to_user. That's because they have an _xstate on stack as well as a sigcontext, which contains another _xstate. Context switches due to signal handling are rare; thus I think having a kmalloc() for signal handling is acceptable. >>> >> Can you also create a selftest such that this bug cannot happen again? >> > >> > It seems that instead of writing a self-test showing this problem cannot >> > happen again, I wrote a test that manifested another bug that is not >> > directly related to my patch. >> > >> > Without applying my patch, the current UML should support XMM registers >> > because those are covered by _fpstate and PTRACE_GETFPREGS. But it >> > seemed that XMM registers are not restored after the signal handler >> > returns. >> > >> > In the following quick test, the main loop should run indefinitely >> > despite XMM registers are modified by the signal handler. But in UML, >> > the loop breaks randomly within a minute or two, showing that the >> > registers are corrupted. So far I haven't found the cause. Any hints? > Meh. :( > Can you figure out whether the issue depends on the host kernel? i.e. try > something older > and Linus' tree. > UML is a heavy user of ptrace(), maybe the recent FPU cleanup on x86 broke > something. No, it seems that this issue does not depend on the host kernel, UML kernel, or CPU. I can reproduce this bug on a variety of combinations of them, with the host kernel ranging from 2.6.32 to 3.19 to 4.5. Thanks, Eli > > Thanks, > //richard > ------------------------------------------------------------------------------ Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785111&iu=/4140 _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel