linux-mips
[Top] [All Lists]

Re: Preemption in do_cpu

To: jsun@junsun.net
Subject: Re: Preemption in do_cpu
From: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Date: Tue, 19 Apr 2005 10:24:37 +0900 (JST)
Cc: vksavl@cityline.ru, linux-mips@linux-mips.org, mlachwani@mvista.com
In-reply-to: <20050418212021.GA12996@gw.junsun.net>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <1098468403.4266.42.camel@prometheus.mvista.com> <1807918959.20050418133246@cityline.ru> <20050418212021.GA12996@gw.junsun.net>
Sender: linux-mips-bounce@linux-mips.org
>>>>> On Mon, 18 Apr 2005 14:20:21 -0700, Jun Sun <jsun@junsun.net> said:
jsun> fpu_emulator maintains global variables and in general is
jsun> dangerous to be preempted in the middle of processing.

jsun> The quick fix for this problem is probably to move preemption
jsun> disabling/ enabling inside fpu_emulator_cop1Handler().

Also, get_user/put_user should not be used with preempt disabled.

Here is Quick and dirty workaround (including some other preemption fixes):

http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20041025.003619.92586674.anemo%40mba.ocn.ne.jp

jsun> Better fix is probably to modify fpu emulator so that it is
jsun> preemption safe overall.

Sure.  It will make fpu emulator SMP safe also.

---
Atsushi Nemoto

<Prev in Thread] Current Thread [Next in Thread>