From owner-cvs-src-old@FreeBSD.ORG Tue Jun 7 12:46:21 2011 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 024B5106566B for ; Tue, 7 Jun 2011 12:46:21 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E10AE8FC1F for ; Tue, 7 Jun 2011 12:46:20 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.4/8.14.4) with ESMTP id p57CkKYC063024 for ; Tue, 7 Jun 2011 12:46:20 GMT (envelope-from attilio@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.4/8.14.4/Submit) id p57CkKHE063023 for cvs-src-old@freebsd.org; Tue, 7 Jun 2011 12:46:20 GMT (envelope-from attilio@repoman.freebsd.org) Message-Id: <201106071246.p57CkKHE063023@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to attilio@repoman.freebsd.org using -f From: Attilio Rao Date: Tue, 7 Jun 2011 08:46:13 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src UPDATING src/gnu/usr.bin/gdb/kgdb kthr.c src/lib/libkvm kvm_pcpu.c src/lib/libmemstat memstat_uma.c src/share/man/man4 geom_map.4 src/sys/amd64/acpica acpi_wakeup.c src/sys/amd64/amd64 intr_machdep.c mp_machdep.c pmap.c ... X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jun 2011 12:46:21 -0000 attilio 2011-06-07 08:46:13 UTC FreeBSD src repository Modified files: . UPDATING gnu/usr.bin/gdb/kgdb kthr.c lib/libkvm kvm_pcpu.c lib/libmemstat memstat_uma.c share/man/man4 geom_map.4 sys/amd64/acpica acpi_wakeup.c sys/amd64/amd64 intr_machdep.c mp_machdep.c pmap.c vm_machdep.c sys/amd64/include _types.h pmap.h smp.h sys/arm/arm pmap.c sys/arm/include _types.h pmap.h sys/cddl/dev/cyclic/i386 cyclic_machdep.c sys/cddl/dev/dtrace/amd64 dtrace_subr.c sys/cddl/dev/dtrace/i386 dtrace_subr.c sys/conf NOTES sys/dev/hwpmc hwpmc_mod.c sys/dev/iicbus ad7417.c sys/dev/xen/control control.c sys/geom/eli g_eli.c sys/i386/i386 intr_machdep.c mp_machdep.c pmap.c vm_machdep.c sys/i386/include _types.h pmap.h sf_buf.h smp.h sys/i386/xen mp_machdep.c pmap.c sys/ia64/ia64 mp_machdep.c sys/ia64/include _types.h smp.h sys/kern kern_cpuset.c kern_ktr.c kern_pmc.c kern_rmlock.c sched_4bsd.c sched_ule.c subr_kdb.c subr_pcpu.c subr_smp.c sys/mips/cavium octeon_mp.c sys/mips/include _types.h hwfunc.h pmap.h smp.h sys/mips/mips mp_machdep.c pmap.c sys/mips/rmi xlr_machdep.c sys/mips/sibyte sb_scd.c sys/nfs nfs_kdtrace.h sys/ofed/include/linux list.h sys/powerpc/aim mmu_oea.c mmu_oea64.c sys/powerpc/booke platform_bare.c pmap.c sys/powerpc/include _types.h openpicvar.h pmap.h smp.h sys/powerpc/mpc85xx openpic_fdt.c sys/powerpc/powerpc intr_machdep.c mp_machdep.c openpic.c pic_if.m sys/sparc64/include _types.h ktr.h pmap.h smp.h sys/sparc64/sparc64 genassym.c intr_machdep.c mp_exception.S mp_machdep.c pmap.c swtch.S tlb.c sys/sys _rmlock.h _stdint.h cpuset.h ktr.h pcpu.h pmckern.h smp.h types.h sys/x86/x86 local_apic.c tools/build/options WITHOUT_GPIO WITH_OFED tools/regression/bin/sh/builtins set1.0 tools/regression/bin/sh/parser dollar-quote1.0 dollar-quote2.0 dollar-quote3.0 dollar-quote4.0 dollar-quote5.0 dollar-quote6.0 dollar-quote7.0 dollar-quote8.0 dollar-quote9.0 usr.sbin/pmccontrol pmccontrol.c Added files: sys/sys _cpuset.h Log: SVN rev 222813 on 2011-06-07 08:46:13Z by attilio etire the cpumask_t type and replace it with cpuset_t usage. This is intended to fix the bug where cpu mask objects are capped to 32. MAXCPU, then, can now arbitrarely bumped to whatever value. Anyway, as long as several structures in the kernel are statically allocated and sized as MAXCPU, it is suggested to keep it as low as possible for the time being. Technical notes on this commit itself: - More functions to handle with cpuset_t objects are introduced. The most notable are cpusetobj_ffs() (which calculates a ffs(3) for a cpuset_t object), cpusetobj_strprint() (which prepares a string representing a cpuset_t object) and cpusetobj_strscan() (which creates a valid cpuset_t starting from a string representation). - pc_cpumask and pc_other_cpus are target to be removed soon. With the moving from cpumask_t to cpuset_t they are now inefficient and not really useful. Anyway, for the time being, please note that access to pcpu datas is protected by sched_pin() in order to avoid migrating the CPU while reading more than one (possible) word - Please note that size of cpuset_t objects may differ between kernel and userland. While this is not directly related to the patch itself, it is good to understand that concept and possibly use the patch as a reference on how to deal with cpuset_t objects in userland, when accessing kernland members. - KTR_CPUMASK is changed and now is represented through a string, to be set as the example reported in NOTES. Please additively note that no MAXCPU is bumped in this patch, but private testing has been done until to MAXCPU=128 on a real 8x8x2(htt) machine (amd64). Please note that the FreeBSD version is not yet bumped because of the upcoming pcpu changes. However, note that this patch is not targeted for MFC. People to thank for the time spent on this patch: - sbruno, pluknet and Nicholas Esborn (nick AT desert DOT net) tested several revision of the patches and really helped in improving stability of this work. - marius fixed several bugs in the sparc64 implementation and reviewed patches related to ktr. - jeff and jhb discussed the basic approach followed. - kib and marcel made targeted review on some specific part of the patch. - marius, art, nwhitehorn and andreast reviewed MD specific part of the patch. - marius, andreast, gonzo, nwhitehorn and jceel tested MD specific implementations of the patch. - Other people have made contributions on other patches that have been already committed and have been listed separately. Companies that should be mentioned for having participated at several degrees: - Yahoo! for having offered the machines used for testing on big count of CPUs. - The FreeBSD Foundation for having sponsored my devsummit attendance, which has been instrumental. - Sandvine for having offered offices and infrastructure during development. (I really hope I didn't forget anyone, if it happened I apologize in advance). Revision Changes Path 1.693 +4 -0 src/UPDATING 1.15 +11 -7 src/gnu/usr.bin/gdb/kgdb/kthr.c 1.5 +29 -2 src/lib/libkvm/kvm_pcpu.c 1.19 +12 -3 src/lib/libmemstat/memstat_uma.c 1.4 +0 -0 src/share/man/man4/geom_map.4 1.41 +10 -11 src/sys/amd64/acpica/acpi_wakeup.c 1.53 +6 -4 src/sys/amd64/amd64/intr_machdep.c 1.343 +121 -103 src/sys/amd64/amd64/mp_machdep.c 1.721 +49 -35 src/sys/amd64/amd64/pmap.c 1.276 +15 -6 src/sys/amd64/amd64/vm_machdep.c 1.13 +0 -1 src/sys/amd64/include/_types.h 1.160 +2 -1 src/sys/amd64/include/pmap.h 1.101 +4 -4 src/sys/amd64/include/smp.h 1.133 +2 -2 src/sys/arm/arm/pmap.c 1.11 +0 -1 src/sys/arm/include/_types.h 1.40 +2 -1 src/sys/arm/include/pmap.h 1.6 +3 -1 src/sys/cddl/dev/cyclic/i386/cyclic_machdep.c 1.10 +5 -4 src/sys/cddl/dev/dtrace/amd64/dtrace_subr.c 1.10 +6 -4 src/sys/cddl/dev/dtrace/i386/dtrace_subr.c 1.1612 +5 -2 src/sys/conf/NOTES 1.53 +4 -4 src/sys/dev/hwpmc/hwpmc_mod.c 1.3 +0 -0 src/sys/dev/iicbus/ad7417.c 1.2 +13 -8 src/sys/dev/xen/control/control.c 1.67 +1 -1 src/sys/geom/eli/g_eli.c 1.48 +6 -4 src/sys/i386/i386/intr_machdep.c 1.326 +115 -97 src/sys/i386/i386/mp_machdep.c 1.700 +72 -46 src/sys/i386/i386/pmap.c 1.306 +22 -14 src/sys/i386/i386/vm_machdep.c 1.17 +0 -1 src/sys/i386/include/_types.h 1.154 +2 -1 src/sys/i386/include/pmap.h 1.6 +2 -1 src/sys/i386/include/sf_buf.h 1.102 +4 -4 src/sys/i386/include/smp.h 1.32 +69 -48 src/sys/i386/xen/mp_machdep.c 1.60 +45 -36 src/sys/i386/xen/pmap.c 1.90 +11 -10 src/sys/ia64/ia64/mp_machdep.c 1.12 +0 -1 src/sys/ia64/include/_types.h 1.16 +3 -1 src/sys/ia64/include/smp.h 1.27 +82 -6 src/sys/kern/kern_cpuset.c 1.59 +51 -10 src/sys/kern/kern_ktr.c 1.10 +3 -3 src/sys/kern/kern_pmc.c 1.14 +8 -7 src/sys/kern/kern_rmlock.c 1.156 +44 -22 src/sys/kern/sched_4bsd.c 1.292 +5 -4 src/sys/kern/sched_ule.c 1.35 +2 -1 src/sys/kern/subr_kdb.c 1.25 +1 -1 src/sys/kern/subr_pcpu.c 1.229 +51 -36 src/sys/kern/subr_smp.c 1.7 +11 -3 src/sys/mips/cavium/octeon_mp.c 1.7 +0 -1 src/sys/mips/include/_types.h 1.6 +3 -1 src/sys/mips/include/hwfunc.h 1.27 +2 -1 src/sys/mips/include/pmap.h 1.10 +3 -1 src/sys/mips/include/smp.h 1.22 +38 -22 src/sys/mips/mips/mp_machdep.c 1.93 +24 -12 src/sys/mips/mips/pmap.c 1.31 +7 -3 src/sys/mips/rmi/xlr_machdep.c 1.8 +8 -3 src/sys/mips/sibyte/sb_scd.c 1.2 +0 -0 src/sys/nfs/nfs_kdtrace.h 1.2 +1 -0 src/sys/ofed/include/linux/list.h 1.162 +10 -3 src/sys/powerpc/aim/mmu_oea.c 1.61 +10 -3 src/sys/powerpc/aim/mmu_oea64.c 1.13 +2 -2 src/sys/powerpc/booke/platform_bare.c 1.44 +7 -4 src/sys/powerpc/booke/pmap.c 1.11 +0 -1 src/sys/powerpc/include/_types.h 1.12 +1 -1 src/sys/powerpc/include/openpicvar.h 1.37 +3 -2 src/sys/powerpc/include/pmap.h 1.13 +3 -1 src/sys/powerpc/include/smp.h 1.3 +2 -1 src/sys/powerpc/mpc85xx/openpic_fdt.c 1.39 +4 -3 src/sys/powerpc/powerpc/intr_machdep.c 1.39 +14 -12 src/sys/powerpc/powerpc/mp_machdep.c 1.33 +7 -2 src/sys/powerpc/powerpc/openpic.c 1.10 +2 -1 src/sys/powerpc/powerpc/pic_if.m 1.9 +0 -1 src/sys/sparc64/include/_types.h 1.8 +2 -0 src/sys/sparc64/include/ktr.h 1.55 +2 -1 src/sys/sparc64/include/pmap.h 1.35 +29 -18 src/sys/sparc64/include/smp.h 1.84 +3 -1 src/sys/sparc64/sparc64/genassym.c 1.43 +6 -4 src/sys/sparc64/sparc64/intr_machdep.c 1.17 +21 -11 src/sys/sparc64/sparc64/mp_exception.S 1.67 +61 -41 src/sys/sparc64/sparc64/mp_machdep.c 1.213 +4 -4 src/sys/sparc64/sparc64/pmap.c 1.40 +29 -11 src/sys/sparc64/sparc64/swtch.S 1.14 +3 -3 src/sys/sparc64/sparc64/tlb.c 1.3 +52 -0 src/sys/sys/_cpuset.h (new) 1.3 +1 -1 src/sys/sys/_rmlock.h 1.2 +0 -0 src/sys/sys/_stdint.h 1.11 +46 -15 src/sys/sys/cpuset.h 1.43 +4 -1 src/sys/sys/ktr.h 1.53 +13 -2 src/sys/sys/pcpu.h 1.9 +2 -2 src/sys/sys/pmckern.h 1.97 +14 -12 src/sys/sys/smp.h 1.108 +0 -1 src/sys/sys/types.h 1.21 +1 -1 src/sys/x86/x86/local_apic.c 1.2 +0 -0 src/tools/build/options/WITHOUT_GPIO 1.2 +0 -0 src/tools/build/options/WITH_OFED 1.2 +0 -0 src/tools/regression/bin/sh/builtins/set1.0 1.2 +0 -0 src/tools/regression/bin/sh/parser/dollar-quote1.0 1.2 +0 -0 src/tools/regression/bin/sh/parser/dollar-quote2.0 1.2 +0 -0 src/tools/regression/bin/sh/parser/dollar-quote3.0 1.2 +0 -0 src/tools/regression/bin/sh/parser/dollar-quote4.0 1.2 +0 -0 src/tools/regression/bin/sh/parser/dollar-quote5.0 1.2 +0 -0 src/tools/regression/bin/sh/parser/dollar-quote6.0 1.2 +0 -0 src/tools/regression/bin/sh/parser/dollar-quote7.0 1.2 +0 -0 src/tools/regression/bin/sh/parser/dollar-quote8.0 1.2 +0 -0 src/tools/regression/bin/sh/parser/dollar-quote9.0 1.10 +16 -9 src/usr.sbin/pmccontrol/pmccontrol.c