Port-powerpc archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: ofppc - panic pmap_pvo_find_va returning NULL for kernel pmap



Hi Radoslaw,

On 2026/07/01 2:27, Radoslaw Kujawa wrote:
Hi list.

On 6/30/26 00:40, Radosław Kujawa wrote:

The check should not assume that given VA >= PMAP_DIRECT_MAPPED_LEN . Note that PMAP_DIRECT_MAPPED_LEN is calculated according to the formula in oea/pmap.h (line 128) :

SEGMENT_LENGTH (256MB) * USER_SR

Why does the panic not trigger on macppc and other PowerPC ports? By coincidence that depends on ordering of USER_SR and KERNEL_SR utilized by a given port:

macppc, evbppc etc. use USER_SR 12 and KERNEL_SR 13, 14, so segment- mappend KVA lands between 0xD0000000 - 0xF0000000, and PMAP_DIRECT_MAPPED_LEN as calculated is 0xC0000000 . ofppc uses USER_SR 14 and KERNEL_SR 10, 11, so segment-mapped KVA lands between 0xA0000000 - 0xC0000000, and PMAP_DIRECT_MAPPED_LEN as calculated is 0xE0000000 .


After discussion with other developers (thanks Martin, Nick), it was concluded that cleanest solution is to fix the PMAP_DIRECT_MAPPED_LEN calculation itself, so that PMAP_DIRECT_MAPPED_LEN reflects true range of identity-mapped addresses and is independent of KERNEL_SR / USER_SR ordering on a given port.

The following fix was committed today.

Thank you very much for fixing my overlook for ofppc!

Can you please pull up this fix to netbsd-{10,11}, or can I?

Thanks,
rin


Home | Main Index | Thread Index | Old Index