From: Benny Halevy <bhalevy@tonian.com>
To: Boaz Harrosh <bharrosh@panasas.com>
Cc: Jim Rees <rees@umich.edu>,
fanchaoting <fanchaoting@cn.fujitsu.com>,
Benny Halevy <benny@tonian.com>,
linux-nfs@vger.kernel.org
Subject: Re: [PATCH] fix do_xor_speed 64-bit devision issue on 32-bits arch
Date: Sun, 25 Dec 2011 07:31:02 +0200 [thread overview]
Message-ID: <4EF6B516.5070609@tonian.com> (raw)
In-Reply-To: <20111223132546.GA10015@umich.edu>
On 2011-12-23 15:25, Jim Rees wrote:
> fanchaoting wrote:
>
> Benny Halevy 写道:
> > I am trying to build a pnfs client on a 32 bit system and the
> > pnfs-latest kernel fails to compile. I get the following error
> >
> > > Building modules, stage 2.
> > > TEST posttest
> > > MODPOST 2046 modules
> > >ERROR: "__udivdi3" [crypto/xor.ko] undefined!
> > >make[1]: *** [__modpost] Error 1
> > >make: *** [modules] Error 2
> > >make: *** Waiting for unfinished jobs....
> > >Succeed: decoded and checked 1244492 instructions
> >
> > Reported-by: Rita Sequeira <rita.prajval@gmail.com>
> > Signed-off-by: Benny Halevy <bhalevy@tonian.com>
> > ---
> >
> > untested patch yet...
> >
> > crypto/xor.c | 3 ++-
> > 1 files changed, 2 insertions(+), 1 deletions(-)
> >
> > diff --git a/crypto/xor.c b/crypto/xor.c
> > index 65433f5..2151ded 100644
> > --- a/crypto/xor.c
> > +++ b/crypto/xor.c
> > @@ -95,7 +95,8 @@
> >
> > ns_end -= ns_begin;
> > if (ns_end > 0)
> > - speed = BENCH_SIZE / 1024 * count * NSEC_PER_SEC / ns_end;
> > + speed = BENCH_SIZE / 1024 * count *
> > + (unsigned)(NSEC_PER_SEC / ns_end);
> > else
> > speed = 17;
> > tmpl->speed = speed;
>
> Hi,I also meet this problem ,but when i use you patch ,i can't solve this
> problem.
>
> Maybe something like this?
>
> speed = do_div(BENCH_SIZE, 1024) * count * do_div(NSEC_PER_SEC, ns_end);
>
> This might not be exactly right because it changes the operator precedence,
> but it should eliminate the calls to __udivdi3.
Hmm, you mean execution order? (which you do not)
C (and fortunately gcc too :) treats multiplication and division with the
same priority and executes them from left to right...
Boaz, please ack...
Benny
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2011-12-25 5:31 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-07 14:08 [PATCH] fix do_xor_speed 64-bit devision issue on 32-bits arch Benny Halevy
2011-12-23 6:41 ` fanchaoting
2011-12-23 13:25 ` Jim Rees
2011-12-25 5:31 ` Benny Halevy [this message]
2011-12-25 13:54 ` Jim Rees
2011-12-25 15:25 ` Boaz Harrosh
2011-12-25 15:57 ` Jim Rees
2011-12-26 7:11 ` Benny Halevy
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=4EF6B516.5070609@tonian.com \
--to=bhalevy@tonian.com \
--cc=benny@tonian.com \
--cc=bharrosh@panasas.com \
--cc=fanchaoting@cn.fujitsu.com \
--cc=linux-nfs@vger.kernel.org \
--cc=rees@umich.edu \
/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).