Re: Ceph broken on big-endian systems

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 18 Jul 2019, Ulrich Weigand wrote:
> Hi Sage,
> 
> > I think the cleanest thing is to s/__le/ceph_le/ everywhere *except*
> > msgr.h, rados.h, and ceph_fs.h.  It seems like what happened was we
> mostly
> > forgot to always use the ceph_ variant after 2010.
> >
> > That should resolve the issue, right?
> 
> That's what we've tried to do, and it does indeed make work Ceph a lot
> better on IBM Z (still some issues, but probably unrelated).  Once we've
> gotten a bit farther with testing, we can certainly send patches to
> that effect.

Great, thanks!

> However, where I'm still unsure is that there appear to be a number of
> files that e.g. just #include "ceph_fs.h" directly, without going
> through the re-define in types.h ...
> 
> Now maybe this doesn't matter because none of those places actually
> use any of the structs that use __le32 from those headers, but that
> seems hard to verify (and a bit fragile ...).
> 
> Would the correct fix for this be to replace the direct includes
> with includes of types.h?  Or should those headers be changed to be
> more self-contained and always define __le32 themselves when built
> in user space (but I'm not quite sure how to do that without
> conflicting with the __le32 definition in linux/types.h ...)?
>
> In any case, it would be really good to find a way to have those
> rules (e.g. never use __le32, never include ceph_fs.h directly)
> automatically enforced at build time, to avoid any reoccurance
> of the problem with future code changes.

Yeah, agree.

I think the best option would be to make those headers have a bit at the 
top that ensure thigns are correctly defined for userspace.  We don't want 
that block to leak into the kernel tree, but it's easy enough to ignore a 
single block of code; much harder to keep them in sync if we were to, say, 
s/__le32/ceph_le32/ in the headers.

sage
_______________________________________________
Dev mailing list -- dev@xxxxxxx
To unsubscribe send an email to dev-leave@xxxxxxx



[Index of Archives]     [CEPH Users]     [Ceph Devel]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux