Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp1135582pxb; Wed, 10 Feb 2021 00:30:56 -0800 (PST) X-Google-Smtp-Source: ABdhPJw+Ro1NtJBkJsdqd6+1cSx+lICkwOOqLdCC5bZp2FL0wIwDrEEegbFSmhFJTgT8FnTn8mN6 X-Received: by 2002:a17:906:a20e:: with SMTP id r14mr1856939ejy.404.1612945856247; Wed, 10 Feb 2021 00:30:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1612945856; cv=none; d=google.com; s=arc-20160816; b=FX68E4+vdrJzCjpwy3IIusZd6v3YYiR/7eZJSiFEuQsPdBH+oueCYEu5fwo8ZJhvQg 64fhRZExHL83V3efYTilU7uteWZOOEhpaYSGRtlASQl5ZSQxE4aOUcancK/zE8sFQM1u L8RyFXBe0btC0pb9WHOleF/Jtd27yFMYBSlGMieCIVDBE/fpAm0BBiYps3gG+5XSjixq zVSyGd5NIVXD3A2bKEJh3I66DlYwGsmbgoV5uaWjo8MxSC/N1fovvo/HLTG9DYrJkX7j Bn6CVDQdz+mcuBSkOGSBWZNoR9BcE0guf2n73P3lQooTw3h9HBZcSdB9gefbBhUt2tMt DiHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:message-id:in-reply-to :subject:cc:to:from:date; bh=Hf4rs3rO7Gh9hVQADFIIBlypbsU4yc7YzxTAWOgwl48=; b=MJAK6IAVCBTxyWLgf8kQXFPJT+Vw6lCaxJun+xqzerbhPzkjNusoQRHECVTEjpo3Vg BeaDkvkpHoTL4uKO9aiN/2XFWQWzgEM8IPYm8mBL7gek2fQBs3Gmh3KOrEKYTc9qW1pa Zs702SQeLkIacTzlHyIsVz8aCbeCbMyQah64YpY9Y106P9XsIibxRnwA4D/jGSjfqFus zJhwyeCf/lupY17Lm4p+JxGXfGdjdg10+wwesvz5dgfWmP6ywuek5xeomEKs/EifLFqz amcvoRC2+FJ4pTDbv+mDyOdY27oVlTYo2QPqIKwDeKihC5Vl8OsrzOJoruyAt6vrqvH5 +Dhg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id e22si1136102edu.45.2021.02.10.00.30.32; Wed, 10 Feb 2021 00:30:56 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230107AbhBJEPF (ORCPT + 99 others); Tue, 9 Feb 2021 23:15:05 -0500 Received: from kvm5.telegraphics.com.au ([98.124.60.144]:50224 "EHLO kvm5.telegraphics.com.au" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229913AbhBJEPD (ORCPT ); Tue, 9 Feb 2021 23:15:03 -0500 Received: from localhost (localhost.localdomain [127.0.0.1]) by kvm5.telegraphics.com.au (Postfix) with ESMTP id D343529E88; Tue, 9 Feb 2021 23:14:18 -0500 (EST) Date: Wed, 10 Feb 2021 15:14:23 +1100 (AEDT) From: Finn Thain To: "Song Bao Hua (Barry Song)" cc: tanxiaofei , "jejb@linux.ibm.com" , "martin.petersen@oracle.com" , "linux-scsi@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linuxarm@openeuler.org" , "linux-m68k@vger.kernel.org" Subject: RE: [Linuxarm] Re: [PATCH for-next 00/32] spin lock usage optimization for SCSI drivers In-Reply-To: <4ee3b4fa65ee4773aa520c192b262dbb@hisilicon.com> Message-ID: <20566af-7043-89b-a020-117696aed66b@telegraphics.com.au> References: <1612697823-8073-1-git-send-email-tanxiaofei@huawei.com> <31cd807d-3d0-ed64-60d-fde32cb3833c@telegraphics.com.au> <6712a7f16b99489db2828098dc3e03b2@hisilicon.com> <968b5f7a-5375-f0c6-c8c4-26ea6dabd9d1@telegraphics.com.au> <4ee3b4fa65ee4773aa520c192b262dbb@hisilicon.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 10 Feb 2021, Song Bao Hua (Barry Song) wrote: > > On Tue, 9 Feb 2021, Song Bao Hua (Barry Song) wrote: > > > > > > On Tue, 9 Feb 2021, Song Bao Hua (Barry Song) wrote: > > > > > > > > > > On Sun, 7 Feb 2021, Xiaofei Tan wrote: > > > > > > > > > > > > > Replace spin_lock_irqsave with spin_lock in hard IRQ of SCSI > > > > > > > drivers. There are no function changes, but may speed up if > > > > > > > interrupt happen too often. > > > > > > > > > > > > This change doesn't necessarily work on platforms that support > > > > > > nested interrupts. > > > > > > > > > > > > Were you able to measure any benefit from this change on some > > > > > > other platform? > > > > > > > > > > I think the code disabling irq in hardIRQ is simply wrong. Since > > > > > this commit > > > > > > > > > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e58aa3d2d0cc > > > > > genirq: Run irq handlers with interrupts disabled > > > > > > > > > > interrupt handlers are definitely running in a irq-disabled > > > > > context unless irq handlers enable them explicitly in the > > > > > handler to permit other interrupts. > > > > > > > > > > > > > Repeating the same claim does not somehow make it true. > > > > > > Sorry for I didn't realize xiaofei had replied. > > > > > > > I was referring to the claim in patch 00/32, i.e. that interrupt > > handlers only run when irqs are disabled. > > > > > > If you put your claim to the test, you'll see that that interrupts > > > > are not disabled on m68k when interrupt handlers execute. > > > > > > Sounds like an implementation issue of m68k since IRQF_DISABLED has > > > been totally removed. > > > > > > > It's true that IRQF_DISABLED could be used to avoid the need for irq > > locks in interrupt handlers. So, if you want to remove irq locks from > > interrupt handlers, today you can't use IRQF_DISABLED to help you. So > > what? > > > > > > > > > > The Interrupt Priority Level (IPL) can prevent any given irq > > > > handler from being re-entered, but an irq with a higher priority > > > > level may be handled during execution of a lower priority irq > > > > handler. > > > > > > > > > > We used to have IRQF_DISABLED to support so-called "fast interrupt" > > > to avoid this. > > > > > > But the concept has been totally removed. That is interesting if > > > m68k still has this issue. > > > > > > > Prioritized interrupts are beneficial. Why would you want to avoid > > them? > > > > I doubt this is true as it has been already thought as unnecessary > in Linux: > https://lwn.net/Articles/380931/ > The article you cited does not refute what I said about prioritized interrupts. The article is about eliminating the distinction between fast and slow interrupt handlers. The article says that some developers convinced Linus that, although minimal interrupt latency is desirable, is isn't strictly necessary. The article also warns of stack overflow from arbitrarily deep slow interrupt nesting, but that's not what m68k does. > > Moreover, there's no reason to believe that m68k is the only platform > > that supports nested interrupts. > > I doubt that is true as genirq is running understand the consumption > that hardIRQ is running in irq-disabled context: I'm not going to guess whether other platforms might be affected -- you're supporting this patch so you will have to show that it is correct. > "We run all handlers with interrupts disabled and expect them not to > enable them. Warn when we catch one who does." > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b738a50a > > If it is, m68k is against the assumption of genirq. > Interrupt handlers on m68k do not enable interrupts. If they did, you would see that warning fire. It doesn't fire. Try it. > > > > > > sonic_interrupt() uses an irq lock within an interrupt handler to > > > > avoid issues relating to this. This kind of locking may be needed in > > > > the drivers you are trying to patch. Or it might not. Apparently, > > > > no-one has looked. > > > > > Thanks > Barry >