From: Anthony Liguori <anthony@codemonkey.ws>
To: Jan Kiszka <jan.kiszka@siemens.com>
Cc: Anthony Liguori <aliguori@us.ibm.com>,
qemu-devel <qemu-devel@nongnu.org>,
Alexander Graf <agraf@suse.de>
Subject: Re: [Qemu-devel] Re: [COMMIT bd83677] Fake dirty loggin when it's not there
Date: Wed, 22 Jul 2009 13:15:52 -0500 [thread overview]
Message-ID: <4A675758.2080302@codemonkey.ws> (raw)
In-Reply-To: <4A6745C0.5060201@siemens.com>
Jan Kiszka wrote:
>> Signed-off-by: Alexander Graf <agraf-l3A5Bk7waGM@public.gmane.org>
>> Signed-off-by: Anthony Liguori <aliguori-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
>>
>> diff --git a/kvm-all.c b/kvm-all.c
>> index 961fa32..2032949 100644
>> --- a/kvm-all.c
>> +++ b/kvm-all.c
>> @@ -300,6 +300,7 @@ int kvm_physical_sync_dirty_bitmap(target_phys_addr_t start_addr,
>> KVMDirtyLog d;
>> KVMSlot *mem;
>> int ret = 0;
>> + int r;
>>
>> d.dirty_bitmap = NULL;
>> while (start_addr < end_addr) {
>> @@ -308,6 +309,11 @@ int kvm_physical_sync_dirty_bitmap(target_phys_addr_t start_addr,
>> break;
>> }
>>
>> + /* We didn't activate dirty logging? Don't care then. */
>> + if(!(mem->flags & KVM_MEM_LOG_DIRTY_PAGES)) {
>> + continue;
>> + }
>> +
>>
>
> According to Alex' reply [1], I think this is probably better expressed
> as an assert() than a silent skip. It indicates an error at higher
> level, no?
>
I don't have a strong opinion either way.
>> size = ((mem->memory_size >> TARGET_PAGE_BITS) + 7) / 8;
>> if (!d.dirty_bitmap) {
>> d.dirty_bitmap = qemu_malloc(size);
>> @@ -319,7 +325,8 @@ int kvm_physical_sync_dirty_bitmap(target_phys_addr_t start_addr,
>>
>> d.slot = mem->slot;
>>
>> - if (kvm_vm_ioctl(s, KVM_GET_DIRTY_LOG, &d) == -1) {
>> + r = kvm_vm_ioctl(s, KVM_GET_DIRTY_LOG, &d);
>> + if (r == -EINVAL) {
>> dprintf("ioctl failed %d\n", errno);
>> ret = -1;
>> break;
>>
>
> My remark still stands: This is an "optimistic" assumption that only
> EINVAL is a "real" error. If KVM is buggy /wrt a specific invalid return
> value, work around that particular bug (and we should also fix the
> kernel, but that's a different topic).
>
The behavior is identical to what it was before. It's just a stylistic
change.
I agree that this needs to be properly fixed in KVM and then in QEMU but
I also think that that is best done as a separate set of patches.
Regards,
Anthony Liguori
next prev parent reply other threads:[~2009-07-22 18:16 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <200907221626.n6MGQGH0022104@d03av02.boulder.ibm.com>
2009-07-22 17:00 ` [Qemu-devel] Re: [COMMIT bd83677] Fake dirty loggin when it's not there Jan Kiszka
2009-07-22 18:15 ` Anthony Liguori [this message]
2009-07-22 19:27 ` [Qemu-devel] [PATCH] kvm: Fix error detection for KVM_GET_DIRTY_LOG Jan Kiszka
2009-07-22 19:29 ` [Qemu-devel] " Anthony Liguori
2009-07-22 19:40 ` Jan Kiszka
2009-07-22 19:42 ` Anthony Liguori
2009-07-22 20:07 ` Jan Kiszka
2009-07-22 21:01 ` Alexander Graf
2009-07-22 21:14 ` Jan Kiszka
2009-07-22 21:17 ` Alexander Graf
2009-07-22 21:15 ` Anthony Liguori
2009-07-22 21:24 ` Alexander Graf
2009-07-22 21:25 ` Anthony Liguori
2009-07-22 21:36 ` Alexander Graf
2009-07-22 21:38 ` Anthony Liguori
2009-07-22 21:30 ` Jan Kiszka
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=4A675758.2080302@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=agraf@suse.de \
--cc=aliguori@us.ibm.com \
--cc=jan.kiszka@siemens.com \
--cc=qemu-devel@nongnu.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.