All of lore.kernel.org
 help / color / mirror / Atom feed
From: Artem Alimarine <artem.alimarine@stromasys.com>
To: Kyle McMartin <kyle@mcmartin.ca>
Cc: linux-parisc@vger.kernel.org
Subject: Re: unaligned accesses in apply_relocate_add
Date: Wed, 26 Aug 2009 16:41:20 +0200	[thread overview]
Message-ID: <4A954990.7070007@stromasys.com> (raw)
In-Reply-To: <20090826131749.GE19494@bombadil.infradead.org>

[-- Attachment #1: Type: text/plain, Size: 2418 bytes --]

One point is that in the function apply_relocate_add a 4-byte aligned 
address is created:

627                dot = (Elf64_Addr)loc & ~0x03;
628                loc64 = (Elf64_Xword *)loc;

and used as a 64-bit location

711                case R_PARISC_DIR64:
712                        /* 64-bit effective address */
713                        *loc64 = val + addend;
714                        break;

So, 8-byte word is read with a 4-byte alignment.

I am busy building a parisc hardware emulator. It boots Linux, but it is 
unstable yet. There are unaligned accesses in the emulation trace. I was 
wandering whether it is normal behavior or caused by a bug in the 
emulation.

The emulation trace gives a lot of accesses like this:
0-4011f968: translate_virtual_write unaligned_trap, va=0:416a20c 
pa=1db1820c
0-4011f968: translate_virtual_write unaligned_trap, va=0:416a21c 
pa=1db1821c
0-4011f968: translate_virtual_write unaligned_trap, va=0:416a224 
pa=1db18224

They are indeed 4-byte aligned. The PC address matches 
apply_relocate_add in the kernel map.

Thanks,
Artem

Kyle McMartin wrote:
> On Wed, Aug 26, 2009 at 10:37:13AM +0200, Artem Alimarine wrote:
>  
>> Hi guys,
>>
>> I see unaligned access happening in apply_relocate_add. Is this 
>> normal  expected behavior?
>>
>> Kernel 2.6.26.2, single CPU (Standard Debian 5.0.2). Address 0x4011f968.
>>
>>     
>
> No, definitely not. relocations are applied to instructions, which
> should always be instruction-width (4 bytes) aligned... Since we do
> modify-replace on placeholders, it should never be using anything other
> than a store-word to do it... do you have any more data on this?
>
> regards, Kyle
>
>   


	
dr. Artem Alimarine <artem.alimarine@stromasys.com 
<mailto:artem.alimarine@stromasys.com>>
Software Architect
STROMASYS SA



Kyle McMartin wrote:
> On Wed, Aug 26, 2009 at 10:37:13AM +0200, Artem Alimarine wrote:
>   
>> Hi guys,
>>
>> I see unaligned access happening in apply_relocate_add. Is this normal  
>> expected behavior?
>>
>> Kernel 2.6.26.2, single CPU (Standard Debian 5.0.2). Address 0x4011f968.
>>
>>     
>
> No, definitely not. relocations are applied to instructions, which
> should always be instruction-width (4 bytes) aligned... Since we do
> modify-replace on placeholders, it should never be using anything other
> than a store-word to do it... do you have any more data on this?
>
> regards, Kyle
>
>   


[-- Attachment #2: artem_alimarine.vcf --]
[-- Type: text/x-vcard, Size: 283 bytes --]

begin:vcard
fn:dr. Artem Alimarine
n:Alimarine;Artem
org:STROMASYS SA
adr:;;De Zaale 11;Eindhoven;;5612AJ;The Netherlands
email;internet:artem.alimarine@stromasys.com
title:Software Architect
tel;work:+31-40-2390863
tel;fax:+31-40-2390800
x-mozilla-html:FALSE
version:2.1
end:vcard


  reply	other threads:[~2009-08-26 14:41 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-26  8:37 unaligned accesses in apply_relocate_add Artem Alimarine
2009-08-26 13:17 ` Kyle McMartin
2009-08-26 14:41   ` Artem Alimarine [this message]
2009-08-28 18:42     ` Grant Grundler
2009-08-28 18:58       ` John David Anglin
2009-09-04 22:37       ` Artem Alimarine

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=4A954990.7070007@stromasys.com \
    --to=artem.alimarine@stromasys.com \
    --cc=kyle@mcmartin.ca \
    --cc=linux-parisc@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.