From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752065AbcG1WPt (ORCPT ); Thu, 28 Jul 2016 18:15:49 -0400 Received: from mx1.redhat.com ([209.132.183.28]:60590 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751147AbcG1WPo (ORCPT ); Thu, 28 Jul 2016 18:15:44 -0400 Date: Fri, 29 Jul 2016 01:15:33 +0300 From: "Michael S. Tsirkin" To: "Li, Liang Z" Cc: "Hansen, Dave" , "linux-kernel@vger.kernel.org" , "virtualization@lists.linux-foundation.org" , "linux-mm@kvack.org" , "virtio-dev@lists.oasis-open.org" , "kvm@vger.kernel.org" , "qemu-devel@nongnu.org" , "dgilbert@redhat.com" , "quintela@redhat.com" , Andrew Morton , Vlastimil Babka , Mel Gorman , Paolo Bonzini , Cornelia Huck , Amit Shah Subject: Re: [PATCH v2 repost 4/7] virtio-balloon: speed up inflate/deflate process Message-ID: <20160728221533.GA789@redhat.com> References: <1469582616-5729-1-git-send-email-liang.z.li@intel.com> <1469582616-5729-5-git-send-email-liang.z.li@intel.com> <5798DB49.7030803@intel.com> <20160728003644-mutt-send-email-mst@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Thu, 28 Jul 2016 22:15:43 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Jul 28, 2016 at 03:30:09AM +0000, Li, Liang Z wrote: > > Subject: Re: [PATCH v2 repost 4/7] virtio-balloon: speed up inflate/deflate > > process > > > > On Wed, Jul 27, 2016 at 09:03:21AM -0700, Dave Hansen wrote: > > > On 07/26/2016 06:23 PM, Liang Li wrote: > > > > + vb->pfn_limit = VIRTIO_BALLOON_PFNS_LIMIT; > > > > + vb->pfn_limit = min(vb->pfn_limit, get_max_pfn()); > > > > + vb->bmap_len = ALIGN(vb->pfn_limit, BITS_PER_LONG) / > > > > + BITS_PER_BYTE + 2 * sizeof(unsigned long); > > > > + hdr_len = sizeof(struct balloon_bmap_hdr); > > > > + vb->bmap_hdr = kzalloc(hdr_len + vb->bmap_len, GFP_KERNEL); > > > > > > This ends up doing a 1MB kmalloc() right? That seems a _bit_ big. > > > How big was the pfn buffer before? > > > > > > Yes I would limit this to 1G memory in a go, will result in a 32KByte bitmap. > > > > -- > > MST > > Limit to 1G is bad for the performance, I sent you the test result several weeks ago. > > Paste it bellow: > ------------------------------------------------------------------------------------------------------------------------ > About the size of page bitmap, I have test the performance of filling the balloon to 15GB with a > 16GB RAM VM. > > =============================== > 32K Byte (cover 1GB of RAM) > > Time spends on inflating: 2031ms > --------------------------------------------- > 64K Byte (cover 2GB of RAM) > > Time spends on inflating: 1507ms > -------------------------------------------- > 512K Byte (cover 16GB of RAM) > > Time spends on inflating: 1237ms > ================================ > > If possible, a big bitmap is better for performance. > > Liang Earlier you said: a. allocating pages (6.5%) b. sending PFNs to host (68.3%) c. address translation (6.1%) d. madvise (19%) Here sending PFNs to host with 512K Byte map should be almost free. So is something else taking up the time? -- MST