Port-amd64 archive

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

Re: Test of Dell/EMC Poweredge R7525



> There's this PR:
>
> 	https://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=54489

Yep, seems pretty identical.

> So, if someone could provide the feedback, that would help already.

About which CPU this comes from?

At least the first crash seems to imply "not the boot processor",
ref. the presence of boot_secondary_processors() in the stack trace.

The problem I have is that when NetBSD drops into DDB, the keyboard is
unresponsive, both the physical (USB) and the virtual keyboard via
iDRAC, and the server does not have a serial port.  Any hints for how
to go about finding the asked-for information?  Can you either suggest
a diff providing more printf() output, or suggest what could be used
to identify each cpu (ci_index via cpu_index()?)?  (I'm sorry I didn't
note down the stack backtrace from the second crash.)  Would perhaps
something like this provide the requested information?

Index: cpu.c
===================================================================
RCS file: /cvsroot/src/sys/arch/x86/x86/cpu.c,v
retrieving revision 1.184
diff -u -p -r1.184 cpu.c
--- cpu.c       20 Apr 2020 04:23:23 -0000      1.184
+++ cpu.c       25 Apr 2020 09:04:48 -0000
@@ -730,6 +730,9 @@ cpu_boot_secondary_processors(void)
        acpisrat_exit();
 #endif
 
+       printf("cpu_boot_secondary_processors, boot cpu %d\n",
+               cpu_index(curcpu()));
+
        kcpuset_create(&cpus, true);
        kcpuset_set(cpus, cpu_index(curcpu()));
        for (i = 0; i < maxcpus; i++) {
@@ -846,6 +849,8 @@ cpu_boot_secondary(struct cpu_info *ci)
        u_long psl;
        int i;
 
+       printf("cpu_boot_secondary() on cpu %d\n", cpu_index(ci));
+
        atomic_or_32(&ci->ci_flags, CPUF_GO);
        for (i = 100000; (!(ci->ci_flags & CPUF_RUNNING)) && i > 0; i--) {
                x86_delay(10);
Index: patch.c
===================================================================
RCS file: /cvsroot/src/sys/arch/x86/x86/patch.c,v
retrieving revision 1.39
diff -u -p -r1.39 patch.c
--- patch.c     10 Apr 2020 14:35:26 -0000      1.39
+++ patch.c     25 Apr 2020 09:04:48 -0000
@@ -284,6 +284,8 @@ x86_patch(bool early)
                x86_hotpatch(HP_NAME_RETFENCE, bytes, sizeof(bytes));
        }
 
+#if 0
+/* Causes crash in kassert on Dell/EMC Poweredge R7525 */
        /*
         * If SMAP is present then patch the prepared holes with clac/stac
         * instructions.
@@ -306,6 +308,7 @@ x86_patch(bool early)
                /* nop,nop,nop -> stac */
                x86_hotpatch(HP_NAME_STAC, stac_bytes, sizeof(stac_bytes));
        }
+#endif /* #if 0 */
 
        x86_patch_window_close(psl, cr0);
 }
Index: pmap.c
===================================================================
RCS file: /cvsroot/src/sys/arch/x86/x86/pmap.c,v
retrieving revision 1.381
diff -u -p -r1.381 pmap.c
--- pmap.c      5 Apr 2020 00:21:11 -0000       1.381
+++ pmap.c      25 Apr 2020 09:04:48 -0000
@@ -3381,6 +3381,8 @@ pmap_activate(struct lwp *l)
        if (l != ci->ci_curlwp)
                return;
 
+       printf("pmap_activate() on cpu %d\n", cpu_index(ci));
+
        KASSERT(ci->ci_want_pmapload == 0);
        KASSERT(ci->ci_tlbstate != TLBSTATE_VALID);
 
BTW, the system I had access to has been installed with other software
now, but we have a few more still in boxes; we'll see if I can get
access to do more testing.

Regards,

- Havard


Home | Main Index | Thread Index | Old Index