Opened 14 years ago
Last modified 14 years ago
#344 closed defect
as_area_destroy() broken on mips32, ppc32 — at Initial Version
Reported by: | Martin Decky | Owned by: | Jakub Jermář |
---|---|---|---|
Priority: | critical | Milestone: | 0.5.0 |
Component: | helenos/kernel/ppc32 | Version: | mainline |
Keywords: | Cc: | ||
Blocker for: | Depends on: | ||
See also: |
Description
The implementation of as_area_destroy() seems to be broken on mips32 and ppc32.
On mips32 (in GXemul) the malloc3 test fails (heap structure gets corrupted), on ppc32 the framebuffer server is killed due to various memory management problems. The user space heap allocator has been extensively examined and tested on other platforms and it doesn't seem to be the culprit.
On ppc32 the problem can be worked around by removing the memory sharing code in the framebuffer server. On both platforms the problem can be completely worked around by changing the kernel function sys_as_area_destroy() into a no-op.
Both ppc32 and mips32 use hierarchical page tables (as_pt.c, page_pt.c) as the kernel memory management backend. This hints what might be the root cause (although other possibilities still cannot be eliminated yet).