From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:53472) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SUdrA-0002GV-FP for qemu-devel@nongnu.org; Wed, 16 May 2012 09:01:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SUdr2-0001IX-9j for qemu-devel@nongnu.org; Wed, 16 May 2012 09:01:32 -0400 Message-ID: <4FB3A51E.7060200@suse.de> Date: Wed, 16 May 2012 15:01:18 +0200 From: =?UTF-8?B?QW5kcmVhcyBGw6RyYmVy?= MIME-Version: 1.0 References: <1336608892-30501-1-git-send-email-afaerber@suse.de> <1336608892-30501-74-git-send-email-afaerber@suse.de> <4FACF766.7050005@suse.de> <4FB39F3F.5030603@redhat.com> In-Reply-To: <4FB39F3F.5030603@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH next v2 73/74] linux-user: Use cpu_reset() after cpu_init() / cpu_copy() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Igor Mammedov Cc: Peter Maydell , Riku Voipio , qemu-devel@nongnu.org, Alexander Graf , Blue Swirl , qemu-ppc , Anthony Liguori , Paolo Bonzini Am 16.05.2012 14:36, schrieb Igor Mammedov: > On 05/11/2012 01:26 PM, Andreas F=C3=A4rber wrote: >> Am 11.05.2012 13:22, schrieb Peter Maydell: >>> On 10 May 2012 01:14, Andreas F=C3=A4rber wrote: >>>> Eliminates cpu_state_reset() usage. >>>> >>>> Signed-off-by: Andreas F=C3=A4rber >>>> --- >>>> linux-user/main.c | 2 +- >>>> linux-user/syscall.c | 2 +- >>>> 2 files changed, 2 insertions(+), 2 deletions(-) >>>> >>>> diff --git a/linux-user/main.c b/linux-user/main.c >>>> index 191b750..49108b8 100644 >>>> --- a/linux-user/main.c >>>> +++ b/linux-user/main.c >>>> @@ -3405,7 +3405,7 @@ int main(int argc, char **argv, char **envp) >>>> exit(1); >>>> } >>>> #if defined(TARGET_I386) || defined(TARGET_SPARC) || >>>> defined(TARGET_PPC) >>>> - cpu_state_reset(env); >>>> + cpu_reset(ENV_GET_CPU(env)); >>>> #endif >>>> >>>> thread_env =3D env; >>>> diff --git a/linux-user/syscall.c b/linux-user/syscall.c >>>> index 20d2a74..539af3f 100644 >>>> --- a/linux-user/syscall.c >>>> +++ b/linux-user/syscall.c >>>> @@ -4262,7 +4262,7 @@ static int do_fork(CPUArchState *env, unsigned >>>> int flags, abi_ulong newsp, >>>> /* we create a new CPU instance. */ >>>> new_env =3D cpu_copy(env); >>>> #if defined(TARGET_I386) || defined(TARGET_SPARC) || >>>> defined(TARGET_PPC) >>>> - cpu_state_reset(new_env); >>>> + cpu_reset(ENV_GET_CPU(new_env)); >>>> #endif >>>> /* Init regs that differ from the parent. */ >>>> cpu_clone_regs(new_env, newsp); >>>> --=20 >>> >>> Do you have any plans to try to rationalise the handling of reset >>> so that we consistently either do or don't reset the cpu here, >>> rather than having it done based on a TARGET_* ifdef ? >> >> Igor had an RFC for x86; sparc and ppc reset I haven't looked into yet= . >> Cc'ing Alex and Blue. > I'll rebase RFC for x86 and post patches today and will remove it from = here > by the last patch in patchset so that when this patch applied we could > remove > unnecessary call. > So ACK for target-i386 here. Since back then Peter and I have discussed whether we can rather just remove the #ifdef here and reset for all targets. Unfortunately I'm still not clear about some patches that stand in the way of ObjectClass::realize - if cpu_reset() is moved to realizefn for all targets then we can just call realize here. Actually, all we'd need is ObjectClass::realize field, so I'm considering extracting the intersection between Paolo and me, stick a CPU-specific wrapper method on top as requested by Anthony and then we can move ahead here... Andreas --=20 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N=C3=BCrnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imend=C3=B6rffer; HRB 16746 AG N=C3=BC= rnberg