[parisc-linux] Back to evms-1.0.1 && unaligne access && gdb

jsoe0708@tiscali.be jsoe0708@tiscali.be
Fri, 30 Aug 2002 08:42:17 +0200


>-- Original Message --
>To: jsoe0708@tiscali.be
>Cc: "John David Anglin" <dave@hiauly1.hia.nrc.ca>,
>	parisc-linux@lists.parisc-linux.org
>Subject: Re: [parisc-linux] Back to evms-1.0.1 && unaligne access && gdb
>
>Date: Fri, 30 Aug 2002 00:30:51 -0600
>From: Grant Grundler <grundler@dsl2.external.hp.com>
>
>
>jsoe0708@tiscali.be wrote:
>> Ah ok but where is located the actual problem (gcc, ld, kernel ?).
>
>the program.
>
>> I am not a computer science engineer and have not enough knowledge
>> to understand this problem of unalign access and unalign adress.
>> Can you give me some source of information explaining that stuff?
>
>Details for parisc:
>	"PA-RISC 2.0 Architecture" by Jerry Kane.
>	page 5-11, "Unaligned Data Reference Trap (28)"
>	page 7-84, "Load Word"
>
>heh...doesn't define "aligned address" in the Glossary.
>The same stuff is in the PA 1.1 Arch books too.
>
>"aligned" means the address of the data falls on a boundary
>that is modulo the size of the data. It's more complicated
>for a "struct" but the rule applies to any field in a struct.
>
>Examples:
>	0x10 is an aligned address for an "int"
>	0x12 is an aligned address for a "short" but not an "int".
>
>Got it?
>
>BTW, even though x86 CPUs don't trap on unaligned access,
>they do take a performance hit. IIRC, it's one additional cycle.
>Under linux, most (all?) RISC CPUs trap and handle the unaligned access
>in the kernel trap handler. Other OS's could SIGBUS the application
>to kill it.
>
Thanks a lot for all info 

>Hmm...this is interesting:
>/usr/include/linux/prctl.h:# define PR_UNALIGN_SIGBUS   2       /* generate
>SIGBUS on unaligned user access */
>
>Maybe you can figure out how to set this and dig through the
>core file instead of trying to set break points.
>
Not sure I will reach but i will have look anyway.

Many thanks again,
    Joel