Fork us on GitHub Follow us on Facebook Follow us on Twitter

Opened 9 months ago

Closed 6 months ago

#839 closed defect (fixed)

Kernel test mapping 1 hangs on sparc64/niagara

Reported by: Jiri Svoboda Owned by:
Priority: major Milestone: 0.12.1
Component: helenos/unspecified Version: mainline
Keywords: Cc:
Blocker for: Depends on:
See also:

Description

When I boot sparc64/niagara (in Qemu 5.2.0 using tools/ew.py) enter kcon and run 'test *' the tests hang in mapping1.

Change History (5)

comment:1 Changed 9 months ago by Jiri Svoboda

I tried to bisect the problem with the following results:

head HANG
0.11.1 HANG
0.7.0 HANG
0.6.0 boot fails (trap to OK)
0.5.0 boot fails (trap to OK)
0.4.3 boot fails (trap to OK)
0.4.2 PASS

So this does not appear to be a new problem. I wonder if it reproduces with older/different version of Qemu as well?

comment:2 Changed 9 months ago by Jiri Svoboda

Example output from hanging test:

mapping1 (Mapping test)
Virtual address 0xffff800101000000 mapped to physical address 0x0000000086a60000.
Virtual address 0xffff800101002000 mapped to physical address 0x0000000086a60000.
Writing magic using the first virtual address.
Reading magic using the second virtual address.
Writing zero using the second virtual address.
Reading zero using the first virtual address.
Writing magic using the first virtual address.
Reading magic using the second virtual address.
Writing zero using the second virtual address.
Reading zero using the first virtual address.

comment:3 Changed 9 months ago by Jiri Svoboda

Milestone: 0.12.1

comment:4 Changed 6 months ago by Jiri Svoboda

I am wondering if this could be related to #790 (sun4v freezes randomly in Qemu) or even #297 (TICK ticks ahead of TICK_COMPARE). I think that, after 11 years, might be as good time as any to finally fix these bugs.

comment:5 Changed 6 months ago by Jakub Jermář

Resolution: fixed
Status: newclosed

Fixed in commit 6ddd7f8cece6bae9f7749e491a5633f4af0b4ce9.

The problem was in km_unmap_unaligned() which for some reason tried to unmap the entire kernel ASID instead of the given range of pages.

Note: See TracTickets for help on using tickets.