From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Date: Tue, 29 Sep 2009 13:25:07 +0000 Subject: Re: [PATCH 26/27] Enable 32bit dirty log pointers on 64bit host Message-Id: <4AC20AB3.4040800@redhat.com> List-Id: References: <1254212303-8737-27-git-send-email-agraf@suse.de> In-Reply-To: <1254212303-8737-27-git-send-email-agraf@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: kvm-ppc@vger.kernel.org On 09/29/2009 11:17 AM, Alexander Graf wrote: > > On 29.09.2009, at 11:14, Avi Kivity wrote: > >> On 09/29/2009 10:18 AM, Alexander Graf wrote: >>> With big endian userspace, we can't quite figure out if a pointer >>> is 32 bit (shifted>> 32) or 64 bit when we read a 64 bit pointer. >>> >>> This is what happens with dirty logging. To get the pointer interpreted >>> correctly, I just make it bounce twice, but admittedly that is not >>> ideal. >>> >>> I'm open for suggestions here. >>> >>> >> >> How about adding a new union member to struct kvm_dirty_log: >> >> __u64 dirty_bitmap_virt; > > And modifying userspace to write to that one? > Yes - old userspace will still build and work (we don't remove the old field) on little endian or BE32, new userspace will work on all flavours. We need new userspace anyway to take advantage of dirty logging. -- error compiling committee.c: too many arguments to function