* MIPS Unaligned Access Question
@ 2008-11-13 16:38 ` Ken Hicks
0 siblings, 0 replies; 7+ messages in thread
From: Ken Hicks @ 2008-11-13 16:38 UTC (permalink / raw)
To: linux-mips
[-- Attachment #1: Type: text/plain, Size: 3481 bytes --]
Hi,
This is my first post. I hope I'm following correct etiquette. Here we
go....
I'm investigating why an Unaligned Access exception is generated on MIPS
from an accesses which are not misaligned.
The issue is that a kernel access two different unmapped addresses
results in different exceptions:
Address Exception
0x0001000000000000: page fault
0x0010000000000000: unaligned access
I'm using a Cavium CPU with a custom linux based on 2.6.14 but the code
in question hasn't changed widly in more recent kernels.
I have observed this several times, so I have manually recreated the
behaviour by intentionally accessing known unmapped addresses.
In this first case, I forced an access to 0x0001000000000000:
Oops in arch/mips/mm/fault.c::do_page_fault, line 232[#15]:
Cpu 5
$ 0 : 0000000000000000 ffffffff81680000 000000000eb5fe30
00000029e2cb9823
$ 4 : 00000000000003e8 00000029e2c02673 000000002cb41780
0000000000000000
$ 8 : 000000000000ed97 0000000000004001 0000000000000001
ffffffff8167d547
$12 : ffffffffffffffff 0000000000000010 ffffffff8167d927
ffffffff81541730
$16 : 0001000000000000 0001000000000000 0000000000000007
ffffffff81619828
$20 : a80000000eb5fe30 a80000000eb5f0a0 a80000000eb5f0a0
ffffffff815a3400
$24 : 0000000000000000 0000000000000030
$28 : a80000000eb5c000 a80000000eb5fb30 ffffffffffffff80
ffffffff81101eb0
Hi : 0000002dc6c00000
Lo : 0000001e9c578400
epc : ffffffff81101fd0 kernel_ken+0x2f8/0x310 Tainted: P
ra : ffffffff81101eb0 kernel_ken+0x1d8/0x310
Status: 10007fe2 KX SX UX KERNEL EXL
Cause : 4080800c
BadVA : 0001000000000000
In this second case, I forced an access to 0x0010000000000000:
Unhandled kernel unaligned access in
arch/mips/kernel/unaligned.c::emulate_load_store_insn, line 507[#11]:
Cpu 3
$ 0 : 0000000000000000 ffffffff81680000 000000000eb0be30
00000017a7f4fdc1
$ 4 : 00000000000003e8 00000017a7e98c11 000000002cb41780
0000000000000000
$ 8 : 0000000000003272 0000000000004001 0000000000000001
ffffffff8167d547
$12 : ffffffffffffffff 0000000000000010 ffffffff8167d927
ffffffff81541730
$16 : a8000000e62c0980 0010000000000000 0000000000000007
ffffffff81619828
$20 : a80000000eb0be30 000000007fc000e0 000000007fc00190
ffffffff815a3400
$24 : 0000000000000000 0000000000000030
$28 : a80000000eb08000 a80000000eb0bb30 0000000000512c54
ffffffff81101eb0
Hi : 0000002dc6c00000
Lo : 0000001e9c578400
epc : ffffffff81101fd0 kernel_ken+0x2f8/0x310 Tainted: P
ra : ffffffff81101eb0 kernel_ken+0x1d8/0x310
Status: 10007fe2 KX SX UX KERNEL EXL
Cause : 40808014
BadVA : 0010000000000000
In the second case, the address is not unaligned, but it is reported as
an unaligned access error.
Is this behaviour related to some memory mapping?
Here's copy of cat /proc/iomem:
016c0000-08ebffff : System RAM
09010000-0fc0ffff : System RAM
20000000-ffffffff : System RAM
412000000-41fffffff : System RAM
1180000000800-118000000083f : serial
11b0008001000-11b0048001000 : Octeon PCI MEM
11b0008020000-11b000803ffff : 0000:00:00.0
11b0008020000-11b000803ffff : e1000
11b0008040000-11b000805ffff : 0000:00:00.1
11b0008040000-11b000805ffff : e1000
Is this a bug, or intentional behaviour?
In any case, would anyone be able to explain why the two accesses are
reported differently.
I'd just like to understand it.
Thanks,
Ken
Ken Hicks
[-- Attachment #2: Type: text/html, Size: 7290 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: MIPS Unaligned Access Question
2008-11-13 16:38 ` Ken Hicks
(?)
@ 2008-11-13 17:08 ` Chad Reese
2008-11-13 21:10 ` Ken Hicks
-1 siblings, 1 reply; 7+ messages in thread
From: Chad Reese @ 2008-11-13 17:08 UTC (permalink / raw)
To: Ken Hicks; +Cc: linux-mips
> Address Exception
> 0x0001000000000000: page fault
> 0x0010000000000000: unaligned access
Neither address is a valid userspace address as the number of virtual
bits supported by the kernel under Linux is 40 bits. Early Octeon
kernels did not range check the lookup in the page tables, which caused
the kernel to fail in unusual ways. This has been fixed in newer kernels
from Cavium Networks.
I believe this is not a problem in the normal mainline Linux kernel.
Chad
Ken Hicks wrote:
> Hi,
>
> This is my first post. I hope I'm following correct etiquette. Here we
> go....
>
> I'm investigating why an Unaligned Access exception is generated on MIPS
> from an accesses which are not misaligned.
>
> The issue is that a kernel access two different unmapped addresses
> results in different exceptions:
> Address Exception
> 0x0001000000000000: page fault
> 0x0010000000000000: unaligned access
>
> I'm using a Cavium CPU with a custom linux based on 2.6.14 but the code
> in question hasn't changed widly in more recent kernels.
>
> I have observed this several times, so I have manually recreated the
> behaviour by intentionally accessing known unmapped addresses.
>
> In this first case, I forced an access to 0x0001000000000000:
>
> Oops in arch/mips/mm/fault.c::do_page_fault, line 232[#15]:
> Cpu 5
> $ 0 : 0000000000000000 ffffffff81680000 000000000eb5fe30 00000029e2cb9823
> $ 4 : 00000000000003e8 00000029e2c02673 000000002cb41780 0000000000000000
> $ 8 : 000000000000ed97 0000000000004001 0000000000000001 ffffffff8167d547
> $12 : ffffffffffffffff 0000000000000010 ffffffff8167d927 ffffffff81541730
> $16 : 0001000000000000 0001000000000000 0000000000000007 ffffffff81619828
> $20 : a80000000eb5fe30 a80000000eb5f0a0 a80000000eb5f0a0 ffffffff815a3400
> $24 : 0000000000000000 0000000000000030
> $28 : a80000000eb5c000 a80000000eb5fb30 ffffffffffffff80 ffffffff81101eb0
> Hi : 0000002dc6c00000
> Lo : 0000001e9c578400
> epc : ffffffff81101fd0 kernel_ken+0x2f8/0x310 Tainted: P
> ra : ffffffff81101eb0 kernel_ken+0x1d8/0x310
> Status: 10007fe2 KX SX UX KERNEL EXL
> Cause : 4080800c
> BadVA : 0001000000000000
>
> In this second case, I forced an access to 0x0010000000000000:
>
> Unhandled kernel unaligned access in
> arch/mips/kernel/unaligned.c::emulate_load_store_insn, line 507[#11]:
> Cpu 3
> $ 0 : 0000000000000000 ffffffff81680000 000000000eb0be30 00000017a7f4fdc1
> $ 4 : 00000000000003e8 00000017a7e98c11 000000002cb41780 0000000000000000
> $ 8 : 0000000000003272 0000000000004001 0000000000000001 ffffffff8167d547
> $12 : ffffffffffffffff 0000000000000010 ffffffff8167d927 ffffffff81541730
> $16 : a8000000e62c0980 0010000000000000 0000000000000007 ffffffff81619828
> $20 : a80000000eb0be30 000000007fc000e0 000000007fc00190 ffffffff815a3400
> $24 : 0000000000000000 0000000000000030
> $28 : a80000000eb08000 a80000000eb0bb30 0000000000512c54 ffffffff81101eb0
> Hi : 0000002dc6c00000
> Lo : 0000001e9c578400
> epc : ffffffff81101fd0 kernel_ken+0x2f8/0x310 Tainted: P
> ra : ffffffff81101eb0 kernel_ken+0x1d8/0x310
> Status: 10007fe2 KX SX UX KERNEL EXL
> Cause : 40808014
> BadVA : 0010000000000000
>
> In the second case, the address is not unaligned, but it is reported as
> an unaligned access error.
>
> Is this behaviour related to some memory mapping?
>
> Here's copy of cat /proc/iomem:
> 016c0000-08ebffff : System RAM
> 09010000-0fc0ffff : System RAM
> 20000000-ffffffff : System RAM
> 412000000-41fffffff : System RAM
> 1180000000800-118000000083f : serial
> 11b0008001000-11b0048001000 : Octeon PCI MEM
> 11b0008020000-11b000803ffff : 0000:00:00.0
> 11b0008020000-11b000803ffff : e1000
> 11b0008040000-11b000805ffff : 0000:00:00.1
> 11b0008040000-11b000805ffff : e1000
>
> Is this a bug, or intentional behaviour?
>
> In any case, would anyone be able to explain why the two accesses are
> reported differently.
> I'd just like to understand it.
>
> Thanks,
> Ken
>
> Ken Hicks
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: MIPS Unaligned Access Question
@ 2008-11-13 21:10 ` Ken Hicks
0 siblings, 0 replies; 7+ messages in thread
From: Ken Hicks @ 2008-11-13 21:10 UTC (permalink / raw)
To: Chad Reese; +Cc: linux-mips
Thanks Chad,
Is there a particular Cavium patch or patch set which I can use to get
the fix?
Ken
-----Original Message-----
From: Chad Reese [mailto:kreese@caviumnetworks.com]
Sent: Thursday, November 13, 2008 12:09 PM
To: Hicks, Ken (CAR:SI72)
Cc: linux-mips@linux-mips.org
Subject: Re: MIPS Unaligned Access Question
> Address Exception
> 0x0001000000000000: page fault
> 0x0010000000000000: unaligned access
Neither address is a valid userspace address as the number of virtual
bits supported by the kernel under Linux is 40 bits. Early Octeon
kernels did not range check the lookup in the page tables, which caused
the kernel to fail in unusual ways. This has been fixed in newer kernels
from Cavium Networks.
I believe this is not a problem in the normal mainline Linux kernel.
Chad
Ken Hicks wrote:
> Hi,
>
> This is my first post. I hope I'm following correct etiquette. Here
> we go....
>
> I'm investigating why an Unaligned Access exception is generated on
> MIPS from an accesses which are not misaligned.
>
> The issue is that a kernel access two different unmapped addresses
> results in different exceptions:
> Address Exception
> 0x0001000000000000: page fault
> 0x0010000000000000: unaligned access
>
> I'm using a Cavium CPU with a custom linux based on 2.6.14 but the
> code in question hasn't changed widly in more recent kernels.
>
> I have observed this several times, so I have manually recreated the
> behaviour by intentionally accessing known unmapped addresses.
>
> In this first case, I forced an access to 0x0001000000000000:
>
> Oops in arch/mips/mm/fault.c::do_page_fault, line 232[#15]:
> Cpu 5
> $ 0 : 0000000000000000 ffffffff81680000 000000000eb5fe30
00000029e2cb9823
> $ 4 : 00000000000003e8 00000029e2c02673 000000002cb41780
0000000000000000
> $ 8 : 000000000000ed97 0000000000004001 0000000000000001
ffffffff8167d547
> $12 : ffffffffffffffff 0000000000000010 ffffffff8167d927
ffffffff81541730
> $16 : 0001000000000000 0001000000000000 0000000000000007
ffffffff81619828
> $20 : a80000000eb5fe30 a80000000eb5f0a0 a80000000eb5f0a0
ffffffff815a3400
> $24 : 0000000000000000 0000000000000030
> $28 : a80000000eb5c000 a80000000eb5fb30 ffffffffffffff80
ffffffff81101eb0
> Hi : 0000002dc6c00000
> Lo : 0000001e9c578400
> epc : ffffffff81101fd0 kernel_ken+0x2f8/0x310 Tainted: P
> ra : ffffffff81101eb0 kernel_ken+0x1d8/0x310
> Status: 10007fe2 KX SX UX KERNEL EXL
> Cause : 4080800c
> BadVA : 0001000000000000
>
> In this second case, I forced an access to 0x0010000000000000:
>
> Unhandled kernel unaligned access in
> arch/mips/kernel/unaligned.c::emulate_load_store_insn, line 507[#11]:
> Cpu 3
> $ 0 : 0000000000000000 ffffffff81680000 000000000eb0be30
00000017a7f4fdc1
> $ 4 : 00000000000003e8 00000017a7e98c11 000000002cb41780
0000000000000000
> $ 8 : 0000000000003272 0000000000004001 0000000000000001
ffffffff8167d547
> $12 : ffffffffffffffff 0000000000000010 ffffffff8167d927
ffffffff81541730
> $16 : a8000000e62c0980 0010000000000000 0000000000000007
ffffffff81619828
> $20 : a80000000eb0be30 000000007fc000e0 000000007fc00190
ffffffff815a3400
> $24 : 0000000000000000 0000000000000030
> $28 : a80000000eb08000 a80000000eb0bb30 0000000000512c54
ffffffff81101eb0
> Hi : 0000002dc6c00000
> Lo : 0000001e9c578400
> epc : ffffffff81101fd0 kernel_ken+0x2f8/0x310 Tainted: P
> ra : ffffffff81101eb0 kernel_ken+0x1d8/0x310
> Status: 10007fe2 KX SX UX KERNEL EXL
> Cause : 40808014
> BadVA : 0010000000000000
>
> In the second case, the address is not unaligned, but it is reported
> as an unaligned access error.
>
> Is this behaviour related to some memory mapping?
>
> Here's copy of cat /proc/iomem:
> 016c0000-08ebffff : System RAM
> 09010000-0fc0ffff : System RAM
> 20000000-ffffffff : System RAM
> 412000000-41fffffff : System RAM
> 1180000000800-118000000083f : serial
> 11b0008001000-11b0048001000 : Octeon PCI MEM
> 11b0008020000-11b000803ffff : 0000:00:00.0
> 11b0008020000-11b000803ffff : e1000
> 11b0008040000-11b000805ffff : 0000:00:00.1
> 11b0008040000-11b000805ffff : e1000
>
> Is this a bug, or intentional behaviour?
>
> In any case, would anyone be able to explain why the two accesses are
> reported differently.
> I'd just like to understand it.
>
> Thanks,
> Ken
>
> Ken Hicks
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: MIPS Unaligned Access Question
@ 2008-11-13 21:10 ` Ken Hicks
0 siblings, 0 replies; 7+ messages in thread
From: Ken Hicks @ 2008-11-13 21:10 UTC (permalink / raw)
To: Chad Reese; +Cc: linux-mips
Thanks Chad,
Is there a particular Cavium patch or patch set which I can use to get
the fix?
Ken
-----Original Message-----
From: Chad Reese [mailto:kreese@caviumnetworks.com]
Sent: Thursday, November 13, 2008 12:09 PM
To: Hicks, Ken (CAR:SI72)
Cc: linux-mips@linux-mips.org
Subject: Re: MIPS Unaligned Access Question
> Address Exception
> 0x0001000000000000: page fault
> 0x0010000000000000: unaligned access
Neither address is a valid userspace address as the number of virtual
bits supported by the kernel under Linux is 40 bits. Early Octeon
kernels did not range check the lookup in the page tables, which caused
the kernel to fail in unusual ways. This has been fixed in newer kernels
from Cavium Networks.
I believe this is not a problem in the normal mainline Linux kernel.
Chad
Ken Hicks wrote:
> Hi,
>
> This is my first post. I hope I'm following correct etiquette. Here
> we go....
>
> I'm investigating why an Unaligned Access exception is generated on
> MIPS from an accesses which are not misaligned.
>
> The issue is that a kernel access two different unmapped addresses
> results in different exceptions:
> Address Exception
> 0x0001000000000000: page fault
> 0x0010000000000000: unaligned access
>
> I'm using a Cavium CPU with a custom linux based on 2.6.14 but the
> code in question hasn't changed widly in more recent kernels.
>
> I have observed this several times, so I have manually recreated the
> behaviour by intentionally accessing known unmapped addresses.
>
> In this first case, I forced an access to 0x0001000000000000:
>
> Oops in arch/mips/mm/fault.c::do_page_fault, line 232[#15]:
> Cpu 5
> $ 0 : 0000000000000000 ffffffff81680000 000000000eb5fe30
00000029e2cb9823
> $ 4 : 00000000000003e8 00000029e2c02673 000000002cb41780
0000000000000000
> $ 8 : 000000000000ed97 0000000000004001 0000000000000001
ffffffff8167d547
> $12 : ffffffffffffffff 0000000000000010 ffffffff8167d927
ffffffff81541730
> $16 : 0001000000000000 0001000000000000 0000000000000007
ffffffff81619828
> $20 : a80000000eb5fe30 a80000000eb5f0a0 a80000000eb5f0a0
ffffffff815a3400
> $24 : 0000000000000000 0000000000000030
> $28 : a80000000eb5c000 a80000000eb5fb30 ffffffffffffff80
ffffffff81101eb0
> Hi : 0000002dc6c00000
> Lo : 0000001e9c578400
> epc : ffffffff81101fd0 kernel_ken+0x2f8/0x310 Tainted: P
> ra : ffffffff81101eb0 kernel_ken+0x1d8/0x310
> Status: 10007fe2 KX SX UX KERNEL EXL
> Cause : 4080800c
> BadVA : 0001000000000000
>
> In this second case, I forced an access to 0x0010000000000000:
>
> Unhandled kernel unaligned access in
> arch/mips/kernel/unaligned.c::emulate_load_store_insn, line 507[#11]:
> Cpu 3
> $ 0 : 0000000000000000 ffffffff81680000 000000000eb0be30
00000017a7f4fdc1
> $ 4 : 00000000000003e8 00000017a7e98c11 000000002cb41780
0000000000000000
> $ 8 : 0000000000003272 0000000000004001 0000000000000001
ffffffff8167d547
> $12 : ffffffffffffffff 0000000000000010 ffffffff8167d927
ffffffff81541730
> $16 : a8000000e62c0980 0010000000000000 0000000000000007
ffffffff81619828
> $20 : a80000000eb0be30 000000007fc000e0 000000007fc00190
ffffffff815a3400
> $24 : 0000000000000000 0000000000000030
> $28 : a80000000eb08000 a80000000eb0bb30 0000000000512c54
ffffffff81101eb0
> Hi : 0000002dc6c00000
> Lo : 0000001e9c578400
> epc : ffffffff81101fd0 kernel_ken+0x2f8/0x310 Tainted: P
> ra : ffffffff81101eb0 kernel_ken+0x1d8/0x310
> Status: 10007fe2 KX SX UX KERNEL EXL
> Cause : 40808014
> BadVA : 0010000000000000
>
> In the second case, the address is not unaligned, but it is reported
> as an unaligned access error.
>
> Is this behaviour related to some memory mapping?
>
> Here's copy of cat /proc/iomem:
> 016c0000-08ebffff : System RAM
> 09010000-0fc0ffff : System RAM
> 20000000-ffffffff : System RAM
> 412000000-41fffffff : System RAM
> 1180000000800-118000000083f : serial
> 11b0008001000-11b0048001000 : Octeon PCI MEM
> 11b0008020000-11b000803ffff : 0000:00:00.0
> 11b0008020000-11b000803ffff : e1000
> 11b0008040000-11b000805ffff : 0000:00:00.1
> 11b0008040000-11b000805ffff : e1000
>
> Is this a bug, or intentional behaviour?
>
> In any case, would anyone be able to explain why the two accesses are
> reported differently.
> I'd just like to understand it.
>
> Thanks,
> Ken
>
> Ken Hicks
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: MIPS Unaligned Access Question
2008-11-13 16:38 ` Ken Hicks
(?)
(?)
@ 2008-11-13 17:12 ` Maciej W. Rozycki
-1 siblings, 0 replies; 7+ messages in thread
From: Maciej W. Rozycki @ 2008-11-13 17:12 UTC (permalink / raw)
To: Ken Hicks; +Cc: linux-mips
On Thu, 13 Nov 2008, Ken Hicks wrote:
> I'm investigating why an Unaligned Access exception is generated on MIPS
> from an accesses which are not misaligned.
>
> The issue is that a kernel access two different unmapped addresses
> results in different exceptions:
> Address Exception
> 0x0001000000000000: page fault
> 0x0010000000000000: unaligned access
>
> I'm using a Cavium CPU with a custom linux based on 2.6.14 but the code
> in question hasn't changed widly in more recent kernels.
> I have observed this several times, so I have manually recreated the
> behaviour by intentionally accessing known unmapped addresses.
This is not an unaligned access, this is a generic address error
resulting from accessing an address outside the defined segments. Please
see your CPU's datasheet for which data ranges are valid as the MIPS
architecture leaves it up to the implementer.
Our address error exception handler does not attempt to differentiate
between the two cases, because it is not possible for all the CPUs out
there to determine which addresses are valid and which are not
automatically. For all the legacy MIPS implementations the ranges would
have to be hardcoded in the kernel. For MIPS architecture processors it
is actually possible to figure it out with some fiddling of the CP0
registers.
Improving the address error exception handler in this respect has been on
my to-do list for a while now (for my own convenience I have had a local
patch to check the ranges for the R4000/R4400 processors), but please
don't hold your breath waiting for me to finish it as I do not expect it
to happen anytime soon. Feel free to make improvements in this area
yourself.
For further information please refer to your CPU's datasheet and the MIPS
architecture manuals.
Maciej
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: MIPS Unaligned Access Question
2008-11-13 16:38 ` Ken Hicks
` (2 preceding siblings ...)
(?)
@ 2008-11-13 17:23 ` David Daney
-1 siblings, 0 replies; 7+ messages in thread
From: David Daney @ 2008-11-13 17:23 UTC (permalink / raw)
To: Ken Hicks; +Cc: linux-mips
Ken Hicks wrote:
> Hi,
>
> This is my first post. I hope I'm following correct etiquette. Here we
> go....
>
> I'm investigating why an Unaligned Access exception is generated on MIPS
> from an accesses which are not misaligned.
>
> The issue is that a kernel access two different unmapped addresses
> results in different exceptions:
> Address Exception
> 0x0001000000000000: page fault
> 0x0010000000000000: unaligned access
>
You get the 'unaligned access' reported for any Address Error Exceptions
(see section 5.2.8 of the MIPS64 Privileged Resource Architecture manual).
Since we don't know the contents of the TLB, It is hard to know the
exact cause, but it is probably one of the non-unaligned access causes
and is erroneously being reported as 'unaligned access'
David Daney
> I'm using a Cavium CPU with a custom linux based on 2.6.14 but the code
> in question hasn't changed widly in more recent kernels.
>
> I have observed this several times, so I have manually recreated the
> behaviour by intentionally accessing known unmapped addresses.
>
> In this first case, I forced an access to 0x0001000000000000:
>
> Oops in arch/mips/mm/fault.c::do_page_fault, line 232[#15]:
> Cpu 5
> $ 0 : 0000000000000000 ffffffff81680000 000000000eb5fe30 00000029e2cb9823
> $ 4 : 00000000000003e8 00000029e2c02673 000000002cb41780 0000000000000000
> $ 8 : 000000000000ed97 0000000000004001 0000000000000001 ffffffff8167d547
> $12 : ffffffffffffffff 0000000000000010 ffffffff8167d927 ffffffff81541730
> $16 : 0001000000000000 0001000000000000 0000000000000007 ffffffff81619828
> $20 : a80000000eb5fe30 a80000000eb5f0a0 a80000000eb5f0a0 ffffffff815a3400
> $24 : 0000000000000000 0000000000000030
> $28 : a80000000eb5c000 a80000000eb5fb30 ffffffffffffff80 ffffffff81101eb0
> Hi : 0000002dc6c00000
> Lo : 0000001e9c578400
> epc : ffffffff81101fd0 kernel_ken+0x2f8/0x310 Tainted: P
> ra : ffffffff81101eb0 kernel_ken+0x1d8/0x310
> Status: 10007fe2 KX SX UX KERNEL EXL
> Cause : 4080800c
> BadVA : 0001000000000000
>
> In this second case, I forced an access to 0x0010000000000000:
>
> Unhandled kernel unaligned access in
> arch/mips/kernel/unaligned.c::emulate_load_store_insn, line 507[#11]:
> Cpu 3
> $ 0 : 0000000000000000 ffffffff81680000 000000000eb0be30 00000017a7f4fdc1
> $ 4 : 00000000000003e8 00000017a7e98c11 000000002cb41780 0000000000000000
> $ 8 : 0000000000003272 0000000000004001 0000000000000001 ffffffff8167d547
> $12 : ffffffffffffffff 0000000000000010 ffffffff8167d927 ffffffff81541730
> $16 : a8000000e62c0980 0010000000000000 0000000000000007 ffffffff81619828
> $20 : a80000000eb0be30 000000007fc000e0 000000007fc00190 ffffffff815a3400
> $24 : 0000000000000000 0000000000000030
> $28 : a80000000eb08000 a80000000eb0bb30 0000000000512c54 ffffffff81101eb0
> Hi : 0000002dc6c00000
> Lo : 0000001e9c578400
> epc : ffffffff81101fd0 kernel_ken+0x2f8/0x310 Tainted: P
> ra : ffffffff81101eb0 kernel_ken+0x1d8/0x310
> Status: 10007fe2 KX SX UX KERNEL EXL
> Cause : 40808014
> BadVA : 0010000000000000
>
> In the second case, the address is not unaligned, but it is reported as
> an unaligned access error.
>
> Is this behaviour related to some memory mapping?
>
> Here's copy of cat /proc/iomem:
> 016c0000-08ebffff : System RAM
> 09010000-0fc0ffff : System RAM
> 20000000-ffffffff : System RAM
> 412000000-41fffffff : System RAM
> 1180000000800-118000000083f : serial
> 11b0008001000-11b0048001000 : Octeon PCI MEM
> 11b0008020000-11b000803ffff : 0000:00:00.0
> 11b0008020000-11b000803ffff : e1000
> 11b0008040000-11b000805ffff : 0000:00:00.1
> 11b0008040000-11b000805ffff : e1000
>
> Is this a bug, or intentional behaviour?
>
> In any case, would anyone be able to explain why the two accesses are
> reported differently.
> I'd just like to understand it.
>
> Thanks,
> Ken
>
> Ken Hicks
>
^ permalink raw reply [flat|nested] 7+ messages in thread