From: "prodyut hazarika" <prodyuth@gmail.com>
To: linuxppc-dev@ozlabs.org
Subject: Making __copy_tofrom_user more readable for powerpc (arch/powerpc/lib/copy_32.S)
Date: Thu, 10 Jul 2008 16:44:26 -0700 [thread overview]
Message-ID: <49c0ff980807101644x6ffb9a66x3f73c72f1be86e3@mail.gmail.com> (raw)
Hi all,
I am trying to optimize the __copy_tofrom_user function for PPC4xx,
and I would want to know why the exception handling code has been made
so complicated. All the fixup code should do is to store the number of
bytes that failed in copy in r3 and return back.
The current code tries to copy one byte at a time after read fault. I
don't understand why that is necessary. It then clears out the
destination. All these logic has made the code very unfriendly to
read.
I have a version which just keeps a count of bytes copied till any
fault happened. Then for any exception, I just substract this value
from the total number of bytes to be copied, and store in r3 and
return back. This is the common fixup code for all paths. It makes the
fixup code much more readable like other architectures (eg. x86).
My questions are:
1) Why do we need to distinguish between load and store failure? If
either load or store fails, the copy did not go thru. But the code
sets r9 to 0 for load failure, and r9 to 1 for write failure. Why do
we need to care for that?
2) For read failure, why do we clear out the destination (lines 509 to
529 in arch/powerpc/lib/copy_32.S)? Other architecture don't do that.
I would appreciate any comments.
Thanks,
Prodyut
next reply other threads:[~2008-07-10 23:44 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-10 23:44 prodyut hazarika [this message]
2008-07-11 6:50 ` Making __copy_tofrom_user more readable for powerpc (arch/powerpc/lib/copy_32.S) Michael Neuling
2008-07-11 7:02 ` Arnd Bergmann
-- strict thread matches above, loose matches on Subject: below --
2008-07-10 18:06 prodyut hazarika
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=49c0ff980807101644x6ffb9a66x3f73c72f1be86e3@mail.gmail.com \
--to=prodyuth@gmail.com \
--cc=linuxppc-dev@ozlabs.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 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).