From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qk0-f197.google.com (mail-qk0-f197.google.com [209.85.220.197]) by kanga.kvack.org (Postfix) with ESMTP id BE73E6B0253 for ; Thu, 28 Jul 2016 18:15:44 -0400 (EDT) Received: by mail-qk0-f197.google.com with SMTP id v184so77856591qkc.0 for ; Thu, 28 Jul 2016 15:15:44 -0700 (PDT) Received: from mx1.redhat.com (mx1.redhat.com. [209.132.183.28]) by mx.google.com with ESMTPS id q65si5381731qki.52.2016.07.28.15.15.43 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 28 Jul 2016 15:15:44 -0700 (PDT) Date: Fri, 29 Jul 2016 01:15:33 +0300 From: "Michael S. Tsirkin" 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: Sender: owner-linux-mm@kvack.org List-ID: 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 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 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org