From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935056AbdAJKcR (ORCPT ); Tue, 10 Jan 2017 05:32:17 -0500 Received: from mx2.suse.de ([195.135.220.15]:49349 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934701AbdAJKcP (ORCPT ); Tue, 10 Jan 2017 05:32:15 -0500 Date: Tue, 10 Jan 2017 11:32:12 +0100 (CET) From: Miroslav Benes To: Josh Poimboeuf cc: jeyu@redhat.com, jikos@kernel.org, pmladek@suse.com, corbet@lwn.net, live-patching@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] Documentation/livepatch: remove the limitation for schedule() patching In-Reply-To: <20170109145433.xiopfww5q37ndzdz@treble> Message-ID: References: <20170106140045.26331-1-mbenes@suse.cz> <20170106191301.5mlctz7zr7hvzkl5@treble> <20170109145433.xiopfww5q37ndzdz@treble> User-Agent: Alpine 2.20 (LSU 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, 9 Jan 2017, Josh Poimboeuf wrote: > On Mon, Jan 09, 2017 at 01:50:19PM +0100, Miroslav Benes wrote: > > There is still one thing which I don't understand. Why __schedule() > > (patched or the original) is not on the stack. The actual "sleep" > > should happen in __switch_to_asm() which is C function now. And there is a > > call to __switch_to_asm() in __schedule(). __schedule() thus should be on > > the stack, shouldn't it? What am I missing? __switch_to_asm() pushes %rbp > > on the stack... > > Ah, this is an unwinder bug. get_frame_pointer() needs to be fixed so > that for an inactive task it returns a pointer to inactive_task_frame.bp > rather than the value of inactive_task_frame.bp itself. Will fix it. And it works with the fix. Thanks. Miroslav