From: Avi Kivity <avi@redhat.com>
To: kvm-ia64@vger.kernel.org
Subject: Re: [PATCH RFC v2 6/6] KVM: introduce a new API for getting dirty
Date: Fri, 23 Apr 2010 11:58:41 +0000 [thread overview]
Message-ID: <4BD18B71.4030202@redhat.com> (raw)
In-Reply-To: <20100420200353.2d2a6dec.yoshikawa.takuya@oss.ntt.co.jp>
On 04/22/2010 12:34 PM, Takuya Yoshikawa wrote:
> Thanks, I can know basic rules about kvm/api .
>
> (2010/04/21 20:46), Avi Kivity wrote:
>
>>
>>> +Type: vm ioctl
>>> +Parameters: struct kvm_dirty_log (in/out)
>>> +Returns: 0 on success, -1 on error
>>> +
>>> +/* for KVM_SWITCH_DIRTY_LOG */
>>> +struct kvm_dirty_log {
>>> + __u32 slot;
>>> + __u32 padding;
>>
>> Please put a flags field here (and verify it is zero in the ioctl
>> implementation). This allows us to extend it later.
>>
>>> + union {
>>> + void __user *dirty_bitmap; /* one bit per page */
>>> + __u64 addr;
>>> + };
>>
>> Just make dirty_bitmap a __u64. With the union there is the risk that
>> someone forgets to zero the structure so we get some random bits in the
>> pointer, and also issues with big endian and s390 compat.
>>
>> Reserve some extra space here for future expansion.
>>
>> Hm. I see that this is the existing kvm_dirty_log structure. So we can't
>> play with it, ignore my comments about it.
>
> So, introducing a new structure to export(and get) two bitmap addresses
> with a flag is the thing?
>
> 1. Qemu calls ioctl to get the two addresses.
> 2. Qemu calls ioctl to make KVM switch the dirty bitmaps.
> --> in this case, qemu have to change the address got in step 1.
> ...
> 3. Qemu calls ioctl(we can reuse 1. with different command flag) to
> free the bitmaps.
>
>
> In my plan, we don't let qemu malloc() dirty bitmaps: at least, I want
> to make that
> another patch set because this patch set already has some dependencies
> to other issues.
>
> But, yes, I can make the struct considering the future expansion if it
> needed.
I guess it's better, since this patch is a "future expansion" of
KVN_GET_DIRTY_LOG. If we had a flags field and some room there, we
could keep the old ioctl.
--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.
next prev parent reply other threads:[~2010-04-23 11:58 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-20 11:03 [PATCH RFC v2 6/6] KVM: introduce a new API for getting dirty Takuya Yoshikawa
2010-04-20 11:15 ` [PATCH RFC v2 6/6] KVM: introduce a new API for getting dirty bitmaps Alexander Graf
2010-04-20 11:33 ` Alexander Graf
2010-04-20 11:33 ` [PATCH RFC v2 6/6] KVM: introduce a new API for getting dirty Takuya Yoshikawa
2010-04-20 11:44 ` Takuya Yoshikawa
2010-04-21 8:29 `
2010-04-21 9:41 ` [PATCH RFC v2 6/6] KVM: introduce a new API for getting dirty bitmaps Alexander Graf
2010-04-21 11:46 ` [PATCH RFC v2 6/6] KVM: introduce a new API for getting dirty Avi Kivity
2010-04-22 2:45 `
2010-04-22 6:09 `
2010-04-22 9:34 ` Takuya Yoshikawa
2010-04-22 23:29 ` [PATCH RFC v2 6/6] KVM: introduce a new API for getting dirty bitmaps Alexander Graf
2010-04-23 10:17 ` [PATCH RFC v2 6/6] KVM: introduce a new API for getting dirty
2010-04-23 10:20 ` [PATCH RFC v2 6/6] KVM: introduce a new API for getting dirty bitmaps Alexander Graf
2010-04-23 11:57 ` [PATCH RFC v2 6/6] KVM: introduce a new API for getting dirty Avi Kivity
2010-04-23 11:58 ` Avi Kivity [this message]
2010-04-23 12:26 ` [PATCH RFC v2 6/6] KVM: introduce a new API for getting dirty bitmaps Alexander Graf
2010-04-23 12:27 ` Arnd Bergmann
2010-04-23 12:42 ` [PATCH RFC v2 6/6] KVM: introduce a new API for getting dirty Avi Kivity
2010-04-23 12:46 ` [PATCH RFC v2 6/6] KVM: introduce a new API for getting dirty bitmaps Arnd Bergmann
2010-04-23 12:53 ` [PATCH RFC v2 6/6] KVM: introduce a new API for getting dirty Avi Kivity
2010-04-23 12:59 ` [PATCH RFC v2 6/6] KVM: introduce a new API for getting dirty bitmaps Alexander Graf
2010-04-23 13:12 ` Arnd Bergmann
2010-04-23 13:20 ` [PATCH RFC v2 6/6] KVM: introduce a new API for getting dirty Avi Kivity
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4BD18B71.4030202@redhat.com \
--to=avi@redhat.com \
--cc=kvm-ia64@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox