[lkml]   [2015]   [Apr]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH 01/16] x86, fpu: wrap get_xsave_addr() to make it safer
On Wed, Apr 22, 2015 at 03:16:18PM +0200, Oleg Nesterov wrote:
> I agree, tsk_used_math(tsk) looks better, simpy because we have this
> argument.
> But this "tsk" should be always current, otherwise this code is wrong

This is exactly what I'm asking: is that always the case?...

> anyway. Say, unlazy_fpu(tsk) can't work if tsk != current.
> So perhaps the comment should be updated...
> > Because used_math() is looking at current, maybe even in
> > preemption-enabled paths - I'm eyeing task_get_bounds_dir() - and
> > that current might get changed from under us and it might happen that
> > current != tsk. Yes, no?
> Not sure I understand... "current" can't change from under us?

... I'm not sure all tsk_get_xsave_field() callers disable preemption.
If not, then current can change from under us...

> Even if this CPU switches to another thread which executes the same code,
> that thread will obviously see another "current", but its "tsk" variable
> will still match its "current".

Well, we want to see if @tsk used math, not necessarily if current used
math, especially if it is another task, right?

I read tsk_get_xsave_field(@tsk, ) as give me the xsave field of @tsk
but doing used_math() we're querying current and I'm not sure

tsk == current

in all the call sites of tsk_get_xsave_field().

Does that make more sense?


ECO tip #101: Trim your mails when you reply.

 \ /
  Last update: 2015-04-22 16:01    [W:0.075 / U:5.504 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site