From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: Re: [PATCH v4 05/17] xen/arm: ITS: implement hw_irq_controller for LPIs Date: Mon, 20 Jul 2015 12:52:12 +0100 Message-ID: <1437393132.7427.17.camel@citrix.com> References: <1436514172-3263-1-git-send-email-vijay.kilari@gmail.com> <1436514172-3263-6-git-send-email-vijay.kilari@gmail.com> <55A42B1C.2030600@citrix.com> <55A61940.9010408@citrix.com> <1436952729.11153.28.camel@citrix.com> <55AA26C4.9030106@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <55AA26C4.9030106@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Julien Grall Cc: Vijay Kilari , Stefano Stabellini , Prasun Kapoor , Vijaya Kumar K , Tim Deegan , "xen-devel@lists.xen.org" , Stefano Stabellini , manish.jaggi@caviumnetworks.com List-Id: xen-devel@lists.xenproject.org On Sat, 2015-07-18 at 11:13 +0100, Julien Grall wrote: > Hi Ian, > > On 15/07/2015 10:32, Ian Campbell wrote: > >> and save 2 byte if not more with the alignment per irq_desc. > > > > If this is a concern then I would say we would either want a separate > > array of per-pLPI information which we do not want in irq_desc because > > it is irq specific, or do add a pointer to its_desc which points to an > > array of per-event information. > > I noticed that we have a field msi_desc in the structure irq_desc. On > ARM, the structure msi_desc is not defined at all but still waste a 8 > byte for the pointer in the irq_desc. > > Given that LPI is an MSI, I'm wondering if we could move all LPI related > data in this msi_desc. This would avoid to introduce new field in the > irq_desc structure. Yes, I think I suggested something similar at some point, although I seemed to think msi_desc was more similar to its_device. Looking at the content of the struct, alloc_msi_entry and msi_capability_init makes me less sure, it looks like msi_entry on x86 is allocated as an array (sized for events) stored per device, which doesn't directly map onto how ARM is structured. So what you propose may make more sense: > > The msi_desc would look like: > > struct msi_desc > { > its_device *dev; > unsigned int eventID; > }; > > Regards, >