From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52539) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V4B04-0008Jy-JC for qemu-devel@nongnu.org; Tue, 30 Jul 2013 10:34:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1V4Azv-0003XV-N9 for qemu-devel@nongnu.org; Tue, 30 Jul 2013 10:34:08 -0400 Received: from e9.ny.us.ibm.com ([32.97.182.139]:56080) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V4Atf-0001GN-Ih for qemu-devel@nongnu.org; Tue, 30 Jul 2013 10:27:31 -0400 Received: from /spool/local by e9.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 30 Jul 2013 10:27:30 -0400 Received: from d01relay06.pok.ibm.com (d01relay06.pok.ibm.com [9.56.227.116]) by d01dlp02.pok.ibm.com (Postfix) with ESMTP id 80DCC6E803C for ; Tue, 30 Jul 2013 10:27:22 -0400 (EDT) Received: from d01av04.pok.ibm.com (d01av04.pok.ibm.com [9.56.224.64]) by d01relay06.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id r6UERRtY38273084 for ; Tue, 30 Jul 2013 10:27:27 -0400 Received: from d01av04.pok.ibm.com (loopback [127.0.0.1]) by d01av04.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id r6UERQ9v017715 for ; Tue, 30 Jul 2013 10:27:27 -0400 Message-ID: <51F7CD4E.2050003@linux.vnet.ibm.com> Date: Tue, 30 Jul 2013 10:27:26 -0400 From: "Jason J. Herne" MIME-Version: 1.0 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> In-Reply-To: <20130730092402.3c7d84f7@nial.usersys.redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH 8/8] [PATCH RFC v2] s390-qemu: cpu hotplug - Treat S390 cpus as devices Reply-To: jjherne@linux.vnet.ibm.com List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Igor Mammedov 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" , =?ISO-8859-1?Q?Andreas_F=E4rber?= 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ärber wrote: >>>> if (tcg_enabled() && !inited) { >>>>> inited = true; >>>>> s390x_translate_init(); >>>>> } >>>>> + >>>>> + smp_cpus += 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_ONLY >> 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? > Is there an easier way of getting the count besides this? int cpu_count = 0; for (cpu = first_cpu; cpu != NULL; cpu = cpu->next_cpu) { cpu_count++; } -- -- Jason J. Herne (jjherne@linux.vnet.ibm.com)