RE: [v4 2/8] iommu, x86: Define new irte structure for VT-d Posted-Interrupts
> -Original Message- > From: Joerg Roedel [mailto:j...@8bytes.org] > Sent: Tuesday, March 31, 2015 11:17 PM > To: Wu, Feng > Cc: dw...@infradead.org; jiang@linux.intel.com; > io...@lists.linux-foundation.org; linux-kernel@vger.kernel.org > Subject: Re: [v4 2/8] iommu, x86: Define new irte structure for VT-d > Posted-Interrupts > > On Tue, Mar 24, 2015 at 02:32:01AM +, Wu, Feng wrote: > > > I think it is better to put this as a union into struct irte. It saves > > > memory and unnecessary casting in later patches. > > > > Thanks for the comments! > > Thinking more about this, I think its probably fine to keep the two > versions of the irte seperate like in this patch-set. It allows to > update the non-posted irte when the posted irte is active at the moment > and makes the transition between both irte variants easier. > > But what I still don't like is the type casting necessary when calling > modify_irte(). Can you abstract this and put the decission whether irte > or irte_pi is set active into modify_irte? It required to change the > interface of modify_irte, but that should be easy. > Sound good! Then we can keep the difference inside modify_irte(). BTW, could you please have a look at other patches in this series? Thanks, Feng > > Joerg -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [v4 2/8] iommu, x86: Define new irte structure for VT-d Posted-Interrupts
On Tue, Mar 24, 2015 at 02:32:01AM +, Wu, Feng wrote: > > I think it is better to put this as a union into struct irte. It saves > > memory and unnecessary casting in later patches. > > Thanks for the comments! Thinking more about this, I think its probably fine to keep the two versions of the irte seperate like in this patch-set. It allows to update the non-posted irte when the posted irte is active at the moment and makes the transition between both irte variants easier. But what I still don't like is the type casting necessary when calling modify_irte(). Can you abstract this and put the decission whether irte or irte_pi is set active into modify_irte? It required to change the interface of modify_irte, but that should be easy. Joerg -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
RE: [v4 2/8] iommu, x86: Define new irte structure for VT-d Posted-Interrupts
> -Original Message- > From: Joerg Roedel [mailto:j...@8bytes.org] > Sent: Monday, March 23, 2015 7:58 PM > To: Wu, Feng > Cc: dw...@infradead.org; jiang@linux.intel.com; > io...@lists.linux-foundation.org; linux-kernel@vger.kernel.org > Subject: Re: [v4 2/8] iommu, x86: Define new irte structure for VT-d > Posted-Interrupts > > Hi Feng, > > On Mon, Feb 02, 2015 at 04:06:58PM +0800, Feng Wu wrote: > > Add a new irte_pi structure for VT-d Posted-Interrupts. > > > > Signed-off-by: Feng Wu > > Reviewed-by: Jiang Liu > > Acked-by: David Woodhouse > > --- > > include/linux/dmar.h | 32 > > 1 files changed, 32 insertions(+), 0 deletions(-) > > > > diff --git a/include/linux/dmar.h b/include/linux/dmar.h > > index 8473756..c7f9cda 100644 > > --- a/include/linux/dmar.h > > +++ b/include/linux/dmar.h > > @@ -212,6 +212,38 @@ struct irte { > > }; > > }; > > > > +struct irte_pi { > > I think it is better to put this as a union into struct irte. It saves > memory and unnecessary casting in later patches. Thanks for the comments! Do you mean doing it like the following? struct irte { union { struct { __u64 present : 1, fpd : 1, dst_mode: 1, redir_hint : 1, trigger_mode: 1, dlvry_mode : 3, avail : 4, __reserved_1: 4, vector : 8, __reserved_2: 8, dest_id : 32; }; struct { __u64 present : 1, fpd : 1, __reserved_1: 6, avail : 4, __reserved_2: 2, urg : 1, pst : 1, vector : 8, __reserved_3: 14, pda_l : 26; }; __u64 low; }; union { struct { __u64 sid : 16, sq : 2, svt : 2, __reserved_3: 44; }; struct { __u64 sid : 16, sq : 2, svt : 2, __reserved_4: 12, pda_h : 32; }; __u64 high; }; }; In fact, I also intended to make these two defines as one, however, this code will get build error ("duplicated member") with new version of GCC, such as, gcc 4.9.1. I cannot find a good way to handle this gracefully, since I don't want to impact the existing usage of this structure . Do you have any ideas about this? Thanks a lot! Thanks, Feng > > > Joerg -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [v4 2/8] iommu, x86: Define new irte structure for VT-d Posted-Interrupts
Hi Feng, On Mon, Feb 02, 2015 at 04:06:58PM +0800, Feng Wu wrote: > Add a new irte_pi structure for VT-d Posted-Interrupts. > > Signed-off-by: Feng Wu > Reviewed-by: Jiang Liu > Acked-by: David Woodhouse > --- > include/linux/dmar.h | 32 > 1 files changed, 32 insertions(+), 0 deletions(-) > > diff --git a/include/linux/dmar.h b/include/linux/dmar.h > index 8473756..c7f9cda 100644 > --- a/include/linux/dmar.h > +++ b/include/linux/dmar.h > @@ -212,6 +212,38 @@ struct irte { > }; > }; > > +struct irte_pi { I think it is better to put this as a union into struct irte. It saves memory and unnecessary casting in later patches. Joerg -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/