severity 791445 normal
retitle 791445 Use system libjerasure with CPU optimizations
thanks

James Page <james.p...@ubuntu.com> writes:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
>
> On 06/07/15 18:23, James Page wrote:
>>> The ceph Debian package git repository only contains very little
>>>> reasoning about the change. James can you please expand on this
>>>> a bit? In general I would prefer to have changes like this in
>>>> their own commit and not mixed with unrelated changelog
>>>> updates. Did the Hammer release not build with the jerasure in
>>>> Debian or are you just afraid of unexpected results if the
>>>> Debian package is built with another version of jerasure than
>>>> what they ship in their source code? These would IMO be valid
>>>> reasons to (temporarily) remove the patch.
>> Re-basing the patch - which was turning out to be non-trivial -
>> pushed me over the time I had todo this update; as the upload was
>> to experimental only, I intended to revisit when time permitted.
>
> I dug into this in a bit more detail today; the Ceph package builds a
> number of difference loadable erasure coding plugins, enabling
> different cpu feature sets (generic, neon, sse3, sse4); each time
> Jerasure and gf-complete are statically linked into the module, built
> with the required flags to enable the right CPU instruction codes
> (build time, not runtime enablement).

Loic, are there plans upstream to change this? To me the best solution
would be to move the runtime detection into jerasure and gf-complete and
then to dynamically link against these. With this other consumers of
jerasure could also benefit from this and it would make the life of
distribution package maintainers much easier.

But then I don't know if there are technical reasons why it was
implemented that way in the first place.

>
> Unless I'm reading the packaging wrong, the jerasure and gf-complete
> packages current disable any CPU specific extensions in order to have
> a completely generic library that works on any CPU.  So using the
> system libraries effectively cripples any CPU optimization that might
> be achievable at runtime in Ceph.

Considering this I think using the system jerasure is not an option in
it's current state. Removing all CPU optimization does not look like the
right thing to do. I set the bug severity and title accordingly.

This does not mean that this bug does not need fixing. A solution to
have both CPU optimizations and dynamic linking against the system
library would be much prefered. But in the current state just reverting
to use the system library does not look like the right thing to do.

Gaudenz

Attachment: signature.asc
Description: PGP signature

Reply via email to