From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933832AbZFOUPK (ORCPT ); Mon, 15 Jun 2009 16:15:10 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1755660AbZFOUO5 (ORCPT ); Mon, 15 Jun 2009 16:14:57 -0400 Received: from claw.goop.org ([74.207.240.146]:53581 "EHLO claw.goop.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756246AbZFOUO4 (ORCPT ); Mon, 15 Jun 2009 16:14:56 -0400 Message-ID: <4A36ABB5.1040109@goop.org> Date: Mon, 15 Jun 2009 13:14:45 -0700 From: Jeremy Fitzhardinge User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1b3pre) Gecko/20090513 Fedora/3.0-2.3.beta2.fc11 Thunderbird/3.0b2 MIME-Version: 1.0 To: Linus Torvalds CC: Ingo Molnar , Mathieu Desnoyers , mingo@redhat.com, hpa@zytor.com, paulus@samba.org, acme@redhat.com, linux-kernel@vger.kernel.org, a.p.zijlstra@chello.nl, penberg@cs.helsinki.fi, vegard.nossum@gmail.com, efault@gmx.de, npiggin@suse.de, tglx@linutronix.de, linux-tip-commits@vger.kernel.org Subject: Re: [tip:perfcounters/core] perf_counter: x86: Fix call-chain support to use NMI-safe methods References: <20090615171845.GA7664@elte.hu> <20090615180527.GB4201@Krystal> <20090615183649.GA16999@elte.hu> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 06/15/09 12:04, Linus Torvalds wrote: > That's an odd way of writing it. > > Don't we have a per-cpu segment here? I'd much rather just see it do > something like this (_before_ restoring the regular registers) > > movq EIP(%esp),%rax > movq ESP(%esp),%rdx > movq %rax,gs:saved_esp > movq %rdx,gs:saved_eip > > # restore regular regs > RESTORE_ALL > > # skip eip/esp to get at eflags > addl $16,%esp > popfq > > # restore rsp/rip > movq gs:saved_esp,%rsp > jmpq *(gs:saved_eip) > > but I haven't thought deeply about it. Maybe there's something wrong with > the above. > We have to restore the usermode %gs somewhere... J