From: Eric Blake <eblake@redhat.com>
To: "Andreas Färber" <afaerber@suse.de>
Cc: Eduardo Habkost <ehabkost@redhat.com>,
Gleb Natapov <gleb@redhat.com>,
qemu-devel@nongnu.org, Anthony Liguori <anthony@codemonkey.ws>,
"kvm@vger.kernel.org list" <kvm@vger.kernel.org>,
Igor Mammedov <imammedo@redhat.com>
Subject: Re: [PATCH for-1.4 04/12] kvm: Create kvm_arch_vcpu_id() function
Date: Mon, 21 Jan 2013 07:35:22 -0700 [thread overview]
Message-ID: <50FD522A.2090706@redhat.com> (raw)
In-Reply-To: <50FD3F25.1060504@suse.de>
[-- Attachment #1: Type: text/plain, Size: 1895 bytes --]
On 01/21/2013 06:14 AM, Andreas Färber wrote:
>> glibc is already responsible from converting the 'unsigned long
>> int' of the user declaration back into the 'unsigned int' that the
>> kernel expects for the second argument. The third argument (when
>> present), is generally treated as a pointer (of size appropriate
>> for the architecture). Although there _might_ be an ioctl that
>> uses it directly as an integer instead of dereferencing it as a
>> pointer, those would be the exceptions to the rule.
>
> So ... do we have a conclusion what to put into the commit message? :)
>
> It looks to me as if kvm-all.c:kvm_vm_ioctl() is using void*. I like
> unsigned long but maybe uintptr_t would be more correct then?
uintptr_t feels more correct - the 3rd (vararg) argument through the
ioctl() syscall is always retrieved using the same size as void*.
>
> Or should kvm_vm_ioctl() be fixed to use something else instead?
> Eric's int would be a semantic change for the 64-bit platforms, no?
My discussion about 'int' vs. 'unsigned long' was in regards to the
second argument KVM_CREATE_VCPU, which your patch does not change
(perhaps my fault for jumping in on a conversation mid-thread without
actually reading your original patch, which I have now done). That is,
KVM_CREATE_VCPU as a constant is always 32 bits (kernel constraint),
widened out to unsigned long when passed to the glibc function (due to
the glibc signature disagreeing with POSIX), then narrowed back down to
32 bits when forwarded to the kernel syscall.
Meanwhile, your patch is fixing the third argument from 'int' to a wider
type, which is necessary for passing that value through varargs when the
receiving end will retrieve the same argument via a void* variable.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 621 bytes --]
next prev parent reply other threads:[~2013-01-21 14:35 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1358456378-29248-1-git-send-email-ehabkost@redhat.com>
[not found] ` <1358456378-29248-3-git-send-email-ehabkost@redhat.com>
2013-01-18 10:58 ` [Qemu-devel] [PATCH for-1.4 02/12] target-i386: Don't set any KVM flag by default if KVM is disabled Andreas Färber
2013-01-18 11:00 ` Gleb Natapov
[not found] ` <1358456378-29248-5-git-send-email-ehabkost@redhat.com>
2013-01-18 11:11 ` [Qemu-devel] [PATCH for-1.4 04/12] kvm: Create kvm_arch_vcpu_id() function Andreas Färber
2013-01-18 12:53 ` Eduardo Habkost
2013-01-18 13:03 ` [Qemu-devel] " Andreas Färber
2013-01-18 14:20 ` Eduardo Habkost
2013-01-18 16:11 ` Eric Blake
2013-01-18 16:40 ` [Qemu-devel] " Eduardo Habkost
2013-01-18 17:46 ` Eric Blake
2013-01-21 13:14 ` [Qemu-devel] " Andreas Färber
2013-01-21 14:35 ` Eric Blake [this message]
2013-01-22 15:54 ` Eduardo Habkost
2013-01-18 15:49 ` [Qemu-devel] [PATCH for-1.4 00/12] target-i386: Fix APIC-ID-based topology (v4) Eduardo Habkost
[not found] ` <1358456378-29248-4-git-send-email-ehabkost@redhat.com>
2013-01-21 3:39 ` [Qemu-devel] [PATCH for-1.4 03/12] pc: Reverse pc_init_pci() compatibility logic Andreas Färber
2013-01-21 11:02 ` Eduardo Habkost
2013-01-21 12:31 ` [Qemu-devel] [PATCH for-1.4 00/12] target-i386: Fix APIC-ID-based topology (v4) Andreas Färber
[not found] ` <1358456378-29248-2-git-send-email-ehabkost@redhat.com>
[not found] ` <50F92F64.5010809@suse.de>
2013-01-18 11:36 ` [PATCH for-1.4 01/12] kvm: Add fake KVM_FEATURE_CLOCKSOURCE_STABLE_BIT for builds withou KVM Eduardo Habkost
2013-01-18 11:48 ` Gleb Natapov
2013-01-18 12:41 ` Eduardo Habkost
[not found] ` <20130122014335.GA31141@amt.cnet>
2013-01-22 4:59 ` Andreas Färber
2013-01-22 13:42 ` [Qemu-devel] " Eduardo Habkost
2013-01-22 21:37 ` Marcelo Tosatti
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=50FD522A.2090706@redhat.com \
--to=eblake@redhat.com \
--cc=afaerber@suse.de \
--cc=anthony@codemonkey.ws \
--cc=ehabkost@redhat.com \
--cc=gleb@redhat.com \
--cc=imammedo@redhat.com \
--cc=kvm@vger.kernel.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox