Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752047AbeAPMYB (ORCPT + 1 other); Tue, 16 Jan 2018 07:24:01 -0500 Received: from mx1.redhat.com ([209.132.183.28]:39108 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751781AbeAPMX7 (ORCPT ); Tue, 16 Jan 2018 07:23:59 -0500 Date: Tue, 16 Jan 2018 20:23:24 +0800 From: Ming Lei To: Thomas Gleixner Cc: Christoph Hellwig , Jens Axboe , linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, Laurence Oberman , Mike Snitzer , Don Brace , "James E.J. Bottomley" , "Martin K. Petersen" , esc.storagedev@microsemi.com, linux-scsi@vger.kernel.org Subject: Re: [PATCH 0/2] genirq/affinity: try to make sure online CPU is assgined to irq vector Message-ID: <20180116122323.GB26429@ming.t460p> References: <20180115160345.2611-1-ming.lei@redhat.com> <20180115174036.GA20191@infradead.org> <20180116013043.GA3213@ming.t460p> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.1 (2017-09-22) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Tue, 16 Jan 2018 12:23:54 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: On Tue, Jan 16, 2018 at 12:25:19PM +0100, Thomas Gleixner wrote: > On Tue, 16 Jan 2018, Ming Lei wrote: > > > On Mon, Jan 15, 2018 at 09:40:36AM -0800, Christoph Hellwig wrote: > > > On Tue, Jan 16, 2018 at 12:03:43AM +0800, Ming Lei wrote: > > > > Hi, > > > > > > > > These two patches fixes IO hang issue reported by Laurence. > > > > > > > > 84676c1f21 ("genirq/affinity: assign vectors to all possible CPUs") > > > > may cause one irq vector assigned to all offline CPUs, then this vector > > > > can't handle irq any more. > > > > > > Well, that very much was the intention of managed interrupts. Why > > > does the device raise an interrupt for a queue that has no online > > > cpu assigned to it? > > > > It is because of irq_create_affinity_masks(). > > That still does not answer the question. If the interrupt for a queue is > assigned to an offline CPU, then the queue should not be used and never > raise an interrupt. That's how managed interrupts have been designed. Sorry for not answering it in 1st place, but later I realized that: https://marc.info/?l=linux-block&m=151606896601195&w=2 Also wrt. HPSA's queue, looks they are not usual IO queue(such as NVMe's hw queue) which supposes to be C/S model. And HPSA's queue is more like a management queue, I guess, since HPSA is still a single queue HBA, from blk-mq view. Cc HPSA and SCSI guys. Thanks, Ming