Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932254AbbFQNPG (ORCPT ); Wed, 17 Jun 2015 09:15:06 -0400 Received: from mx1.redhat.com ([209.132.183.28]:48122 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753734AbbFQNPE (ORCPT ); Wed, 17 Jun 2015 09:15:04 -0400 From: Igor Mammedov To: linux-kernel@vger.kernel.org Cc: mst@redhat.com, kvm@vger.kernel.org, pbonzini@redhat.com, andrey@xdel.ru, digitaleric@google.com Subject: [PATCH v2 0/6] vhost: support upto 509 memory regions Date: Wed, 17 Jun 2015 15:14:53 +0200 Message-Id: <1434546899-5296-1-git-send-email-imammedo@redhat.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2110 Lines: 57 Ref to prefious version discussion: [PATCH 0/5] vhost: support upto 509 memory regions http://www.spinics.net/lists/kvm/msg117654.html Chagelog v1->v2: * fix spelling errors * move "vhost: support upto 509 memory regions" to the end of queue * move kvfree() form 1/6 to 2/6 where it belongs * add vhost module parameter to enable/disable translation caching Series extends vhost to support upto 509 memory regions, and adds some vhost:translate_desc() performance improvemnts so it won't regress when memslots are increased to 509. It fixes running VM crashing during memory hotplug due to vhost refusing accepting more than 64 memory regions. It's only host kernel side fix to make it work with QEMU versions that support memory hotplug. But I'll continue to work on QEMU side solution to reduce amount of memory regions to make things even better. Performance wise for guest with (in my case 3 memory regions) and netperf's UDP_RR workload translate_desc() execution time from total workload takes: Memory |1G RAM|cached|non cached regions # | 3 | 53 | 53 ------------------------------------ upstream | 0.3% | - | 3.5% ------------------------------------ this series | 0.2% | 0.5% | 0.7% where "non cached" column reflects trashing wokload with constant cache miss. More details on timing in respective patches. Igor Mammedov (6): vhost: use binary search instead of linear in find_region() vhost: extend memory regions allocation to vmalloc vhost: add per VQ memory region caching vhost: translate_desc: optimization for desc.len < region size vhost: add 'translation_cache' module parameter vhost: support upto 509 memory regions drivers/vhost/vhost.c | 105 ++++++++++++++++++++++++++++++++++++++------------ drivers/vhost/vhost.h | 1 + 2 files changed, 82 insertions(+), 24 deletions(-) -- 1.8.3.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/