Re: Can we use emulation of other architectures to run integration tests?

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

 



* Daniel P. Berrangé:

>> For emulating 32-bit targets, we have a broken readdir/telldir/seekdir
>> implementation in glibc on 64 bit host kernels because we try to use
>> d_ino directly, which is 64 bit and does not fit into the long value

recte: d_off

>> that POSIX requires.  A kernel patch with a new interface has been
>> posted which would work around this has been proposed, but it is not
>> going anywhere.
>
>> The second issue also affects full-system virtualization if p9fs (not
>> sure what the right name is, it's the older pass-through file system) is
>> used.  But it's specific to 32 bit, so maybe not that important after
>> all.
>
> Yep, 9p, its generally not great POSIX emulation no matter what.
>
> The more modern virtio-fs is a more promising solution for the
> future, based on FUSE.

The second problem is not a matter of old vs modern interfaces, it's
that POSIX requires us to fit the 64-bit d_off value we get from the
kernel into a 32-bit long, because that's what telldir returns.  This is
true even for builds with 64-bit off_t values.  The kernel cannot really
fix this on our behalf because it would have to perform a
side-translation for every directory entry.  That's problematic for
large directories.

But in glibc, we know when we need the translation (when the application
calls telldir), and we can defer the translation until then.  It's just
a little bit awkward to implement because telldir must not fail, so we
need to preallocate space for the translation during the readdir call.
But it's not impossible.

Thanks,
Florian
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux