From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sasha Levin Subject: Re: [RFC PATCH 13/16] kvm tools: keep track of registered memory banks in struct kvm Date: Tue, 13 Nov 2012 11:09:05 -0500 Message-ID: <50A270A1.8020305@gmail.com> References: <1352721450-11340-1-git-send-email-will.deacon@arm.com> <1352721450-11340-14-git-send-email-will.deacon@arm.com> <50A1CE92.6060803@gmail.com> <20121113121605.GC5493@mudshark.cambridge.arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Cc: "kvm@vger.kernel.org" , "penberg@kernel.org" , Marc Zyngier , "c.dall@virtualopensystems.com" , Matt Evans , "peter.maydell@linaro.org" To: Will Deacon Return-path: Received: from mail-qa0-f53.google.com ([209.85.216.53]:63542 "EHLO mail-qa0-f53.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751576Ab2KMQJ3 (ORCPT ); Tue, 13 Nov 2012 11:09:29 -0500 Received: by mail-qa0-f53.google.com with SMTP id k31so2292466qat.19 for ; Tue, 13 Nov 2012 08:09:28 -0800 (PST) In-Reply-To: <20121113121605.GC5493@mudshark.cambridge.arm.com> Sender: kvm-owner@vger.kernel.org List-ID: On 11/13/2012 07:16 AM, Will Deacon wrote: > On Tue, Nov 13, 2012 at 04:37:38AM +0000, Sasha Levin wrote: >> On 11/12/2012 06:57 AM, Will Deacon wrote: >>> +struct kvm_mem_bank { >>> + struct list_head list; >>> + unsigned long guest_phys_addr; >>> + void *host_addr; >>> + unsigned long size; >>> +}; >> >> Can we just reuse struct kvm_userspace_memory_region here? We're also using different >> data types for guest_phys_addr and size than whats in kvm_userspace_memory_region - that >> can't be good. > > I looked briefly at doing that when I wrote the multi-bank stuff, but I hit > a couple of issues: > > - kvmtool itself tends to use void * for host addresses, rather than > the __u64 userspace_addr in kvm_userspace_memory_region > > - kvm_userspace_memory_region is a superset of what we need (not the > end of the world I guess) > > so you end up casting address types a fair amount. Still, I'll revisit it > and see if I can come up with something cleaner. That's a good point. We used void* while the kernel side is using u64, which looks odd. In that case, let's get everything moved to u64 (obviously not in the scope of this patch series). Thanks, Sasha