head 1.1; access; symbols perseant-exfatfs-base-20250801:1.1 perseant-exfatfs-base-20240630:1.1 perseant-exfatfs:1.1.0.142 perseant-exfatfs-base:1.1 bouyer-sunxi-drm:1.1.0.140 bouyer-sunxi-drm-base:1.1 cjep_sun2x:1.1.0.138 cjep_sun2x-base:1.1 cjep_staticlib_x-base1:1.1 cjep_staticlib_x:1.1.0.136 cjep_staticlib_x-base:1.1 thorpej-futex-base:1.1 bouyer-xenpvh-base2:1.1 phil-wifi-20200421:1.1 bouyer-xenpvh-base1:1.1 phil-wifi-20200411:1.1 bouyer-xenpvh:1.1.0.134 bouyer-xenpvh-base:1.1 phil-wifi-20200406:1.1 ad-namecache-base3:1.1 ad-namecache-base2:1.1 ad-namecache-base1:1.1 ad-namecache:1.1.0.132 ad-namecache-base:1.1 isaki-audio2:1.1.0.130 isaki-audio2-base:1.1 pgoyette-compat-merge-20190127:1.1 pgoyette-compat-20190127:1.1 pgoyette-compat-20190118:1.1 pgoyette-compat-1226:1.1 pgoyette-compat-1126:1.1 pgoyette-compat-1020:1.1 pgoyette-compat-0930:1.1 pgoyette-compat-0906:1.1 pgoyette-compat-0728:1.1 pgoyette-compat-0625:1.1 pgoyette-compat-0521:1.1 pgoyette-compat-0502:1.1 pgoyette-compat-0422:1.1 pgoyette-compat-0415:1.1 pgoyette-compat-0407:1.1 pgoyette-compat-0330:1.1 pgoyette-compat-0322:1.1 pgoyette-compat-0315:1.1 pgoyette-compat:1.1.0.10 pgoyette-compat-base:1.1 perseant-stdc-iso10646:1.1.0.128 perseant-stdc-iso10646-base:1.1 prg-localcount2-base3:1.1 prg-localcount2-base2:1.1 prg-localcount2-base1:1.1 prg-localcount2:1.1.0.126 prg-localcount2-base:1.1 pgoyette-localcount-20170426:1.1 bouyer-socketcan-base1:1.1 pgoyette-localcount-20170320:1.1 bouyer-socketcan:1.1.0.124 bouyer-socketcan-base:1.1 pgoyette-localcount-20170107:1.1 pgoyette-localcount-20161104:1.1 localcount-20160914:1.1 pgoyette-localcount-20160806:1.1 pgoyette-localcount-20160726:1.1 pgoyette-localcount:1.1.0.122 pgoyette-localcount-base:1.1 netbsd-5-2-3-RELEASE:1.1 netbsd-5-1-5-RELEASE:1.1 yamt-pagecache-base9:1.1 yamt-pagecache-tag8:1.1 tls-earlyentropy:1.1.0.120 tls-earlyentropy-base:1.1 riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.1 riastradh-drm2-base3:1.1 netbsd-5-2-2-RELEASE:1.1 netbsd-5-1-4-RELEASE:1.1 netbsd-5-2-1-RELEASE:1.1 netbsd-5-1-3-RELEASE:1.1 rmind-smpnet-nbase:1.1 rmind-smpnet:1.1.0.116 rmind-smpnet-base:1.1 agc-symver:1.1.0.118 agc-symver-base:1.1 tls-maxphys-base:1.1 yamt-pagecache-base8:1.1 netbsd-5-2:1.1.0.114 yamt-pagecache-base7:1.1 netbsd-5-2-RELEASE:1.1 netbsd-5-2-RC1:1.1 yamt-pagecache-base6:1.1 yamt-pagecache-base5:1.1 yamt-pagecache-base4:1.1 netbsd-5-1-2-RELEASE:1.1 netbsd-5-1-1-RELEASE:1.1 jmcneill-usbmp:1.1.0.112 jmcneill-usbmp-base:1.1 jmcneill-audiomp3:1.1.0.110 jmcneill-audiomp3-base:1.1 yamt-pagecache-base3:1.1 yamt-pagecache-base2:1.1 yamt-pagecache:1.1.0.108 yamt-pagecache-base:1.1 rmind-uvmplock-nbase:1.1 jym-xensuspend-nbase:1.1 bouyer-quota2-nbase:1.1 bouyer-quota2:1.1.0.106 bouyer-quota2-base:1.1 jruoho-x86intr:1.1.0.104 jruoho-x86intr-base:1.1 matt-nb5-pq3:1.1.0.102 matt-nb5-pq3-base:1.1 netbsd-5-1:1.1.0.100 netbsd-5-1-RELEASE:1.1 yamt-nfs-mp-base11:1.1 netbsd-5-1-RC4:1.1 uebayasi-xip-base2:1.1 yamt-nfs-mp-base10:1.1 netbsd-5-1-RC3:1.1 netbsd-5-1-RC2:1.1 netbsd-5-1-RC1:1.1 rmind-uvmplock:1.1.0.98 rmind-uvmplock-base:1.1 yamt-nfs-mp-base9:1.1 uebayasi-xip:1.1.0.96 uebayasi-xip-base:1.1 netbsd-5-0-2-RELEASE:1.1 yamt-nfs-mp-base8:1.1 yamt-nfs-mp-base7:1.1 netbsd-5-0-1-RELEASE:1.1 jymxensuspend-base:1.1 yamt-nfs-mp-base6:1.1 yamt-nfs-mp-base5:1.1 yamt-nfs-mp-base4:1.1 yamt-nfs-mp-base3:1.1 netbsd-5-0:1.1.0.94 netbsd-5-0-RELEASE:1.1 netbsd-5-0-RC4:1.1 netbsd-5-0-RC3:1.1 netbsd-5-0-RC2:1.1 jym-xensuspend:1.1.0.92 jym-xensuspend-base:1.1 netbsd-5-0-RC1:1.1 haad-dm-base2:1.1 haad-nbase2:1.1 ad-audiomp2:1.1.0.90 ad-audiomp2-base:1.1 netbsd-5:1.1.0.88 netbsd-5-base:1.1 haad-dm-base1:1.1 haad-dm:1.1.0.86 haad-dm-base:1.1 simonb-wapbl-nbase:1.1 yamt-pf42-base4:1.1 simonb-wapbl:1.1.0.84 simonb-wapbl-base:1.1 yamt-pf42-base3:1.1 hpcarm-cleanup-nbase:1.1 yamt-pf42-base2:1.1 yamt-nfs-mp-base2:1.1 yamt-nfs-mp:1.1.0.82 yamt-nfs-mp-base:1.1 yamt-pf42:1.1.0.80 yamt-pf42-base:1.1 ad-socklock-base1:1.1 yamt-lazymbuf-base15:1.1 yamt-lazymbuf-base14:1.1 keiichi-mipv6-nbase:1.1 mjf-devfs2:1.1.0.78 mjf-devfs2-base:1.1 keiichi-mipv6:1.1.0.76 keiichi-mipv6-base:1.1 bouyer-xeni386-merge1:1.1 vmlocking2-base3:1.1 bouyer-xeni386-nbase:1.1 yamt-kmem-base3:1.1 cube-autoconf:1.1.0.74 cube-autoconf-base:1.1 yamt-kmem-base2:1.1 bouyer-xeni386:1.1.0.72 bouyer-xeni386-base:1.1 yamt-kmem:1.1.0.70 yamt-kmem-base:1.1 vmlocking2-base2:1.1 reinoud-bufcleanup-nbase:1.1 vmlocking2:1.1.0.68 vmlocking2-base1:1.1 jmcneill-base:1.1 mjf-devfs:1.1.0.66 mjf-devfs-base:1.1 bouyer-xenamd64-base2:1.1 vmlocking-nbase:1.1 yamt-x86pmap-base4:1.1 bouyer-xenamd64:1.1.0.64 bouyer-xenamd64-base:1.1 yamt-x86pmap-base3:1.1 yamt-x86pmap-base2:1.1 yamt-x86pmap:1.1.0.62 yamt-x86pmap-base:1.1 jmcneill-pm:1.1.0.60 jmcneill-pm-base:1.1 hpcarm-cleanup:1.1.0.58 hpcarm-cleanup-base:1.1 mjf-ufs-trans-base:1.1 yamt-idlelwp-base8:1.1 ppcoea-renovation:1.1.0.56 ppcoea-renovation-base:1.1 reinoud-bufcleanup-base:1.1 vmlocking:1.1.0.54 vmlocking-base:1.1 ad-audiomp:1.1.0.52 ad-audiomp-base:1.1 yamt-idlelwp:1.1.0.50 post-newlock2-merge:1.1 newlock2-nbase:1.1 yamt-splraiseipl-base5:1.1 yamt-splraiseipl-base4:1.1 yamt-splraiseipl-base3:1.1 yamt-splraiseipl-base2:1.1 yamt-splraiseipl:1.1.0.48 yamt-splraiseipl-base:1.1 newlock2:1.1.0.46 newlock2-base:1.1 yamt-pdpolicy-base8:1.1 yamt-pdpolicy-base7:1.1 yamt-pdpolicy-base6:1.1 gdamore-uart:1.1.0.44 gdamore-uart-base:1.1 simonb-timcounters-final:1.1 yamt-pdpolicy-base5:1.1 elad-kernelauth-nbase:1.1 yamt-pdpolicy-base4:1.1 yamt-pdpolicy-base3:1.1 yamt-pdpolicy-base2:1.1 yamt-pdpolicy:1.1.0.42 yamt-pdpolicy-base:1.1 yamt-uio_vmspace-base5:1.1 simonb-timecounters:1.1.0.40 simonb-timecounters-base:1.1 rpaulo-netinet-merge-pcb:1.1.0.38 rpaulo-netinet-merge-pcb-base:1.1 yamt-uio_vmspace:1.1.0.36 yamt-readahead-base3:1.1 yamt-readahead-base2:1.1 yamt-readahead:1.1.0.34 yamt-readahead-base:1.1 yamt-vop-base3:1.1 yamt-vop-base2:1.1 thorpej-vnode-attr:1.1.0.32 thorpej-vnode-attr-base:1.1 yamt-vop:1.1.0.30 yamt-vop-base:1.1 yamt-lazymbuf:1.1.0.28 yamt-km-base4:1.1 yamt-km-base3:1.1 yamt-km-base2:1.1 yamt-km:1.1.0.26 yamt-km-base:1.1 kent-audio2:1.1.0.24 kent-audio2-base:1.1 ktrace-lwp:1.1.0.22 ktrace-lwp-base:1.1 nathanw_sa_before_merge:1.1 gmcgarry_ctxsw:1.1.0.20 gmcgarry_ctxsw_base:1.1 gmcgarry_ucred:1.1.0.18 gmcgarry_ucred_base:1.1 nathanw_sa_base:1.1 i386mp_plus16_stable:1.1.2.9 gehenna-devsw:1.1.0.16 gehenna-devsw-base:1.1 eeh-devprop:1.1.0.14 eeh-devprop-base:1.1 newlock:1.1.0.12 newlock-base:1.1 ifpoll-base:1.1 thorpej-mips-cache:1.1.0.8 thorpej-mips-cache-base:1.1 thorpej-devvp:1.1.0.6 thorpej-devvp-base:1.1 kqueue:1.1.0.4 kqueue-base:1.1 sommerfeld_i386mpbase_1:1.1 thorpej_scsipi_beforemerge:1.1 sommerfeld_i386mpnext:1.1 thorpej_scsipi_nbase:1.1 thorpej_scsipi_base:1.1 sommerfeld_i386mp_1:1.1.0.2; locks; strict; comment @# @; 1.1 date 2001.01.09.01.31.58; author sommerfeld; state dead; branches 1.1.2.1; next ; 1.1.2.1 date 2001.01.09.01.31.58; author sommerfeld; state Exp; branches; next 1.1.2.2; 1.1.2.2 date 2001.01.09.01.36.06; author sommerfeld; state Exp; branches; next 1.1.2.3; 1.1.2.3 date 2001.01.09.03.34.01; author sommerfeld; state Exp; branches; next 1.1.2.4; 1.1.2.4 date 2001.01.10.04.38.31; author sommerfeld; state Exp; branches; next 1.1.2.5; 1.1.2.5 date 2001.04.21.19.03.20; author thorpej; state Exp; branches; next 1.1.2.6; 1.1.2.6 date 2001.05.27.00.16.14; author sommerfeld; state Exp; branches; next 1.1.2.7; 1.1.2.7 date 2001.07.02.13.39.10; author fvdl; state Exp; branches; next 1.1.2.8; 1.1.2.8 date 2002.01.30.14.55.05; author sommerfeld; state Exp; branches; next 1.1.2.9; 1.1.2.9 date 2002.05.19.01.02.01; author sommerfeld; state Exp; branches; next ; desc @@ 1.1 log @file MP-TODO was initially added on branch sommerfeld_i386mp_1. @ text @@ 1.1.2.1 log @current worklist, from memory. @ text @a0 28 TODO list for MP branch (incomplete): showstoppers for merge back to -current: - rewrite interrupt dispatch so that multi-level shared interrupts are no longer broken. - Figure out why things are broken on !MULTIPROCESSOR - Sort out cpu feature probes [runs on new cpu], identify_cpu() [runs on BSP] and cpu initialization [runs on new cpu]; finish banishing most global variables containing cpu configuration information. - careful code review of all diffs from -current "would be nice": - try out mpbios+ioapic w/o MULTIPROCESSOR - implement MI softint API - figure out why cpu time accounting screws up bigtime: > ld -Ttext c0100000 -e start -X -o netbsd ${SYSTEM_OBJ} vers.o > text data bss dec hex filename > 3839853 369428 322400 4531681 4525e1 netbsd > -1787494046.7u 681459032.2s 7:26.71 2421928.1% 0+0k 17+11379io 99pf+0w @ 1.1.2.2 log @One more @ text @a13 2 - figure out why ahc on serverworks fails to find its interrupt. @ 1.1.2.3 log @Non-MULTIPROCESSOR kernel now boots multiuser. Add a few items. @ text @d6 1 a6 1 are no longer broken. d8 5 a12 6 - Sort out: - cpu feature probes [runs on new cpu] - identify_cpu() output [runs on BSP] - cpu initialization [runs on new cpu]; finish banishing most global variables containing cpu configuration information to struct cpu_info a17 2 - test and fix npx on i386 (npx exceptions through ISA interrupts). a19 2 - stop all cpu's on shutdown. a30 9 ----- DONE: - Figure out why things are broken on !MULTIPROCESSOR [2001/01/08 22:29:56 sommerfeld] fixed three bugs; !MP kernel now comes up multiuser. @ 1.1.2.4 log @Significant rewrite of slave CPU attach and initialization, centering on identifycpu() and spreading outward. Separate feature probes (cpuid invocation), which runs on the cpu being attached, from the display of this information, which runs on the boot cpu; remove some of the probe code from locore as it doesn't need to run that early. We now spin up secondary cpu's during cpu_attach, have them do a cpu feature probe, and then have them spin waiting for a "go" signal. We no longer pay attention to the cpu signature and cpuid features reported by the MP BIOS since those are known to be truncated for at least some bioses. We now do npx initialization (including FDIV bug detection) on all cpus. XXX Change some of the cyrix bug workarounds to fit the new identifycpu() system; this is untested. @ text @d8 7 a22 8 - use atomic ops to modify ci_flags and cpu_feature to avoid losing bits. - verify that cyrix 486 isn't blown out of the water by machdep changes. - verify that cyrix clock chip bug fix isn't broken. - make sure BSP always attaches first! d44 1 a44 8 - Sort out: - cpu feature probes [runs on new cpu] - identify_cpu() output [runs on BSP] - cpu initialization [runs on new cpu]; finish banishing most global variables containing cpu configuration information to struct cpu_info [2001/01/09 22:27:38 sommerfeld] completed. significant rewrite of cpu spinup required. @ 1.1.2.5 log @MI softintr API is now a show-stopper for -current; the trunk now has it, and the performance of the USB code relies on it. @ text @a7 2 - implement MI softint API d27 2 @ 1.1.2.6 log @Check off a few things, add a few more. @ text @a4 14 - change splraise/spllower to not touch local apic, since that's very slow (requires cheap per-cpu storage). - per-cpu GDT and MP-safing of gdt.c. this seems like severe overkill so just one descriptor is different. While we're in there, we *might* want to use per-cpu, more ephemeral, descriptors for TSS and LDT. - quad cpu ppro sporadically jumps into the stack; need to diagnose this. - implement per cpu ring buffer with trap logs (including the "last branch from/to" MSR contents) to allow for sane debugging. d8 2 d26 2 d30 6 a35 2 - turn off rdtsc-based microtime on uniprocessor systems which might have variable-speed TSC. a52 17 - stop all cpu's on shutdown. - implement MI softint API - implement MP-safe microtime - figure out why cpu time accounting screws up bigtime: > ld -Ttext c0100000 -e start -X -o netbsd ${SYSTEM_OBJ} vers.o > text data bss dec hex filename > 3839853 369428 322400 4531681 4525e1 netbsd > -1787494046.7u 681459032.2s 7:26.71 2421928.1% 0+0k 17+11379io 99pf+0w [2001/05/26 20:03:41 sommerfeld] answer: microtime was just doing the wrong thing. fixed. @ 1.1.2.7 log @Delete one item: npx at isa using irq 13 works on a plain i386. @ text @d26 2 @ 1.1.2.8 log @update @ text @d8 5 a25 4 - try to render APM *harmless* (and functional in uniprocessor configurations). it can't possibly work correctly when multiple cpu's are running, but.. a40 6 - investigate using per-cpu, more ephemeral, descriptors for TSS and LDT. - make halt -p work in MULTIPROCESSOR config (the one APM feature everyone wants) a72 6 [2002/01/30 09:52:17 sommerfeld] done a while ago: - per-cpu GDT and MP-safing of gdt.c. this seems like severe overkill so just one descriptor is different. @ 1.1.2.9 log @oh, hey, i've done some of this stuff. @ text @d8 6 d17 2 d21 3 a23 1 - make sure APM isn't rendered non-functional on uniprocessors d43 3 a84 20 [2002/05/18 20:57:28 sommerfeld] - figure out why ahc on serverworks fails to find its interrupt. answer: pci interrupt routing needs to be done using unswizzled pins, not just unswizzled devices. also done recently: - quad cpu ppro sporadically jumps into the stack; need to diagnose this. - implement per cpu ring buffer with trap logs (including the "last branch from/to" MSR contents) to allow for sane debugging. - make halt -p work in MULTIPROCESSOR config (the one APM feature everyone wants) - try to render APM *harmless* in MP configs. it can't possibly work correctly when multiple cpu's are running, but.. @