From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54715) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aY5Rg-0005aK-56 for qemu-devel@nongnu.org; Tue, 23 Feb 2016 00:23:37 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aY5Rf-0001vy-3z for qemu-devel@nongnu.org; Tue, 23 Feb 2016 00:23:36 -0500 Date: Tue, 23 Feb 2016 16:24:31 +1100 From: David Gibson Message-ID: <20160223052431.GS2808@voom.fritz.box> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="ShzQXCswyqjgWi6k" Content-Disposition: inline Subject: [Qemu-devel] CPU hotplug, again List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Andreas =?iso-8859-1?Q?F=E4rber?= Cc: thuth@redhat.com, ehabkost@redhat.com, armbru@redhat.com, bharata@linux.vnet.ibm.com, agraf@suse.de, qemu-devel@nongnu.org, qemu-ppc@nongnu.org, pbonzini@redhat.com, imammedo@redhat.com --ShzQXCswyqjgWi6k Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi Andreas, I've now found (with Thomas' help) your RFC series for socket/core based cpu hotplug on x86 (https://github.com/afaerber/qemu-cpu/compare/qom-cpu-x86). It seems sensible enough as far as it goes, but doesn't seem to address a bunch of the things that I was attempting to do with the cpu-package proposal - and which we absolutely need for cpu hotplug on Power. 1) What interface do you envisage beyond cpu_add? The patches I see just construct extra socket and core objects, but still control hotplug (for x86) through the cpu_add interface. That interface is absolutely unusable on Power, since it operates on a per-thread basis, whereas the PAPR guest<->host interfaces can only communicate information at a per-core granularity. 2) When hotplugging at core or socket granularity, where would the code to construct the individual thread objects sit? Your series has the construction done in both the machine init path and the hotplug path. The latter works because hotplug occurs at thread granularity. If we're hotplugging at core or socket granularity what would do the construct? The core/socket object itself (in instance_init? in realize?); the hotplug handler? something else? 3) How does the management layer determine what is pluggable? Both the number of pluggable slots, and what it will need to do to populate them. 4) How do we enforce that toplogies illegal for the platform can't be constructed? --=20 David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson --ShzQXCswyqjgWi6k Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBAgAGBQJWy+0PAAoJEGw4ysog2bOSnssP/jgeqKEeexSDNBLzxkGdO0SF vmsOJ6X0aCzo/PBZALV45CKVporw0DNq7aUIiqV4iEn655m3kQSI3LLoy85EY98Q gnhjO6neZ1Ja4Z468QnkmO1B31ns7aqkyJS/I1cVy0ycrn2MLpOdqp9a6/J4/iAx NVReD9uRuINRO462ULVYfRGn9w5gUutjn1o7a3blB5ZRtKuQDeEJMkSdKkRR1Jwt a6Sbj9FCFjOcUL6BrdDIK5wU350IwDhE8lsqrq0QP8KPnNVDAvEWxBlMqO9rk2PF GNtDvjZ2u0t7fDnT/iUBXfUElINCMCdB0M+9H1FNReV1Iq/OrrBNX6ISLDhbFSUd UWGhS74N8uste5HojIsddOPetvyYKXaeloxEOMhemk1ba5QWG4INjXt2+OzNH2f7 i+KUgCWIdE5lP98nFKzWnmHRMs5w4757CnX/MoVHGETnewrx/ftxbK7rSnwZVAYx CdcAns/9oKLp6ikWdibcSoFJtNOP1qKxrr4Ykdx8Y/1YVUhHeAdcSzZjF9muf30m L/wIqoiY3RtmgCc6H7//fVc72bufbWJeD+IIqkOu4GQkgiPuQXebBnpYpc28LCvq 7NDHS9TpLEsufjO4r+YxUZMSSGfaHuXGOCH07KABqFuz45pux8XgfhwPPZCj3hEG flEvS9nFCFAMmrSMxguA =c2j0 -----END PGP SIGNATURE----- --ShzQXCswyqjgWi6k--