Another Test Run with Alternative pmap Implementation
Ulrich Grey
usenet at ulrich-grey.de
Tue Nov 25 21:55:38 UTC 2014
Hello,
I updated the source tree from Svatopluk Kraus and build an Image (crochet,
wandboard-quad). The kernel is compiled with ARM_NEW_PMAP:
root at quad:/usr/home/gwgpi # uname -a
FreeBSD quad 11.0-CURRENT FreeBSD 11.0-CURRENT #0 428e9d2(master)-dirty: Tue Nov 25
09:45:07 UTC 2014
root at quad:/usr/local/DEVEL/obj/usr/local/DEVEL/STREJDA/freebsd/sys/WANDBOARD-QUAD arm
root at quad:/usr/home/gwgpi # sysctl vm.pmap.
vm.pmap.pv_entry_max: 1745184
vm.pmap.shpgperproc: 200
vm.pmap.nkpt2pg: 32
vm.pmap.sp_enabled: 1
vm.pmap.pte1.demotions: 22
vm.pmap.pte1.mappings: 0
vm.pmap.pte1.p_failures: 122
vm.pmap.pte1.promotions: 38
vm.pmap.pv_entry_count: 12369
vm.pmap.pc_chunk_count: 43
vm.pmap.pc_chunk_allocs: 1981
vm.pmap.pc_chunk_frees: 1938
vm.pmap.pc_chunk_tryfail: 0
vm.pmap.pv_entry_frees: 417470
vm.pmap.pv_entry_allocs: 429839
vm.pmap.pv_entry_spare: 2079
#
Then I did:
root at quad:/usr/src # make -j20 buildworld
#
The build hangs here (not for the first time):
--- cpp_helpers ---
c++ -O -pipe -I/usr/local/DEVEL/STREJDA/freebsd/contrib/atf -Qunused-arguments -Wno-c+
+11-extensions -L/usr/obj/usr/local/DEVEL/STREJDA/freebsd/tmp/usr/lib/private
-rpath /usr/lib/private -o cpp_helpers
cpp_helpers.o /usr/obj/usr/local/DEVEL/STREJDA/freebsd/lib/atf/libatf-c++/libatf-c+
+.so /usr/obj/usr/local/DEVEL/STREJDA/freebsd/lib/atf/libatf-c/libatf-c.so
#
I did a break into the debugger and this is the output:
KDB: enter: Break to debugger
[ thread pid 10 tid 100002 ]
Stopped at $d: ldrb r15, [r15, r15, ror r15]!
db> show all pcpu
Current CPU: 0
cpuid = 0
dynamic pcpu = 0x203fc0
curthread = 0xc6f8d9c0: pid 10 "idle: cpu0"
curpcb = 0xf2e62ea8
fpcurthread = 0xc74bc340: pid 528 "ntpd"
idlethread = 0xc6f8d9c0: tid 100002 "idle: cpu0"
spin locks held:
cpuid = 1
dynamic pcpu = 0x1f5f1fc0
curthread = 0xc6f8d680: pid 10 "idle: cpu1"
curpcb = 0xf2e65ea8
fpcurthread = 0xc7cb39c0: pid 72591 "top"
idlethread = 0xc6f8d680: tid 100003 "idle: cpu1"
spin locks held:
cpuid = 2
dynamic pcpu = 0x1f5f2fc0
--More--
curthread = 0xc6f8d340: pid 10 "idle: cpu2"
--More--
curpcb = 0xf2e68ea8
--More--
fpcurthread = 0xc7cb39c0: pid 72591 "top"
--More--
idlethread = 0xc6f8d340: tid 100004 "idle: cpu2"
--More--
spin locks held:
--More--
--More--
cpuid = 3
--More--
dynamic pcpu = 0x1f5f3fc0
--More--
curthread = 0xc80299c0: pid 92540 "make"
--More--
curpcb = 0xfb06bea8
--More--
fpcurthread = 0xc74bc340: pid 528 "ntpd"
--More--
idlethread = 0xc6f8d000: tid 100005 "idle: cpu3"
--More--
spin locks held:
--More--
--More--
##
db> where
Tracing pid 10 tid 100002 td 0xc6f8d9c0
db_trace_self() at db_trace_self
pc = 0xc23c63d4 lr = 0xc2038b34 (db_stack_trace+0xf4)
sp = 0xf2e629a8 fp = 0xf2e629c0
r10 = 0xc258784c
db_stack_trace() at db_stack_trace+0xf4
pc = 0xc2038b34 lr = 0xc20384a4 (db_command+0x270)
sp = 0xf2e629c8 fp = 0xf2e62a68
r4 = 0x00000000 r5 = 0x00000000
r6 = 0x00000072
db_command() at db_command+0x270
pc = 0xc20384a4 lr = 0xc2038208 (db_command_loop+0x60)
sp = 0xf2e62a70 fp = 0xf2e62a80
r4 = 0xc240c830 r5 = 0xc2424f13
r6 = 0xc2587838 r7 = 0xf2e62c50
r8 = 0x00000001 r9 = 0xc24cf8a8
r10 = 0xc2525774
db_command_loop() at db_command_loop+0x60
pc = 0xc2038208 lr = 0xc203ac7c (db_trap+0xd8)
sp = 0xf2e62a88 fp = 0xf2e62ba8
--More--
r4 = 0x00000000 r5 = 0xc2587844
--More--
r6 = 0xc2525798
--More--
db_trap() at db_trap+0xd8
--More--
pc = 0xc203ac7c lr = 0xc21a6158 (kdb_trap+0x15c)
--More--
sp = 0xf2e62bb0 fp = 0xf2e62bd0
--More--
r4 = 0x00000000 r5 = 0x00000001
--More--
r6 = 0xc2525798 r7 = 0xf2e62c50
--More--
kdb_trap() at kdb_trap+0x15c
--More--
pc = 0xc21a6158 lr = 0xc23deb08 (undefinedinstruction+0x2c4)
--More--
sp = 0xf2e62bd8 fp = 0xf2e62c48
--More--
r4 = 0x00000000 r5 = 0x00000000
--More--
r6 = 0xc23de794 r7 = 0xe7ffffff
--More--
r8 = 0xc6f8d9c0 r9 = 0xc21a5a80
--More--
r10 = 0xf2e62c50
--More--
undefinedinstruction() at undefinedinstruction+0x2c4
--More--
pc = 0xc23deb08 lr = 0xc23c81ac (exception_exit)
--More--
sp = 0xf2e62c50 fp = 0xf2e62cb0
--More--
r4 = 0xc707dc00 r5 = 0xc707dc88
--More--
r6 = 0x00000049 r7 = 0x00040000
--More--
r8 = 0x00000001 r9 = 0xc24d4b0c
--More--
r10 = 0xc707dc00
--More--
exception_exit() at exception_exit
--More--
pc = 0xc23c81ac lr = 0xc21a5a70 (kdb_alt_break_internal+0x174)
--More--
sp = 0xf2e62ca0 fp = 0xf2e62cb0
--More--
r0 = 0xc2525784 r1 = 0x00000000
--More--
r2 = 0x00000001 r3 = 0x60000193
--More--
r4 = 0xc707dc00 r5 = 0xc707dc88
--More--
r6 = 0x00000049 r7 = 0x00040000
--More--
r8 = 0x00000001 r9 = 0xc24d4b0c
--More--
r10 = 0xc707dc00 r12 = 0x000000c0
--More--
$a() at $a
--More--
pc = 0xc21a5a84 lr = 0xc21a58f4 (kdb_alt_break+0x10)
--More--
sp = 0xf2e62cb8 fp = 0xf2e62cb8
--More--
r4 = 0xc707dc00 r5 = 0xc707dc88
--More--
r6 = 0x00000049 r7 = 0x00040000
--More--
kdb_alt_break() at kdb_alt_break+0x10
--More--
pc = 0xc21a58f4 lr = 0xc206d558 (uart_intr_rxready+0x88)
--More--
sp = 0xf2e62cc0 fp = 0xf2e62cd8
--More--
uart_intr_rxready() at uart_intr_rxready+0x88
--More--
pc = 0xc206d558 lr = 0xc206e0d8 (uart_intr+0x11c)
--More--
sp = 0xf2e62ce0 fp = 0xf2e62d20
--More--
r4 = 0x00000000 r5 = 0xf2e62d68
--More--
r6 = 0xc707dd74
--More--
uart_intr() at uart_intr+0x11c
--More--
pc = 0xc206e0d8 lr = 0xc213baec (intr_event_handle+0x7c)
--More--
sp = 0xf2e62d28 fp = 0xf2e62d48
--More--
r4 = 0xc6e66d00 r5 = 0xf2e62d68
--More--
r6 = 0xc2591dcc r7 = 0xc6f8d9c0
--More--
r8 = 0x00000000 r9 = 0xc241ed30
--More--
r10 = 0xc7071b40
--More--
intr_event_handle() at intr_event_handle+0x7c
--More--
pc = 0xc213baec lr = 0xc23c9694 (arm_irq_handler+0x60)
--More--
sp = 0xf2e62d50 fp = 0xf2e62d60
--More--
r4 = 0xf2e62d68 r5 = 0x0000003a
--More--
r6 = 0xc2591dcc r7 = 0xc25861dc
--More--
r8 = 0xc6f8d9c0 r9 = 0xc2523a44
--More--
r10 = 0xc2523a40
--More--
arm_irq_handler() at arm_irq_handler+0x60
--More--
pc = 0xc23c9694 lr = 0xc23c81ac (exception_exit)
--More--
sp = 0xf2e62d68 fp = 0xf2e62dc0
--More--
r4 = 0xc6f8d9c0 r5 = 0xc2523a48
--More--
r6 = 0x00000002 r7 = 0xc2523a56
--More--
exception_exit() at exception_exit
--More--
pc = 0xc23c81ac lr = 0xc23c9dd0 (cpu_idle+0x8c)
--More--
sp = 0xf2e62db8 fp = 0xf2e62dc0
--More--
r0 = 0x00000000 r1 = 0x000000c0
--More--
r2 = 0x600000d3 r3 = 0x60000013
--More--
r4 = 0xc6f8d9c0 r5 = 0xc2523a48
--More--
r6 = 0x00000002 r7 = 0xc2523a56
--More--
r8 = 0xc6f8d9c0 r9 = 0xc2523a44
--More--
r10 = 0xc2523a40 r12 = 0x000000c0
--More--
cpu_idle() at cpu_idle+0xb8
--More--
pc = 0xc23c9dfc lr = 0xc2194dd0 (sched_idletd+0x3c8)
--More--
sp = 0xf2e62dc8 fp = 0xf2e62e30
--More--
r4 = 0xc2523a54
--More--
sched_idletd() at sched_idletd+0x3c8
--More--
pc = 0xc2194dd0 lr = 0xc2139270 (fork_exit+0xa0)
--More--
sp = 0xf2e62e38 fp = 0xf2e62e50
--More--
r4 = 0xc6f8d9c0 r5 = 0xc6f8a320
--More--
r6 = 0xc2194a08 r7 = 0x00000000
--More--
r8 = 0xf2e62e58 r9 = 0x00000000
--More--
r10 = 0x00000000
--More--
fork_exit() at fork_exit+0xa0
--More--
pc = 0xc2139270 lr = 0xc23c8144 (swi_exit)
--More--
sp = 0xf2e62e58 fp = 0x00000000
--More--
r4 = 0xc2194a08 r5 = 0x00000000
--More--
r6 = 0x00000000 r7 = 0x00000000
--More--
r8 = 0x00000000
--More--
swi_exit() at swi_exit
--More--
pc = 0xc23c8144 lr = 0xc23c8144 (swi_exit)
--More--
sp = 0xf2e62e58 fp = 0x00000000
--More--
db>
##
db> ps
pid ppid pgrp uid state wmesg wchan cmd
72591 846 72591 0 S+ select 0xc7dc9e24 top
54936 54928 54928 0 S+ ttydcd 0xc707da90 ex
54928 54845 54928 0 S+ wait 0xc7d02c80 sh
54845 92681 92681 0 S+ select 0xc742aae4 make
92681 92591 92681 0 S+ wait 0xc8002320 sh
92591 92577 92577 0 S+ select 0xc73c69e4 make
92577 92540 92577 0 S+ wait 0xc7569960 sh
92540 92539 92539 0 R+ CPU 3 make
92539 622 92539 0 S+ wait 0xc8002000 sh
846 840 846 0 S+ pause 0xc7569068 csh
840 833 840 1001 S+ wait 0xc7a63c80 su
833 832 833 1001 Ss+ pause 0xc7a639c8 csh
832 787 787 1001 S select 0xc7387924 sshd
787 558 787 0 Ss select 0xc713e9e4 sshd
622 621 621 0 S+ select 0xc70749e4 make
621 616 621 0 S+ wait 0xc74b1320 sh
616 608 616 0 S+ select 0xc742c764 make
608 607 608 0 S+ pause 0xc734c6a8 csh
607 1 607 0 Ss+ wait 0xc74b2960 login
--More--
562 1 562 0 Ss nanslp 0xc25177f1 cron
--More--
558 1 558 0 Ss select 0xc7387624 sshd
--More--
528 1 528 0 Ss select 0xc7387764 ntpd
--More--
455 1 455 0 Ss select 0xc7387d24 casperd
--More--
454 1 454 0 Ss select 0xc713eaa4 casperd
--More--
422 1 422 0 Ss select 0xc73c6324 syslogd
--More--
275 1 275 0 Ss select 0xc73c5ee4 devd
--More--
16 0 0 0 DL syncer 0xc2582b0c [syncer]
--More--
15 0 0 0 DL vlruwt 0xc734bc80 [vnlru]
--More--
9 0 0 0 DL (threaded) [bufdaemon]
--More--
100046 D psleep 0xc2582890 [bufdaemon]
--More--
100055 D sdflush 0xc7343a84 [/ worker]
--More--
8 0 0 0 DL pgzero 0xc25859bc [pagezero]
--More--
7 0 0 0 DL psleep 0xc258584c [vmdaemon]
--More--
6 0 0 0 DL psleep 0xc258c9c4 [pagedaemon]
--More--
5 0 0 0 DL jobqueue 0xc7151f00 [mmcsd1: mmc/sd card]
--More--
4 0 0 0 DL jobqueue 0xc7031b80 [mmcsd0: mmc/sd card]
--More--
3 0 0 0 DL waiting_ 0xc2589d0c [sctp_iterator]
--More--
14 0 0 0 DL (threaded) [usb]
--More--
100026 D - 0xc706aca4 [usbus0]
--More--
100027 D - 0xc706acd4 [usbus0]
--More--
100028 D - 0xc706ad04 [usbus0]
--More--
100029 D - 0xc706ad34 [usbus0]
--More--
100031 D - 0xc7145ca4 [usbus1]
--More--
100032 D - 0xc7145cd4 [usbus1]
--More--
100033 D - 0xc7145d04 [usbus1]
--More--
100034 D - 0xc7145d34 [usbus1]
--More--
2 0 0 0 DL (threaded) [cam]
--More--
100021 D - 0xc25060c0 [doneq0]
--More--
100040 D - 0xc25062a8 [scanner]
--More--
13 0 0 0 DL - 0xc2513120 [rand_harvestq]
--More--
12 0 0 0 DL (threaded) [geom]
--More--
100012 D - 0xc2588464 [g_event]
--More--
100013 D - 0xc2588468 [g_up]
--More--
100014 D - 0xc258846c [g_down]
--More--
11 0 0 0 WL (threaded) [intr]
--More--
100006 I [swi3: vm]
--More--
100007 I [swi1: netisr 0]
--More--
100008 I [swi4: clock (0)]
--More--
100009 I [swi4: clock (1)]
--More--
100010 I [swi4: clock (2)]
--More--
100011 I [swi4: clock (3)]
--More--
100016 I [swi6: Giant taskq]
--More--
100018 I [swi5: fast taskq]
--More--
100022 I [swi6: task queue]
--More--
100023 I [swi0: uart]
--More--
100024 I [intr150: ffec0]
--More--
100025 I [intr75: ehci0]
--More--
100030 I [intr72: ehci1]
--More--
100035 I [intr54: sdhci_imx0]
--More--
100036 I [intr56: sdhci_imx1]
--More--
10 0 0 0 RL (threaded) [idle]
--More--
100002 Run CPU 0 [idle: cpu0]
--More--
100003 Run CPU 1 [idle: cpu1]
--More--
100004 Run CPU 2 [idle: cpu2]
--More--
100005 CanRun [idle: cpu3]
--More--
1 0 1 0 SLs wait 0xc6f8a640 [init]
--More--
0 0 0 0 DLs (threaded) [kernel]
--More--
100000 D swapin 0xc2588488 [swapper]
--More--
100017 D - 0xc7031380 [thread taskq]
--More--
100019 D - 0xc7031280 [ffs_trim taskq]
--More--
100020 D - 0xc7031200 [kqueue taskq]
--More--
100037 D - 0xc25166d1 [deadlkres]
--More--
100039 D - 0xc7031180 [CAM taskq]
--More--
db>
pid ppid pgrp uid state wmesg wchan cmd
72591 846 72591 0 S+ select 0xc7dc9e24 top
54936 54928 54928 0 S+ ttydcd 0xc707da90 ex
54928 54845 54928 0 S+ wait 0xc7d02c80 sh
54845 92681 92681 0 S+ select 0xc742aae4 make
92681 92591 92681 0 S+ wait 0xc8002320 sh
92591 92577 92577 0 S+ select 0xc73c69e4 make
92577 92540 92577 0 S+ wait 0xc7569960 sh
92540 92539 92539 0 R+ CPU 3 make
92539 622 92539 0 S+ wait 0xc8002000 sh
846 840 846 0 S+ pause 0xc7569068 csh
840 833 840 1001 S+ wait 0xc7a63c80 su
833 832 833 1001 Ss+ pause 0xc7a639c8 csh
832 787 787 1001 S select 0xc7387924 sshd
787 558 787 0 Ss select 0xc713e9e4 sshd
622 621 621 0 S+ select 0xc70749e4 make
621 616 621 0 S+ wait 0xc74b1320 sh
616 608 616 0 S+ select 0xc742c764 make
608 607 608 0 S+ pause 0xc734c6a8 csh
607 1 607 0 Ss+ wait 0xc74b2960 login
--More--
562 1 562 0 Ss nanslp 0xc25177f1 cron
--More--
558 1 558 0 Ss select 0xc7387624 sshd
--More--
528 1 528 0 Ss select 0xc7387764 ntpd
--More--
455 1 455 0 Ss select 0xc7387d24 casperd
--More--
454 1 454 0 Ss select 0xc713eaa4 casperd
--More--
422 1 422 0 Ss select 0xc73c6324 syslogd
--More--
275 1 275 0 Ss select 0xc73c5ee4 devd
--More--
16 0 0 0 DL syncer 0xc2582b0c [syncer]
--More--
15 0 0 0 DL vlruwt 0xc734bc80 [vnlru]
--More--
9 0 0 0 DL (threaded) [bufdaemon]
--More--
100046 D psleep 0xc2582890 [bufdaemon]
--More--
100055 D sdflush 0xc7343a84 [/ worker]
--More--
8 0 0 0 DL pgzero 0xc25859bc [pagezero]
--More--
7 0 0 0 DL psleep 0xc258584c [vmdaemon]
--More--
6 0 0 0 DL psleep 0xc258c9c4 [pagedaemon]
--More--
5 0 0 0 DL jobqueue 0xc7151f00 [mmcsd1: mmc/sd card]
--More--
4 0 0 0 DL jobqueue 0xc7031b80 [mmcsd0: mmc/sd card]
--More--
3 0 0 0 DL waiting_ 0xc2589d0c [sctp_iterator]
--More--
14 0 0 0 DL (threaded) [usb]
--More--
100026 D - 0xc706aca4 [usbus0]
--More--
100027 D - 0xc706acd4 [usbus0]
--More--
100028 D - 0xc706ad04 [usbus0]
--More--
100029 D - 0xc706ad34 [usbus0]
--More--
100031 D - 0xc7145ca4 [usbus1]
--More--
100032 D - 0xc7145cd4 [usbus1]
--More--
100033 D - 0xc7145d04 [usbus1]
--More--
100034 D - 0xc7145d34 [usbus1]
--More--
2 0 0 0 DL (threaded) [cam]
--More--
100021 D - 0xc25060c0 [doneq0]
--More--
100040 D - 0xc25062a8 [scanner]
--More--
13 0 0 0 DL - 0xc2513120 [rand_harvestq]
--More--
12 0 0 0 DL (threaded) [geom]
--More--
100012 D - 0xc2588464 [g_event]
--More--
100013 D - 0xc2588468 [g_up]
--More--
100014 D - 0xc258846c [g_down]
--More--
11 0 0 0 WL (threaded) [intr]
--More--
100006 I [swi3: vm]
--More--
100007 I [swi1: netisr 0]
--More--
100008 I [swi4: clock (0)]
--More--
100009 I [swi4: clock (1)]
--More--
100010 I [swi4: clock (2)]
--More--
100011 I [swi4: clock (3)]
--More--
100016 I [swi6: Giant taskq]
--More--
100018 I [swi5: fast taskq]
--More--
100022 I [swi6: task queue]
--More--
100023 I [swi0: uart]
--More--
100024 I [intr150: ffec0]
--More--
100025 I [intr75: ehci0]
--More--
100030 I [intr72: ehci1]
--More--
100035 I [intr54: sdhci_imx0]
--More--
100036 I [intr56: sdhci_imx1]
--More--
10 0 0 0 RL (threaded) [idle]
--More--
100002 Run CPU 0 [idle: cpu0]
--More--
100003 Run CPU 1 [idle: cpu1]
--More--
100004 Run CPU 2 [idle: cpu2]
--More--
100005 CanRun [idle: cpu3]
--More--
1 0 1 0 SLs wait 0xc6f8a640 [init]
--More--
0 0 0 0 DLs (threaded) [kernel]
--More--
100000 D swapin 0xc2588488 [swapper]
--More--
100017 D - 0xc7031380 [thread taskq]
--More--
100019 D - 0xc7031280 [ffs_trim taskq]
--More--
100020 D - 0xc7031200 [kqueue taskq]
--More--
100037 D - 0xc25166d1 [deadlkres]
--More--
100039 D - 0xc7031180 [CAM taskq]
--More--
db>
##
--
Ulrich
----------------------------------
On Mon, 24 Nov 2014 07:53:34 -0700
Ian Lepore <ian at FreeBSD.org> wrote:
> On Mon, 2014-11-24 at 13:27 +0100, Ulrich Grey wrote:
> > Hello,
> >
> > as a starting point I have build an image (crochet, wandboard-quad) with
> > the source tree from here (751adfd(master)):
> >
> > https://github.com/strejda/freebsd
> >
> > Then I build the kernel with new pmap and rebuild the whole systen.
> > The system I used for the test run is entirely build on the
> > wandboard-quad.
> > [...]
>
> I've also been testing those pmap changes this weekend. The only change
> I made was to add options ARM_NEW_PMAP and NKPT2PG=64 to the kernel
> config. In particular, I did not change VM_MEMATTR_UNCACHEABLE (so that
> in effect I'm also testing the recent busdma changes).
>
> I've had two wandboard quads doing builds continuously all weekend. I
> did the builds that have previously been reported as problems here --
> buildworld -j10, ports libX11, plus a lot of other ports including much
> of the full xorg (until it ran into some x86 device drivers and died),
> some of libreoffice (it had a problem that wasn't related to crashing or
> anything), python, bash, emacs, boost, rsync.
>
> After all that I just set both boards to continuously doing "rm
> -rf /usr/obj/* ; make -j5 buildworld" in a loop, and they're still
> running. One is using an SSD drive and the other is using NFS.
>
> In all that building all weekend the only glitches I've seen are this:
>
> warning: pmap_remove_pages called with non-current pmap
>
> that appeared twice on the board using NFS root.
>
> For anyone else wanting to test, there is currently one conflict when
> applying the patches, in busdma_machdep-v6.c, because some of the
> changes in the patch have already been applied. Just resolve the
> conflict by skipping that file / restoring the original unpatched file.
>
> This stuff is looking really good. It wouldn't hurt at all if some more
> people were testing it, especially on other hardware including rpi and
> beaglebone.
>
> -- Ian
>
>
More information about the freebsd-arm
mailing list