lkml.org 
[lkml]   [2012]   [Apr]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: ptrace && fpu_lazy_restore
    On 04/14, Linus Torvalds wrote:
    >
    > So I actually think that I would prefer the patch that invalidates the
    > FPU caches more aggressively. Sure, we don't really *need* to
    > invalidate if we're just reading, but I'd almost prefer to just have
    > it done once in "init_fpu()".

    Agreed. I'll send your patch back to you tomorrow.

    > The only case where we care about the FPU caches remaining is actually
    > the nice normal "we just switched tasks through normal scheduling".

    Yes. And there is another case when fpu_lazy_restore() returns the
    false positive.

    Suppose that fpu_owner_task exits on CPU_0, and then fork() reuses
    its task_struct. The new child is still fpu_owner_task and this is
    obviously wrong (unless of course another thread uses fpu).

    Initially I thought this should be fixed too, but it seems that
    "p->fpu_counter = 0" in copy_thread() saves us.

    This looks a bit fragile... And could you confirm this is really
    fine?


    Btw, do we really need this "old->thread.fpu.last_cpu = ~0" in
    the "else" branch of switch_fpu_prepare()? Just curious, I guees
    this doesn't matter since we reset old->fpu_counter. But if we
    can remove this line, then perhaps we can another optimization.

    Oleg.



    \
     
     \ /
      Last update: 2012-04-16 00:41    [W:0.029 / U:120.500 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site