Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp5247445ybl; Tue, 10 Dec 2019 03:01:37 -0800 (PST) X-Google-Smtp-Source: APXvYqxpAtyPWkBTdeN9Vvc5kqqjIsDgviDWQinFIehBmdwRWbe6z3BumfTaRr6Z6kE+SLFHgnB2 X-Received: by 2002:aca:4587:: with SMTP id s129mr3265026oia.124.1575975697602; Tue, 10 Dec 2019 03:01:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1575975697; cv=none; d=google.com; s=arc-20160816; b=aRVCdzu2fQq4/8N6SLxwDoKQCPdd/QvUjJ4qhw0Zv/Z4H25W3Su/F9hqqSCeK+M6/i ajmLshAzeaH3ZJNweCMeG3HyIt6+ifoUsPIiIUduackdhKOJiKFHJYxn2nn8P+f5o4JB M5BSZMrhcHqHIoC7c3zfAMlmYgI84N7I2qg6Yuc3Tyir2QZ0q716CxMPKqb/B5bYXygn b5EgcWH+fpOegB7z4YyqfLO+Msr8og+MlyHcaHiKIBQsA5M1saHZJptcGAJMjkJA8Sn7 zkuSd12BBAH6y5T3HcVgcpkPpwA+aeSFtUS1z3qonvp06LLe/zHm1jRpPxIbvcfJ4Ka7 FbGA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject; bh=qPyGWUArv91vrwG3d7wPKyBGFkUvGQytHDUbd8wnL4g=; b=htlIQ9JF7rZJzk2qkZbiVOxFMJZsCigltoFntEh7S7QtvpUMD0wai8+6cAX2OkXBxP uc+xrPvjVIk7iaivPzWZDSPn0BPixsoMzrxgxMaqvhtRwa84XHwe/CZhTEGAhpoV9gEo mniWwO7dedWzDlN343bAMnE/yJM3Jw3NRa2Y5JXdDbDm4A64coOEGqhMuAXLFhY/b8Jo 39ZSDknm63OWbXVgRT6iqN4n/ldo97U78el+B0XEg7X9+qQEDT1bA74DCYKBeD/eJdnz l7ylr8pc20hOzdIZTxkGZPwE+3Nf2QX4VQ/5N50AR6MSO3AyIZqs1sQdAqap3xPAHH+L /DYw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f53si1875684otf.235.2019.12.10.03.01.24; Tue, 10 Dec 2019 03:01:37 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727335AbfLJK7w (ORCPT + 99 others); Tue, 10 Dec 2019 05:59:52 -0500 Received: from lhrrgout.huawei.com ([185.176.76.210]:2169 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727227AbfLJK7v (ORCPT ); Tue, 10 Dec 2019 05:59:51 -0500 Received: from lhreml704-cah.china.huawei.com (unknown [172.18.7.108]) by Forcepoint Email with ESMTP id 7663FC5F3FC24E60EDEE; Tue, 10 Dec 2019 10:59:50 +0000 (GMT) Received: from lhreml724-chm.china.huawei.com (10.201.108.75) by lhreml704-cah.china.huawei.com (10.201.108.45) with Microsoft SMTP Server (TLS) id 14.3.408.0; Tue, 10 Dec 2019 10:59:50 +0000 Received: from [127.0.0.1] (10.202.226.46) by lhreml724-chm.china.huawei.com (10.201.108.75) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 10 Dec 2019 10:59:49 +0000 Subject: Re: [PATCH RFC 1/1] genirq: Make threaded handler use irq affinity for managed interrupt To: Marc Zyngier CC: Ming Lei , , , , , , , , , , References: <1575642904-58295-1-git-send-email-john.garry@huawei.com> <1575642904-58295-2-git-send-email-john.garry@huawei.com> <20191207080335.GA6077@ming.t460p> <78a10958-fdc9-0576-0c39-6079b9749d39@huawei.com> <20191210014335.GA25022@ming.t460p> <28424a58-1159-c3f9-1efb-f1366993afcf@huawei.com> <048746c22898849d28985c0f65cf2c2a@www.loen.fr> From: John Garry Message-ID: Date: Tue, 10 Dec 2019 10:59:48 +0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.1.2 MIME-Version: 1.0 In-Reply-To: <048746c22898849d28985c0f65cf2c2a@www.loen.fr> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [10.202.226.46] X-ClientProxiedBy: lhreml728-chm.china.huawei.com (10.201.108.79) To lhreml724-chm.china.huawei.com (10.201.108.75) X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org >> >> There is no lockup, just a potential performance boost in this change. >> >> My colleague Xiang Chen can provide specifics of the test, as he is >> the one running it. >> >> But one key bit of info - which I did not think most relevant before >> - that is we have 2x SAS controllers running the throughput test on >> the same host. >> >> As such, the completion queue interrupts would be spread identically >> over the CPUs for each controller. I notice that ARM GICv3 ITS >> interrupt controller (which we use) does not use the generic irq >> matrix allocator, which I think would really help with this. >> >> Hi Marc, >> >> Is there any reason for which we couldn't utilise of the generic irq >> matrix allocator for GICv3? > Hi Marc, > For a start, the ITS code predates the matrix allocator by about three > years. Also, my understanding of this allocator is that it allows > x86 to cope with a very small number of possible interrupt vectors > per CPU. The ITS doesn't have such issue, as: > > 1) the namespace is global, and not per CPU > 2) the namespace is *huge* > > Now, what property of the matrix allocator is the ITS code missing? > I'd be more than happy to improve it. I think specifically the property that the matrix allocator will try to find a CPU for irq affinity which "has the lowest number of managed IRQs allocated" - I'm quoting the comment on matrix_find_best_cpu_managed(). The ITS code will make the lowest online CPU in the affinity mask the target CPU for the interrupt, which may result in some CPUs handling so many interrupts. Thanks, John