Date: Thu, 2 Jun 2011 00:23:26 -0400 From: Jason Hellenthal <jhell@DataIX.net> To: Attilio Rao <attilio@freebsd.org> Cc: Nick Esborn <nick@desert.net>, Marius Strobl <marius@freebsd.org>, freebsd-current@freebsd.org, Sergey Kandaurov <pluknet@freebsd.org>, Sean Bruno <seanbru@yahoo-inc.com> Subject: Re: [PATCH] Add the infrastructure for supporting an infinite number of CPUs Message-ID: <20110602042326.GA3103@DataIX.net> In-Reply-To: <BANLkTi=xgP64i2S=SE1zz-p07b7cTA06Zg@mail.gmail.com> References: <BANLkTi=xgP64i2S=SE1zz-p07b7cTA06Zg@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--4Ckj6UjgE2iN1+kY Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Attilio, AWESOME! to say the least, but I am sure there is a LOT more to be said. Thank YOU! On Wed, Jun 01, 2011 at 02:21:30PM -0400, Attilio Rao wrote: > Current maximum number of CPUs supported by the FreeBSD kernel is 32. > That number cames from indirectly by the fact that we have a cpumask_t > type, representing a mask of CPUs, which is an unsigned int right now. > I then made a patch that removes the cpumask_t type and uses cpuset_t > type for characterizing a generic mask of CPUs: > http://www.freebsd.org/~attilio/largeSMP/largeSMP-patchset-beta-0.diff >=20 > This is part of a bigger effort which brought to serveral smaller > commits along the way, in order to fix some edge cases. >=20 > Things to pay attention at: > - Userland and kerneland cpuset_t size can be different, thus when > accessing to a kernel cpuset_t object from userland (via kvm_read() > for example) a pattern similar to what pmccontrol does, in this patch, > should be followed > - There are some cpuset_t object in pcpu representing curcpu mask and > !curcpu mask. With transition from cpumask_t to cpuset_t they become > inefficient and not really useful. The next weeks I'll focus on > removing them and make a smarter usage of the cpuset_t interface. > Additively, please note that right now I clobbered pcpu accesses > under scheduler pinnings, because it is possible more than a single > atomic operation is needed for accessing a cpuset_t. When the cleanup > happens those pinnings will go away. > - I had to introduce, among the other things, functions for > representing cpuset_t object in "visual" way, thus > cpusetobj_strprint() and cpusetobj_strscan(). I got the desired format > from what Linux already does, so that someone may be already used to > it. Anyway strings will be represented as a serie of long, hexadecimal > long words, all separated by ", ". The left-most represents the higher > word, following natural bits representation. > - I used cpusetobj_strscan() for implementing KTR_CPUMASK in a way it > supports cpuset_t. Change the kernel config appropriately. > - No MAXCPU has been bumped in the patch, but I encourage you to do so > with your own kernel configurations. >=20 > I really need to commit this patch before code slush happens, thus I > plan to commit it on June 7th, if no one reports bugs or can make good > point on his reviews. Please note that the patch has been greatly > tested and reviewed on all FreeBSD tier-1 and tier-2 architectures. > Anyway more testing and reviews are welcome to happen. >=20 > Thanks, > Attilio >=20 >=20 > --=20 > Peace can only be achieved by understanding - A. Einstein > _______________________________________________ > freebsd-current@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org" --=20 "Unity can only be manifested by the Binary. Unity itself and the idea of U= nity are already two." -- Buddha Regards, (jhell) Jason Hellenthal --4Ckj6UjgE2iN1+kY Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.17 (FreeBSD) Comment: http://bit.ly/0x89D8547E iQEcBAEBAgAGBQJN5xA9AAoJEJBXh4mJ2FR+RLYIAJl7YVG8e8jB2BnzrGusvprj vHlv6n43XXV3/amnecnavhcS0tcTv4VrAwjOgCUmQj/OVDrt12TckSIwrrgCb1OC 3Ga8z/8Rd3sK1LBGsLZ67eVSc/eALGhuKpCCSwxMGeoBZ1cIStSmx6dskYYiXuTA wXz7aS6MKQCjwWK/7a1iEcN0nNHKENRnIeIAnvyR5LaMH6UePo7hI6vvTQym5aHK slkZc5voWRYPzYA6AUNGzMmk4uDk7+b4/8TbPL1vqQsDdYn+T9HB8YFCzK57kEcE egaHt1F12xf2aMhJgKvvymwlpWfTLeYjl+g+5SFpAuVmPOdks/LJh0RI23EcsN8= =DQtV -----END PGP SIGNATURE----- --4Ckj6UjgE2iN1+kY--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110602042326.GA3103>