On 7/8/2013 2:06 AM, Christian Ehrhardt wrote:

Can you try to see if the following patch helps? It did for me, when
I was debugging a similar panic back in December. However, my
explanation why the patch would fix this bug, turned out to be invalid.
Still the bug went away. If the same happens for you, some more people
should have a look at the patch:

--- /mount/blink/aegis/project/gg/history/os/src/sys/arch/i386/i386/pmap.c      
2012/10/16 18:31:28     1.117
+++ /mount/blink/aegis/project/gg/history/os/src/sys/arch/i386/i386/pmap.c      
2013/01/24 17:20:06     1.118
@@ -495,7 +495,7 @@ pmap_map_ptes(struct pmap *pmap)

        /* need to load a new alternate pt space into curpmap? */
        opde = *APDP_PDE;
-#if defined(MULTIPROCESSOR) && defined(DIAGNOSTIC)
+#if defined(DIAGNOSTIC)
        if (pmap_valid_entry(opde))
                panic("pmap_map_ptes: APTE valid");
  #endif
@@ -521,10 +521,8 @@ pmap_unmap_ptes(struct pmap *pmap)
        if (pmap_is_curpmap(pmap)) {
                simple_unlock(&pmap->pm_obj.vmobjlock);
        } else {
-#if defined(MULTIPROCESSOR)
                *APDP_PDE = 0;
                pmap_apte_flush();
-#endif
                simple_unlock(&pmap->pm_obj.vmobjlock);
                simple_unlock(&curpcb->pcb_pmap->pm_obj.vmobjlock);
        }

    regards   Christian


Hello Christian.

Yes, I can confirm that after applying your patch and rebuilding the kernel, I was able to successfully build userland without a panic, after all previous efforts consistently failed.

So, thank you!. And if there is anything I can do to help see that patch merged into the source tree, please let me know.

Cheers.

- Scott

Reply via email to