Subject: Re: Current ARM kernels hang during bootstrap
To: None <>
From: Ben Harris <>
List: port-arm
Date: 01/17/2004 17:13:53
On Sat, 17 Jan 2004, Richard Earnshaw wrote:

> Since you committed your exit-path patch on 2004/01/04 all my ARM systems
> have started to hang during bootstrap.
> Investigation using a Multi-ICE box shows that the vectors page is getting
> unmapped (on all my machines the vectors are at VA 0x0, which puts it
> notionally in user memory, although it's really a kernel page).  Loosing
> the interrupt and fault vectors is obviously somewhat fatal to the health
> of the machine.
> Have you any idea what might be the cause of this change in behaviour?

It looks like it's this part:

# From within the exiting process context:
# * deactivate pmap and free vmspace while we can still block

exit1() -> uvm_proc_exit() -> uvmspace_free() -> pmap_destroy()

pmap_destroy() unmaps the vector page, so any interupts that happen before
a new pmap is activated will cause pain and death.  I think this is
arguably a bug in the arm32 pmap, which should arrange to map the vector
page by other means if the current pmap is destroyed.

Ben Harris                                                   <>
Portmaster, NetBSD/acorn26           <URL:>