From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58015) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZWN35-000761-HW for qemu-devel@nongnu.org; Mon, 31 Aug 2015 07:14:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZWN31-0006XN-Fn for qemu-devel@nongnu.org; Mon, 31 Aug 2015 07:14:51 -0400 Received: from e06smtp16.uk.ibm.com ([195.75.94.112]:42360) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZWN31-0006Wp-88 for qemu-devel@nongnu.org; Mon, 31 Aug 2015 07:14:47 -0400 Received: from /spool/local by e06smtp16.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 31 Aug 2015 12:14:46 +0100 Received: from b06cxnps4074.portsmouth.uk.ibm.com (d06relay11.portsmouth.uk.ibm.com [9.149.109.196]) by d06dlp03.portsmouth.uk.ibm.com (Postfix) with ESMTP id BB5541B0806E for ; Mon, 31 Aug 2015 12:16:06 +0100 (BST) Received: from d06av01.portsmouth.uk.ibm.com (d06av01.portsmouth.uk.ibm.com [9.149.37.212]) by b06cxnps4074.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id t7VBETp55898488 for ; Mon, 31 Aug 2015 11:14:32 GMT Received: from d06av01.portsmouth.uk.ibm.com (localhost [127.0.0.1]) by d06av01.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id t7VBEKLV022500 for ; Mon, 31 Aug 2015 05:14:20 -0600 From: Cornelia Huck Date: Mon, 31 Aug 2015 13:14:02 +0200 Message-Id: <1441019643-10677-23-git-send-email-cornelia.huck@de.ibm.com> In-Reply-To: <1441019643-10677-1-git-send-email-cornelia.huck@de.ibm.com> References: <1441019643-10677-1-git-send-email-cornelia.huck@de.ibm.com> Subject: [Qemu-devel] [PATCH 22/23] s390/sclp: store the increment_size in the sclp device List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Cornelia Huck , borntraeger@de.ibm.com, jfrei@linux.vnet.ibm.com, agraf@suse.de, David Hildenbrand From: David Hildenbrand Let's calculate it once and reuse it. Suggested-by: Matthew Rosato Reviewed-by: Matthew Rosato Signed-off-by: David Hildenbrand Signed-off-by: Cornelia Huck --- hw/s390x/sclp.c | 20 +++----------------- include/hw/s390x/sclp.h | 1 + 2 files changed, 4 insertions(+), 17 deletions(-) diff --git a/hw/s390x/sclp.c b/hw/s390x/sclp.c index ac582e8..0a7f4dd 100644 --- a/hw/s390x/sclp.c +++ b/hw/s390x/sclp.c @@ -36,7 +36,6 @@ static void read_SCP_info(SCLPDevice *sclp, SCCB *sccb) CPUState *cpu; int cpu_count = 0; int i = 0; - int increment_size = 20; int rnsize, rnmax; int slots = MIN(machine->ram_slots, s390_get_memslot_count(kvm_state)); @@ -57,23 +56,9 @@ static void read_SCP_info(SCLPDevice *sclp, SCCB *sccb) read_info->facilities = cpu_to_be64(SCLP_HAS_CPU_INFO | SCLP_HAS_PCI_RECONFIG); - /* - * The storage increment size is a multiple of 1M and is a power of 2. - * The number of storage increments must be MAX_STORAGE_INCREMENTS or fewer. - */ - while ((ram_size >> increment_size) > MAX_STORAGE_INCREMENTS) { - increment_size++; - } - rnmax = ram_size >> increment_size; - + rnmax = ram_size >> sclp->increment_size; /* Memory Hotplug is only supported for the ccw machine type */ if (mhd) { - while ((mhd->standby_mem_size >> increment_size) > - MAX_STORAGE_INCREMENTS) { - increment_size++; - } - assert(increment_size == mhd->increment_size); - mhd->standby_subregion_size = MEM_SECTION_SIZE; /* Deduct the memory slot already used for core */ if (slots > 0) { @@ -105,7 +90,7 @@ static void read_SCP_info(SCLPDevice *sclp, SCCB *sccb) read_info->facilities |= cpu_to_be64(SCLP_FC_ASSIGN_ATTACH_READ_STOR); } - rnsize = 1 << (increment_size - 20); + rnsize = 1 << (sclp->increment_size - 20); if (rnsize <= 128) { read_info->rnsize = rnsize; } else { @@ -518,6 +503,7 @@ static void sclp_memory_init(SCLPDevice *sclp) increment_size++; } } + sclp->increment_size = increment_size; /* The core and standby memory areas need to be aligned with * the increment size. In effect, this can cause the diff --git a/include/hw/s390x/sclp.h b/include/hw/s390x/sclp.h index 50094eb..b0c71b5 100644 --- a/include/hw/s390x/sclp.h +++ b/include/hw/s390x/sclp.h @@ -174,6 +174,7 @@ typedef struct SCLPDevice { /* private */ DeviceState parent_obj; SCLPEventFacility *event_facility; + int increment_size; /* public */ } SCLPDevice; -- 2.5.1