From: Siarhei Siamashka <siarhei.siamashka@gmail.com>
To: Siarhei Siamashka <siarhei.siamashka@gmail.com>
Cc: "Frédéric Dalleau" <frederic.dalleau@linux.intel.com>,
linux-bluetooth@vger.kernel.org
Subject: Re: [PATCH v3 06/10] sbc: Add mmx primitive for 1b 8s analyse
Date: Sun, 28 Oct 2012 02:29:42 +0300 [thread overview]
Message-ID: <20121028022942.3bcd1bd7@i7> (raw)
In-Reply-To: <20121028020621.3653ac8e@i7>
On Sun, 28 Oct 2012 02:06:21 +0300
Siarhei Siamashka <siarhei.siamashka@gmail.com> wrote:
> On Fri, 26 Oct 2012 19:20:32 +0200
> Frédéric Dalleau <frederic.dalleau@linux.intel.com> wrote:
>
> > ---
> > sbc/sbc_primitives_mmx.c | 18 +++++++++++++++++-
> > 1 file changed, 17 insertions(+), 1 deletion(-)
>
> In the previous patches you are changing the behaviour of C
> implementation to support mSBC configuration. By still allowing
> assembly optimized implementations to override C functions, mSBC
> does not work correctly for the architectures which support these
> optimizations.
>
> With this particular patch you are fixing MMX. The other
> implementations (ARM NEON) are still broken.
>
> It would be better if we could shape out this patch series so that
> the code is always correct after every commit, preferably as:
> 1. SBC still works and uses assembly optimizations after
> every commit
> 2. mSBC works correctly after the commit where SBC_MSBC feature
> is advertised in the public header "sbc.h"
> 3. mSBC gets assembly optimizations enabled. Unsupported architectures
> use C implementation.
Just to make this work, your "[PATCH v3 04/10] sbc: Add msbc flag and
generic C primitive" patch could update "sbc_init_primitives" in a
bit different way.
You changed it as:
> void sbc_init_primitives(struct sbc_encoder_state *state)
> {
> + state->pending = -1;
> + state->odd = 1;
> +
> /* Default implementation for analyze functions */
> state->sbc_analyze_4b_4s = sbc_analyze_4b_4s_simd;
> - state->sbc_analyze_4b_8s = sbc_analyze_4b_8s_simd;
> +
> + if (state->increment == 1)
> + state->sbc_analyze_4b_8s = sbc_analyze_1b_8s_simd;
> + else
> + state->sbc_analyze_4b_8s = sbc_analyze_4b_8s_simd;
But it might be better to move "if (state->increment == 1)" check to
the very end of the function after
/* X86/AMD64 optimizations */
#ifdef SBC_BUILD_WITH_MMX_SUPPORT
sbc_init_primitives_mmx(state);
#endif
/* ARM optimizations */
#ifdef SBC_BUILD_WITH_ARMV6_SUPPORT
sbc_init_primitives_armv6(state);
#endif
#ifdef SBC_BUILD_WITH_IWMMXT_SUPPORT
sbc_init_primitives_iwmmxt(state);
#endif
#ifdef SBC_BUILD_WITH_NEON_SUPPORT
sbc_init_primitives_neon(state);
#endif
So that the C implementation overrides the function pointers for
mSBC configuration after the initialization of mSBC-unaware assembly
implementations.
As soon as some assembly implementation gets mSBC support (MMX for
example), the initialization order in "sbc_init_primitives" can be
changed appropriately.
--
Best regards,
Siarhei Siamashka
next prev parent reply other threads:[~2012-10-27 23:29 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-26 17:20 [PATCH v3 00/10] mSBC tests Frédéric Dalleau
2012-10-26 17:20 ` [PATCH v3 01/10] sbc: Add encoder_state to process input functions Frédéric Dalleau
2012-10-26 17:20 ` [PATCH v3 02/10] sbc: Add encoder_state to analysis functions Frédéric Dalleau
2012-10-26 17:20 ` [PATCH v3 03/10] sbc: Break 4 blocks processing to variable steps Frédéric Dalleau
2012-10-26 17:20 ` [PATCH v3 04/10] sbc: Add msbc flag and generic C primitive Frédéric Dalleau
2012-10-27 22:19 ` Siarhei Siamashka
2012-10-29 6:47 ` Dalleau, Frederic
2012-10-30 0:12 ` Siarhei Siamashka
2012-10-26 17:20 ` [PATCH v3 05/10] sbc: Add support for mSBC frame header Frédéric Dalleau
2012-10-26 17:20 ` [PATCH v3 06/10] sbc: Add mmx primitive for 1b 8s analyse Frédéric Dalleau
2012-10-27 23:06 ` Siarhei Siamashka
2012-10-27 23:29 ` Siarhei Siamashka [this message]
2012-10-29 7:42 ` Dalleau, Frederic
2012-10-30 1:46 ` Siarhei Siamashka
2012-10-30 5:26 ` Dalleau, Frederic
2012-10-26 17:20 ` [PATCH v3 07/10] sbc: Update sbcdec for msbc Frédéric Dalleau
2012-10-26 17:20 ` [PATCH v3 08/10] sbc: Update sbcenc " Frédéric Dalleau
2012-10-26 17:20 ` [PATCH v3 09/10] sbc: Update sbcinfo " Frédéric Dalleau
2012-10-26 17:20 ` [PATCH v3 10/10] sbc: Update copyrights Frédéric Dalleau
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20121028022942.3bcd1bd7@i7 \
--to=siarhei.siamashka@gmail.com \
--cc=frederic.dalleau@linux.intel.com \
--cc=linux-bluetooth@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.