Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754257AbbGCHQg (ORCPT ); Fri, 3 Jul 2015 03:16:36 -0400 Received: from mga03.intel.com ([134.134.136.65]:29159 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754489AbbGCHQ1 convert rfc822-to-8bit (ORCPT ); Fri, 3 Jul 2015 03:16:27 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.15,398,1432623600"; d="scan'208";a="599446197" From: "Wu, Feng" To: Paolo Bonzini , Eric Auger , "eric.auger@st.com" , "linux-arm-kernel@lists.infradead.org" , "kvmarm@lists.cs.columbia.edu" , "kvm@vger.kernel.org" , "christoffer.dall@linaro.org" , "marc.zyngier@arm.com" , "alex.williamson@redhat.com" , "avi.kivity@gmail.com" , "mtosatti@redhat.com" , "joro@8bytes.org" , "b.reynal@virtualopensystems.com" CC: "linux-kernel@vger.kernel.org" , "patches@linaro.org" , "Wu, Feng" Subject: RE: [RFC 12/17] irq: bypass: Extend skeleton for ARM forwarding control Thread-Topic: [RFC 12/17] irq: bypass: Extend skeleton for ARM forwarding control Thread-Index: AQHQtV7LoeBLAjIq3kevTiDx5MBMEZ3JU3VQ Date: Fri, 3 Jul 2015 07:16:17 +0000 Message-ID: References: <1435843047-6327-1-git-send-email-eric.auger@linaro.org> <1435843047-6327-13-git-send-email-eric.auger@linaro.org> <5596311A.3010703@redhat.com> <55963469.9030805@redhat.com> In-Reply-To: <55963469.9030805@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 8BIT MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2736 Lines: 63 > -----Original Message----- > From: Paolo Bonzini [mailto:pbonzini@redhat.com] > Sent: Friday, July 03, 2015 3:06 PM > To: Wu, Feng; Eric Auger; eric.auger@st.com; > linux-arm-kernel@lists.infradead.org; kvmarm@lists.cs.columbia.edu; > kvm@vger.kernel.org; christoffer.dall@linaro.org; marc.zyngier@arm.com; > alex.williamson@redhat.com; avi.kivity@gmail.com; mtosatti@redhat.com; > joro@8bytes.org; b.reynal@virtualopensystems.com > Cc: linux-kernel@vger.kernel.org; patches@linaro.org > Subject: Re: [RFC 12/17] irq: bypass: Extend skeleton for ARM forwarding > control > > > > On 03/07/2015 09:00, Wu, Feng wrote: > >>> > > struct irq_bypass_consumer { > >>> > > struct list_head node; > >>> > > void *token; > >>> > > + unsigned irq; /*got from producer when registered*/ > >>> > > void (*add_producer)(struct irq_bypass_producer *, > >>> > > struct irq_bypass_consumer *); > >>> > > void (*del_producer)(struct irq_bypass_producer *, > >>> > > struct irq_bypass_consumer *); > >>> > > + void (*update)(struct irq_bypass_consumer *); > >>> > > }; > >>> > > > >>> > > 'update' is used to update the IRTE, while irq is initialized when > >>> > > registered, which is used to find the right IRTE. > >> > > >> > Feel free to add "update" in your PI patches. I am not sure if "irq" > >> > belongs here or in the containing struct. You can play with both and > >> > submit the version that looks better to you. > > Thanks for your review, Paolo. In my understanding, irq comes from > > the producer side, while gsi belongs to the consumer, so we need > > to get the irq from the producer somewhere. I am not sure adding > > irq here is the good way, but what I need is in the 'update' function, > > I have irq, gsi in hand. :) > > It's difficult to say without seeing the patches... The IRQ is stored > in the producer already with Eric's changes. If you need to store the > old IRQ value, because "update" needs to do something with it, then I > think "irq" belongs in the container struct. > > Perhaps "update" needs to have a producer argument as well? I also consider this method, basically, I will call 'update' in irqfd_update(), but seems I need do extra things to get the producer structure (such as, iterate the producer list to find the one with the same 'token') before calling 'update' from consumer side. I am not sure it is worth doing that way. Thanks, Feng > > Paolo -- 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/