Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753488AbcK0S6A (ORCPT ); Sun, 27 Nov 2016 13:58:00 -0500 Received: from mail-ua0-f175.google.com ([209.85.217.175]:35093 "EHLO mail-ua0-f175.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752523AbcK0S5x (ORCPT ); Sun, 27 Nov 2016 13:57:53 -0500 MIME-Version: 1.0 In-Reply-To: <20161120175207.GA4354@localhost> References: <20161120175207.GA4354@localhost> From: Andy Lutomirski Date: Sun, 27 Nov 2016 10:57:31 -0800 Message-ID: Subject: Re: Question: goal of twice disabling of preemption in exception handlers To: Alexnader Kuleshov Cc: open list , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Paul Gortmaker , Jan Beulich , Tony Luck , Jianyu Zhan Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 901 Lines: 18 On Sun, Nov 20, 2016 at 9:52 AM, Alexnader Kuleshov wrote: > Hello everyone, > > Exception handlers which may run on IST stack disable and enable preemption > twice. For example do_int3() [1]. This one calls ist_enter() which > disables preemption with preempt_disable() every time without any conditions. > And later do_int3() calls preempt_disable() again [2] before do_trap(). > > Of course we decrement preemption counter in the end of such exception > handlers twice too. But what's actual purpose of doing this two times? > > [1] https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/tree/arch/x86/kernel/traps.c?id=refs/tags/next-20161117#n530 > [2] https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/tree/arch/x86/kernel/traps.c?id=refs/tags/next-20161117#n566 > > Thank you. You could submit a patch to get rid of the extra one if you like.