Re: [PATCH] staging: lustre: fix structure size for ARM OABI
On Sun, Aug 20, 2017 at 03:52:26AM +0100, James Simmons wrote: > > > On Aug 17, 2017, at 10:26, Greg KHwrote: > > > > > > On Wed, Aug 16, 2017 at 05:44:15PM +0300, Cihangir Akturk wrote: > > >> When building the kernel for the ARM architecture without setting > > >> CONFIG_AEABI, size of struct lov_user_md_v3 and struct lov_mds_md_v3 > > >> differs, due to different alignment requirements of OABI and EABI. > > I have to ask are you testing the lustre on ARM? No, I was just compiling the kernel for ARM architecture, and I hit this issue. If it's possible, I can give it a try with a bunch of raspberry pis or another cheap board? > > > >> Marking the anonymous union within struct lov_user_md_v3 as > > >> '_packed' solves this issue. Otherwise we get the following > > >> error: > > >> > > >> drivers/staging/lustre/lustre/lov/lov_pack.c:352:2: note: in expansion > > >> of macro ‘BUILD_BUG_ON’ > > >> BUILD_BUG_ON(sizeof(lum) != sizeof(struct lov_mds_md_v3)); > > >> > > >> Signed-off-by: Cihangir Akturk > > >> --- > > >> drivers/staging/lustre/lustre/include/lustre/lustre_user.h | 2 +- > > >> 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > This file is no longer in the tree :( > > > > With James' recent patch series, this has moved to > > include/uapi/linux/lustre/lustre_user.h > > BTW is __packed valid for UAPI headers?
Re: [PATCH] staging: lustre: fix structure size for ARM OABI
On Sun, Aug 20, 2017 at 03:52:26AM +0100, James Simmons wrote: > > > On Aug 17, 2017, at 10:26, Greg KH wrote: > > > > > > On Wed, Aug 16, 2017 at 05:44:15PM +0300, Cihangir Akturk wrote: > > >> When building the kernel for the ARM architecture without setting > > >> CONFIG_AEABI, size of struct lov_user_md_v3 and struct lov_mds_md_v3 > > >> differs, due to different alignment requirements of OABI and EABI. > > I have to ask are you testing the lustre on ARM? No, I was just compiling the kernel for ARM architecture, and I hit this issue. If it's possible, I can give it a try with a bunch of raspberry pis or another cheap board? > > > >> Marking the anonymous union within struct lov_user_md_v3 as > > >> '_packed' solves this issue. Otherwise we get the following > > >> error: > > >> > > >> drivers/staging/lustre/lustre/lov/lov_pack.c:352:2: note: in expansion > > >> of macro ‘BUILD_BUG_ON’ > > >> BUILD_BUG_ON(sizeof(lum) != sizeof(struct lov_mds_md_v3)); > > >> > > >> Signed-off-by: Cihangir Akturk > > >> --- > > >> drivers/staging/lustre/lustre/include/lustre/lustre_user.h | 2 +- > > >> 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > This file is no longer in the tree :( > > > > With James' recent patch series, this has moved to > > include/uapi/linux/lustre/lustre_user.h > > BTW is __packed valid for UAPI headers?
Re: [PATCH] staging: lustre: fix structure size for ARM OABI
> On Aug 17, 2017, at 10:26, Greg KHwrote: > > > > On Wed, Aug 16, 2017 at 05:44:15PM +0300, Cihangir Akturk wrote: > >> When building the kernel for the ARM architecture without setting > >> CONFIG_AEABI, size of struct lov_user_md_v3 and struct lov_mds_md_v3 > >> differs, due to different alignment requirements of OABI and EABI. I have to ask are you testing the lustre on ARM? > >> Marking the anonymous union within struct lov_user_md_v3 as > >> '_packed' solves this issue. Otherwise we get the following > >> error: > >> > >> drivers/staging/lustre/lustre/lov/lov_pack.c:352:2: note: in expansion > >> of macro ‘BUILD_BUG_ON’ > >> BUILD_BUG_ON(sizeof(lum) != sizeof(struct lov_mds_md_v3)); > >> > >> Signed-off-by: Cihangir Akturk > >> --- > >> drivers/staging/lustre/lustre/include/lustre/lustre_user.h | 2 +- > >> 1 file changed, 1 insertion(+), 1 deletion(-) > > > > This file is no longer in the tree :( > > With James' recent patch series, this has moved to > include/uapi/linux/lustre/lustre_user.h BTW is __packed valid for UAPI headers?
Re: [PATCH] staging: lustre: fix structure size for ARM OABI
> On Aug 17, 2017, at 10:26, Greg KH wrote: > > > > On Wed, Aug 16, 2017 at 05:44:15PM +0300, Cihangir Akturk wrote: > >> When building the kernel for the ARM architecture without setting > >> CONFIG_AEABI, size of struct lov_user_md_v3 and struct lov_mds_md_v3 > >> differs, due to different alignment requirements of OABI and EABI. I have to ask are you testing the lustre on ARM? > >> Marking the anonymous union within struct lov_user_md_v3 as > >> '_packed' solves this issue. Otherwise we get the following > >> error: > >> > >> drivers/staging/lustre/lustre/lov/lov_pack.c:352:2: note: in expansion > >> of macro ‘BUILD_BUG_ON’ > >> BUILD_BUG_ON(sizeof(lum) != sizeof(struct lov_mds_md_v3)); > >> > >> Signed-off-by: Cihangir Akturk > >> --- > >> drivers/staging/lustre/lustre/include/lustre/lustre_user.h | 2 +- > >> 1 file changed, 1 insertion(+), 1 deletion(-) > > > > This file is no longer in the tree :( > > With James' recent patch series, this has moved to > include/uapi/linux/lustre/lustre_user.h BTW is __packed valid for UAPI headers?
Re: [PATCH] staging: lustre: fix structure size for ARM OABI
On Aug 17, 2017, at 10:26, Greg KHwrote: > > On Wed, Aug 16, 2017 at 05:44:15PM +0300, Cihangir Akturk wrote: >> When building the kernel for the ARM architecture without setting >> CONFIG_AEABI, size of struct lov_user_md_v3 and struct lov_mds_md_v3 >> differs, due to different alignment requirements of OABI and EABI. >> >> Marking the anonymous union within struct lov_user_md_v3 as >> '_packed' solves this issue. Otherwise we get the following >> error: >> >> drivers/staging/lustre/lustre/lov/lov_pack.c:352:2: note: in expansion >> of macro ‘BUILD_BUG_ON’ >> BUILD_BUG_ON(sizeof(lum) != sizeof(struct lov_mds_md_v3)); >> >> Signed-off-by: Cihangir Akturk >> --- >> drivers/staging/lustre/lustre/include/lustre/lustre_user.h | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) > > This file is no longer in the tree :( With James' recent patch series, this has moved to include/uapi/linux/lustre/lustre_user.h Cheers, Andreas -- Andreas Dilger Lustre Principal Architect Intel Corporation
Re: [PATCH] staging: lustre: fix structure size for ARM OABI
On Aug 17, 2017, at 10:26, Greg KH wrote: > > On Wed, Aug 16, 2017 at 05:44:15PM +0300, Cihangir Akturk wrote: >> When building the kernel for the ARM architecture without setting >> CONFIG_AEABI, size of struct lov_user_md_v3 and struct lov_mds_md_v3 >> differs, due to different alignment requirements of OABI and EABI. >> >> Marking the anonymous union within struct lov_user_md_v3 as >> '_packed' solves this issue. Otherwise we get the following >> error: >> >> drivers/staging/lustre/lustre/lov/lov_pack.c:352:2: note: in expansion >> of macro ‘BUILD_BUG_ON’ >> BUILD_BUG_ON(sizeof(lum) != sizeof(struct lov_mds_md_v3)); >> >> Signed-off-by: Cihangir Akturk >> --- >> drivers/staging/lustre/lustre/include/lustre/lustre_user.h | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) > > This file is no longer in the tree :( With James' recent patch series, this has moved to include/uapi/linux/lustre/lustre_user.h Cheers, Andreas -- Andreas Dilger Lustre Principal Architect Intel Corporation
Re: [PATCH] staging: lustre: fix structure size for ARM OABI
On Wed, Aug 16, 2017 at 05:44:15PM +0300, Cihangir Akturk wrote: > When building the kernel for the ARM architecture without setting > CONFIG_AEABI, size of struct lov_user_md_v3 and struct lov_mds_md_v3 > differs, due to different alignment requirements of OABI and EABI. > > Marking the anonymous union within struct lov_user_md_v3 as > '_packed' solves this issue. Otherwise we get the following > error: > > drivers/staging/lustre/lustre/lov/lov_pack.c:352:2: note: in expansion > of macro ‘BUILD_BUG_ON’ > BUILD_BUG_ON(sizeof(lum) != sizeof(struct lov_mds_md_v3)); > > Signed-off-by: Cihangir Akturk> --- > drivers/staging/lustre/lustre/include/lustre/lustre_user.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) This file is no longer in the tree :( thanks, greg k-h
Re: [PATCH] staging: lustre: fix structure size for ARM OABI
On Wed, Aug 16, 2017 at 05:44:15PM +0300, Cihangir Akturk wrote: > When building the kernel for the ARM architecture without setting > CONFIG_AEABI, size of struct lov_user_md_v3 and struct lov_mds_md_v3 > differs, due to different alignment requirements of OABI and EABI. > > Marking the anonymous union within struct lov_user_md_v3 as > '_packed' solves this issue. Otherwise we get the following > error: > > drivers/staging/lustre/lustre/lov/lov_pack.c:352:2: note: in expansion > of macro ‘BUILD_BUG_ON’ > BUILD_BUG_ON(sizeof(lum) != sizeof(struct lov_mds_md_v3)); > > Signed-off-by: Cihangir Akturk > --- > drivers/staging/lustre/lustre/include/lustre/lustre_user.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) This file is no longer in the tree :( thanks, greg k-h
[PATCH] staging: lustre: fix structure size for ARM OABI
When building the kernel for the ARM architecture without setting CONFIG_AEABI, size of struct lov_user_md_v3 and struct lov_mds_md_v3 differs, due to different alignment requirements of OABI and EABI. Marking the anonymous union within struct lov_user_md_v3 as '_packed' solves this issue. Otherwise we get the following error: drivers/staging/lustre/lustre/lov/lov_pack.c:352:2: note: in expansion of macro ‘BUILD_BUG_ON’ BUILD_BUG_ON(sizeof(lum) != sizeof(struct lov_mds_md_v3)); Signed-off-by: Cihangir Akturk--- drivers/staging/lustre/lustre/include/lustre/lustre_user.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_user.h b/drivers/staging/lustre/lustre/include/lustre/lustre_user.h index edff8dc..4f72cb6 100644 --- a/drivers/staging/lustre/lustre/include/lustre/lustre_user.h +++ b/drivers/staging/lustre/lustre/include/lustre/lustre_user.h @@ -388,7 +388,7 @@ struct lov_user_md_v3 {/* LOV EA user data (host-endian) */ __u16 lmm_layout_gen; /* layout generation number * used when reading */ - }; + } __packed; char lmm_pool_name[LOV_MAXPOOLNAME + 1]; /* pool name */ struct lov_user_ost_data_v1 lmm_objects[0]; /* per-stripe data */ } __packed; -- 2.7.4
[PATCH] staging: lustre: fix structure size for ARM OABI
When building the kernel for the ARM architecture without setting CONFIG_AEABI, size of struct lov_user_md_v3 and struct lov_mds_md_v3 differs, due to different alignment requirements of OABI and EABI. Marking the anonymous union within struct lov_user_md_v3 as '_packed' solves this issue. Otherwise we get the following error: drivers/staging/lustre/lustre/lov/lov_pack.c:352:2: note: in expansion of macro ‘BUILD_BUG_ON’ BUILD_BUG_ON(sizeof(lum) != sizeof(struct lov_mds_md_v3)); Signed-off-by: Cihangir Akturk --- drivers/staging/lustre/lustre/include/lustre/lustre_user.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_user.h b/drivers/staging/lustre/lustre/include/lustre/lustre_user.h index edff8dc..4f72cb6 100644 --- a/drivers/staging/lustre/lustre/include/lustre/lustre_user.h +++ b/drivers/staging/lustre/lustre/include/lustre/lustre_user.h @@ -388,7 +388,7 @@ struct lov_user_md_v3 {/* LOV EA user data (host-endian) */ __u16 lmm_layout_gen; /* layout generation number * used when reading */ - }; + } __packed; char lmm_pool_name[LOV_MAXPOOLNAME + 1]; /* pool name */ struct lov_user_ost_data_v1 lmm_objects[0]; /* per-stripe data */ } __packed; -- 2.7.4