From: Jim Kukunas <james.t.kukunas@linux.intel.com>
To: neilb@suse.de
Cc: linux-raid@vger.kernel.org, linux-kernel@vger.kernel.org, hpa@zytor.com
Subject: Re: lib/raid6: SSSE3 optimized recovery functions v2
Date: Thu, 12 Apr 2012 13:04:29 -0700 [thread overview]
Message-ID: <1334261073-14781-1-git-send-email-james.t.kukunas@linux.intel.com> (raw)
In-Reply-To: <20120412161805.133c4ad0@notabene.brown>
On Thu, Apr 12, 2012 at 04:18:05PM +1000, NeilBrown wrote:
> On Wed, 11 Apr 2012 12:40:27 -0700 Jim Kukunas
> <james.t.kukunas@linux.intel.com> wrote:
<snip>
> Could I trouble you to run 'checkpatch.pl' and fix up some of the more
> reasonable complaints?
>
> ERROR: open brace '{' following function declarations go on the next line
> #243: FILE: lib/raid6/recov_ssse3.c:28:
> + static const u8 __attribute__((aligned(16))) x0f[16] = {
>
> is clearly bogus, but
>
> WARNING: __aligned(size) is preferred over __attribute__((aligned(size)))
> #243: FILE: lib/raid6/recov_ssse3.c:28:
> + static const u8 __attribute__((aligned(16))) x0f[16] = {
>
> is probably worth considering, as are some others.
Hi Neil,
Thanks for taking a look at this revision.
Before I submitted these patches, I actually had run checkpatch. I've included
my thought process below, along with the corresponding snippets of the
checkpatch output.
> WARNING: __aligned(size) is preferred over __attribute__((aligned(size)))
> #50: FILE: include/linux/raid/pq.h:126:
> +extern const u8 raid6_vgfmul[256][32] __attribute__((aligned(256)));
This keeps with the existing code conventions. The code block is:
extern const u8 raid6_gfmul[256][256] __attribute__((aligned(256)));
extern const u8 raid6_vgfmul[256][32] __attribute__((aligned(256)));
extern const u8 raid6_gfexp[256] __attribute__((aligned(256)));
extern const u8 raid6_gfinv[256] __attribute__((aligned(256)));
extern const u8 raid6_gfexi[256] __attribute__((aligned(256)));
> WARNING: printk() should include KERN_ facility level
> #120: FILE: lib/raid6/algos.c:103:
> + printk("raid6: using %s recovery algorith\n", nest->name);
>
> WARNING: printk() should include KERN_ facility level
> #122: FILE: lib/raid6/algos.c:105:
> + printk("raid6: Yikes! No recovery algorithm found!\n");
>
> WARNING: printk() should include KERN_ facility level
> #159: FILE: lib/raid6/algos.c:176:
> + printk("raid6: Yikes! No memory available.\n");
Again, these are following the conventions of the existing code such as:
printk("raid6: using algorithm %s (%ld MB/s)\n",
In fact, the last printk, about no memory available, was simply moved to a
different line in my patch.
> ERROR: open brace '{' following function declarations go on the next line
> #423: FILE: lib/raid6/recov_ssse3.c:201:
> + static const u8 __attribute__((aligned(16))) x0f[16] = {
>
> ERROR: open brace '{' following function declarations go on the next line
> #250: FILE: lib/raid6/recov_ssse3.c:28:
> + static const u8 __attribute__((aligned(16))) x0f[16] = {
As you pointed out, these are both bogus.
> WARNING: suspect code indent for conditional statements (8, 8)
> #291: FILE: lib/raid6/recov_ssse3.c:69:
> + while (bytes) {
> [...]
> + /* xmm6, xmm14, xmm15 */
This one slipped through the cracks. I've corrected it in the attached patches.
> WARNING: __aligned(size) is preferred over __attribute__((aligned(size)))
> #423: FILE: lib/raid6/recov_ssse3.c:201:
> + static const u8 __attribute__((aligned(16))) x0f[16] = {
>
> WARNING: __aligned(size) is preferred over __attribute__((aligned(size)))
> #250: FILE: lib/raid6/recov_ssse3.c:28:
> + static const u8 __attribute__((aligned(16))) x0f[16] = {
There were two reasons why I didn't use __aligned. The first being the
existing code conventions:
const char raid6_empty_zero_page[PAGE_SIZE] __attribute__((aligned(256)));
and also, by using __attribute__((aligned(size))), there isn't a need to add
#ifndef __KERNEL__
#define __aligned(x) __attribute__((aligned(x)))
#endif
to x86.h for the test program.
That being said, I've changed these two in the attached patches.
> ERROR: need consistent spacing around '+' (ctx:VxW)
> #88: FILE: lib/raid6/x86.h:43:
> +#define X86_FEATURE_XMM3 (4*32+ 0) /* "pni" SSE-3 */
>
> ERROR: need consistent spacing around '+' (ctx:VxW)
> #89: FILE: lib/raid6/x86.h:44:
> +#define X86_FEATURE_SSSE3 (4*32+ 9) /* Supplemental SSE-3 */
^
These defines are plucked from arch/x86/include/asm/cpufeature.h.
In an perfect world, we'd just include that header, but it isn't visible from
userspace, so instead we copy the values.
Thus, to me, it makes sense to me to keep the symmetry here, but I can change
this if you want.
>
> NeilBrown
>
Thanks again.
--
Jim Kukunas
Intel Open Source Technology Center
next prev parent reply other threads:[~2012-04-12 20:04 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-11 19:40 lib/raid6: SSSE3 optimized recovery functions v2 Jim Kukunas
2012-04-11 19:40 ` [PATCH 1/4] lib/raid6: fix test program build Jim Kukunas
2012-04-11 19:40 ` [PATCH 2/4] lib/raid6: Add SSSE3 optimized recovery functions Jim Kukunas
2012-04-11 19:40 ` [PATCH 3/4] lib/raid6: update test program for " Jim Kukunas
2012-04-11 19:40 ` [PATCH 4/4] lib/raid6: cleanup gen_syndrome function selection Jim Kukunas
2012-04-12 6:18 ` lib/raid6: SSSE3 optimized recovery functions v2 NeilBrown
2012-04-12 20:04 ` Jim Kukunas [this message]
2012-04-12 20:04 ` [PATCH 1/4] lib/raid6: fix test program build Jim Kukunas
2012-04-19 0:33 ` NeilBrown
2012-04-12 20:04 ` [PATCH 2/4] lib/raid6: Add SSSE3 optimized recovery functions Jim Kukunas
2012-04-12 20:04 ` [PATCH 3/4] lib/raid6: update test program for " Jim Kukunas
2012-04-12 20:04 ` [PATCH 4/4] lib/raid6: cleanup gen_syndrome function selection Jim Kukunas
2012-04-12 20:14 ` lib/raid6: SSSE3 optimized recovery functions v2 H. Peter Anvin
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=1334261073-14781-1-git-send-email-james.t.kukunas@linux.intel.com \
--to=james.t.kukunas@linux.intel.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-raid@vger.kernel.org \
--cc=neilb@suse.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).