Re: [PATCH] jffs2: implement mount option to configure endianness

From: Nikunj Kela (nkela)
Date: Thu Nov 08 2018 - 13:01:27 EST



On 11/8/18, 12:12 AM, "David Woodhouse" <dwmw2@xxxxxxxxxxxxx> wrote:

On Wed, 2018-11-07 at 19:14 +0100, Richard Weinberger wrote:
> On Wed, Nov 7, 2018 at 7:05 PM Nikunj Kela (nkela) <nkela@xxxxxxxxx> wrote:
> > I had tried to use configs to start with via the following patch however I was advised to have a mount option:
> > http://lists.infradead.org/pipermail/linux-mtd/2018-November/085126.html
>
> Just show performance numbers on how your implementation has an impact or not.
> So far your implementation is also not much optimized, maybe likely()
> or static keys can help...

Using likely() for the native case might help. Static keys might help a
little more, but could only work if every file system has the *same*
endianness. Unless we end up with three variants, for native vs. swap
vs. runtime checking.

We also lose a bunch of the optimisations that we gained from using
__builtin_swab functions, which let the compiler see what was going on.

But we can hypothesise and handwave about it until the cows come home;
I'd like to see a real test of whether it actually makes a difference
that we care about.

If it does, one option might be to just build separate versions of
scan.c for each endianness, since that's the critical path we care
about.

I wonder if this feature is really that important that we need to duplicate the drivers.
Also, it might take some time for me to find some device that I can run the tests with and without this patch.
I am wondering if we can still consider my first patch with config options as a good compromise on it?