linux-sh.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Drasko DRASKOVIC <drasko.draskovic@gmail.com>
To: linux-sh@vger.kernel.org
Subject: Re: Unaligned kernel access for __udivsi3_i4i
Date: Sat, 20 Feb 2010 00:24:38 +0000	[thread overview]
Message-ID: <5ec3d7931002191624p4f6aa568q4c57516fa1457d06@mail.gmail.com> (raw)
In-Reply-To: <5ec3d7931002191551g21c0cda9le17729529b1afd78@mail.gmail.com>

On Sat, Feb 20, 2010 at 1:08 AM, Matt Fleming <matt@console-pimps.org> wrote:
> On Sat, Feb 20, 2010 at 12:51:38AM +0100, Drasko DRASKOVIC wrote:
>> Hi all,
>> I am getting Unaligned kernel access on 0x809b7662
>
> Hi Drasko,
>
> I suspect that the reason that you're seeing these unaligned accesses is
> because you are dividing by zero. That's what happens when you divide by
> zero when using the libgcc softfpu divide functions; an unaligned access
> is intentionally generated because SH has no other way of signalling
> that an error occurred while doing the division.
>
> To quote from gcc/config/sh/lib1func.asm in the GCC source,
>
> "/* Lookup table translating positive divisor to index into table of
>   normalized inverse.  N.B. the '0' entry is also the last entry of the
>  previous table, and causes an unaligned access for division by zero.  */"
>

Thanks Matt,
I saw this comment in uClibc source, but it did not make much sense to
me, because I did not know that SH4 will not go to some exception
state.

Does that mean that we can do division by zero that goes completely
unnoticed, unless we turn up the warnings (as kernel will fix these
unalignments without even reporting it)?

Doing: echo 1 > /proc/cpu/kernel_alignement, I saw that the kernel
unaligned access was reported. Would that say that some module is
trying division by zero, and not the application itself (because I did
echo 1 > /proc/cpu/alignment at the same time, and it was not reported
as User fault)? I am trying to isolate guilty party, so I would like
to know if it comes from the user space or kernel module (or kernel
itself).

Do you have some ah hoc ideas what would be best strategy to trace
this call back?

Thank you for your help and best regards,
Drasko

  parent reply	other threads:[~2010-02-20  0:24 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-19 23:51 Unaligned kernel access for __udivsi3_i4i Drasko DRASKOVIC
2010-02-20  0:08 ` Matt Fleming
2010-02-20  0:24 ` Drasko DRASKOVIC [this message]
2010-02-20 11:47 ` Matt Fleming
2010-02-20 12:17 ` Paul Mundt

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=5ec3d7931002191624p4f6aa568q4c57516fa1457d06@mail.gmail.com \
    --to=drasko.draskovic@gmail.com \
    --cc=linux-sh@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 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).