From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58329) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V4BG7-00017L-WD for qemu-devel@nongnu.org; Tue, 30 Jul 2013 10:50:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1V4BG1-00023G-Uh for qemu-devel@nongnu.org; Tue, 30 Jul 2013 10:50:43 -0400 Received: from mx1.redhat.com ([209.132.183.28]:64643) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V4BG1-00023A-M5 for qemu-devel@nongnu.org; Tue, 30 Jul 2013 10:50:37 -0400 Date: Tue, 30 Jul 2013 16:50:25 +0200 From: Igor Mammedov Message-ID: <20130730165025.3ee37293@nial.usersys.redhat.com> In-Reply-To: <51F7CD4E.2050003@linux.vnet.ibm.com> References: <1370626087-840-1-git-send-email-jjherne@us.ibm.com> <1370626087-840-9-git-send-email-jjherne@us.ibm.com> <51B3D647.6090400@suse.de> <51F6C585.4070109@linux.vnet.ibm.com> <20130730092402.3c7d84f7@nial.usersys.redhat.com> <51F7CD4E.2050003@linux.vnet.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH 8/8] [PATCH RFC v2] s390-qemu: cpu hotplug - Treat S390 cpus as devices List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: jjherne@linux.vnet.ibm.com Cc: ehabkost@redhat.com, agraf@suse.de, qemu-devel@nongnu.org, borntraeger@de.ibm.com, jfrei@linux.vnet.ibm.com, Cornelia Huck , "Jason J. Herne" , Andreas =?ISO-8859-1?B?RuRyYmVy?= On Tue, 30 Jul 2013 10:27:26 -0400 "Jason J. Herne" wrote: > On 07/30/2013 03:24 AM, Igor Mammedov wrote: > > On Mon, 29 Jul 2013 15:41:57 -0400 > > "Jason J. Herne" wrote: > > > >> On 06/08/2013 09:11 PM, Andreas F=E4rber wrote: > >>>> if (tcg_enabled() && !inited) { > >>>>> inited =3D true; > >>>>> s390x_translate_init(); > >>>>> } > >>>>> + > >>>>> + smp_cpus +=3D 1; > >>> Won't we need some form of locking? > >>> > >>> If we fiddle with a global CPU counter, we should do so in qom/cpu.c, > >>> not just in s390x code. > >>> > >> > >> I've redesigned a lot of this to make it simpler and less intrusive. > >> I'm almost ready to post the next revision but I'm hung up on this one > >> thing. > >> > >> I moved the smp_cpu increment to qom/cpu.c : cpu_common_realizefn. > >> However this seems to break the user mode target because smp_cpus does > >> not exist. I tried wrapping the increment in a #ifndef CONFIG_USER_ON= LY > >> statement but it seems to have no effect. I think the reason for that > >> is because CONFIG_USER_ONLY is added to config-target.h which is not > >> actually generated until after we compile qom/cpu.c. > >> > >> ... > >> CC qom/object.o > >> CC qom/container.o > >> CC qom/qom-qobject.o > >> CC qom/cpu.o > >> CC hw/core/qdev.o > >> CC hw/core/qdev-properties.o > >> CC hw/core/irq.o > >> GEN s390x-linux-user/config-target.h > >> CC s390x-linux-user/exec.o > >> ... > >> > >> Is there another place I should put the increment? > > > > Could you just use current number of cpus instead of smp_cpus increment? > > >=20 > Is there an easier way of getting the count besides this? >=20 > int cpu_count =3D 0; > for (cpu =3D first_cpu; cpu !=3D NULL; cpu =3D cpu->next_cpu) { > cpu_count++; > } maybe qemu_for_each_cpu(), direct access to first_cpu & co is not encourage= d. =20