Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751036AbbGEIgb (ORCPT ); Sun, 5 Jul 2015 04:36:31 -0400 Received: from mx0b-0016f401.pphosted.com ([67.231.156.173]:3694 "EHLO mx0b-0016f401.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755319AbbGEIgN (ORCPT ); Sun, 5 Jul 2015 04:36:13 -0400 Date: Sat, 4 Jul 2015 18:33:21 +0800 From: Jisheng Zhang To: Russell King - ARM Linux , Thomas Gleixner , CC: , Subject: Re: [PATCH v2 2/2] irqchip: dw-apb-ictl: add irq_set_affinity support Message-ID: <20150704183321.565e2489@xhacker> In-Reply-To: <20150704100827.GC7557@n2100.arm.linux.org.uk> References: <1435987170-3962-1-git-send-email-jszhang@marvell.com> <1435987170-3962-3-git-send-email-jszhang@marvell.com> <20150704082623.GA7557@n2100.arm.linux.org.uk> <20150704100827.GC7557@n2100.arm.linux.org.uk> X-Mailer: Claws Mail 3.11.1 (GTK+ 2.24.28; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2015-07-04_08:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 kscore.is_bulkscore=0 kscore.compositescore=1 compositescore=0.9 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 kscore.is_spamscore=0 rbsscore=0.9 spamscore=0 urlsuspectscore=0.9 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1506180000 definitions=main-1507040185 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2443 Lines: 57 Dear Russell, Thomas, On Sat, 4 Jul 2015 11:08:27 +0100 Russell King - ARM Linux wrote: > On Sat, Jul 04, 2015 at 11:53:57AM +0200, Thomas Gleixner wrote: > > On Sat, 4 Jul 2015, Russell King - ARM Linux wrote: > > > > > On Sat, Jul 04, 2015 at 01:19:30PM +0800, Jisheng Zhang wrote: > > > > On Marvell Berlin SoCs, the cpu's local timer is shutdown when the cpu > > > > goes to a deep idle state, then the timer framework will be notified to > > > > use a broadcast timer instead. The broadcast timer uses dw-apb-ictl as > > > > interrupt chip, this patch adds irq_set_affinity support so that the > > > > going to deep idle state cpu can set the interrupt affinity of the > > > > broadcast interrupt to avoid unnecessary wakeups and IPIs. > > > > > > NAK to this patch. > > > > > > The real question is - if CPU0 is the CPU going offline, why is it > > > still receiving _any_ interrupts - all interrupts should be migrated > > > off it, including the chained interrupts. > > > > > > Sounds like there's a bug in the migration code which needs further > > > investigation, rather than hacking around the problem by introducing > > > lots of driver code. > > > > I think you misunderstood the changelog, which is horrible btw. > > > > So the real reason to do this is to steer the broadcast interrupt to > > the CPU which has the earliest expiry time. This avoids that another > > cpu is woken from idle just to deliver the broadcast IPI to the other > > cpu. > > Unless I'm mistaken, the code does this by messing around with the parent > interrupt affinity of a chained interrupt, which really isn't a good thing > to do, because it migrates every interrupt on the child interrupt > controller. > Yep, that's the problem although it doesn't matter in our case for other interrupts don't care the affinity at all. I'm requesting our HW people to connect timer interrupt to GIC directly in future chips. But for the existing chips, this patch does really reduce power consumption, is there any elegant solution? PS: I noticed that exynos-combiner.c also migrated every interrupt on the child irq controller. Any suggestions are appreciated. Thanks, Jisheng -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/