* [Qemu-devel] KVM call agenda for tuesday 31
@ 2012-01-30 18:55 Juan Quintela
2012-01-30 23:41 ` Andreas Färber
0 siblings, 1 reply; 43+ messages in thread
From: Juan Quintela @ 2012-01-30 18:55 UTC (permalink / raw)
To: KVM devel mailing list, Developers qemu-devel
hi
Please send in any agenda items you are interested in covering.
Cheers,
Juan.
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-01-30 18:55 [Qemu-devel] KVM call agenda for tuesday 31 Juan Quintela
@ 2012-01-30 23:41 ` Andreas Färber
2012-01-30 23:53 ` Anthony Liguori
2012-01-31 13:59 ` Anthony Liguori
0 siblings, 2 replies; 43+ messages in thread
From: Andreas Färber @ 2012-01-30 23:41 UTC (permalink / raw)
To: quintela, Anthony Liguori
Cc: Peter Maydell, KVM devel mailing list, 陳韋任,
Stefan Weil, Developers qemu-devel, Alex Bradbury
Am 30.01.2012 19:55, schrieb Juan Quintela:
> Please send in any agenda items you are interested in covering.
QOM roadmap update:
* Series 3/4 is on the list.
-> Please officially designate a merge date (Friday?).
-> To make review sensible, I ask for a hard device freeze until merged.
I.e., no new devices and no conflicting changes to DeviceInfo.
* Further roadmap: i440FX, CPU, MemoryRegion (when, who, where, how)
VMState:
Anthony specifically said that VMState were not affected by QOM and that
patches should not be deferred until the merge. Yet there's no review
and/or decision-making for a month now. Ping^2 for AHCI+SDHC.
Mascot contest:
Any update? Were there too few entries? Has it been forgotten?
If the contest is still open then that should be stated on the list.
Andreas
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-01-30 23:41 ` Andreas Färber
@ 2012-01-30 23:53 ` Anthony Liguori
2012-01-31 0:37 ` Alexander Graf
` (2 more replies)
2012-01-31 13:59 ` Anthony Liguori
1 sibling, 3 replies; 43+ messages in thread
From: Anthony Liguori @ 2012-01-30 23:53 UTC (permalink / raw)
To: Andreas Färber
Cc: Peter Maydell, KVM devel mailing list, 陳韋任,
quintela, Stefan Weil, Developers qemu-devel, Alex Bradbury
On 01/30/2012 05:41 PM, Andreas Färber wrote:
> Am 30.01.2012 19:55, schrieb Juan Quintela:
>> Please send in any agenda items you are interested in covering.
>
> QOM roadmap update:
> * Series 3/4 is on the list.
> -> Please officially designate a merge date (Friday?).
> -> To make review sensible, I ask for a hard device freeze until merged.
> I.e., no new devices and no conflicting changes to DeviceInfo.
>
> * Further roadmap: i440FX, CPU, MemoryRegion (when, who, where, how)
>
> VMState:
> Anthony specifically said that VMState were not affected by QOM and that
> patches should not be deferred until the merge. Yet there's no review
> and/or decision-making for a month now. Ping^2 for AHCI+SDHC.
Do you have pointers (to pending VMState patches)?
>
> Mascot contest:
> Any update? Were there too few entries? Has it been forgotten?
> If the contest is still open then that should be stated on the list.
Yes, I'm falling victim to perfectionism here attempting to find a clever online
voting mechanism. I'm just going to hold a vote over the mailing list. I'll
post an email tomorrow with details.
Regards,
Anthony Liguori
>
> Andreas
>
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-01-30 23:53 ` Anthony Liguori
@ 2012-01-31 0:37 ` Alexander Graf
2012-01-31 10:49 ` Lluís Vilanova
2012-01-31 13:15 ` Andreas Färber
2 siblings, 0 replies; 43+ messages in thread
From: Alexander Graf @ 2012-01-31 0:37 UTC (permalink / raw)
To: Anthony Liguori
Cc: Peter Maydell, KVM devel mailing list, 陳韋任,
quintela, Stefan Weil, Developers qemu-devel, Andreas Färber,
Alex Bradbury
On 31.01.2012, at 00:53, Anthony Liguori wrote:
> On 01/30/2012 05:41 PM, Andreas Färber wrote:
>> Am 30.01.2012 19:55, schrieb Juan Quintela:
>>> Please send in any agenda items you are interested in covering.
>>
>> QOM roadmap update:
>> * Series 3/4 is on the list.
>> -> Please officially designate a merge date (Friday?).
>> -> To make review sensible, I ask for a hard device freeze until merged.
>> I.e., no new devices and no conflicting changes to DeviceInfo.
>>
>> * Further roadmap: i440FX, CPU, MemoryRegion (when, who, where, how)
>>
>> VMState:
>> Anthony specifically said that VMState were not affected by QOM and that
>> patches should not be deferred until the merge. Yet there's no review
>> and/or decision-making for a month now. Ping^2 for AHCI+SDHC.
>
> Do you have pointers (to pending VMState patches)?
>
>>
>> Mascot contest:
>> Any update? Were there too few entries? Has it been forgotten?
>> If the contest is still open then that should be stated on the list.
>
> Yes, I'm falling victim to perfectionism here attempting to find a clever online voting mechanism. I'm just going to hold a vote over the mailing list. I'll post an email tomorrow with details.
I hear google docs has some sort of online form thing in its docs bits. Might be easier to parse than mails on the ML.
Alex
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-01-30 23:53 ` Anthony Liguori
2012-01-31 0:37 ` Alexander Graf
@ 2012-01-31 10:49 ` Lluís Vilanova
2012-01-31 13:15 ` Andreas Färber
2 siblings, 0 replies; 43+ messages in thread
From: Lluís Vilanova @ 2012-01-31 10:49 UTC (permalink / raw)
To: Anthony Liguori; +Cc: Developers qemu-devel
Anthony Liguori writes:
> On 01/30/2012 05:41 PM, Andreas Färber wrote:
>>
>> Mascot contest:
>> Any update? Were there too few entries? Has it been forgotten?
>> If the contest is still open then that should be stated on the list.
> Yes, I'm falling victim to perfectionism here attempting to find a clever online
> voting mechanism. I'm just going to hold a vote over the mailing list. I'll
> post an email tomorrow with details.
http://www.cs.cornell.edu/andru/civs.html
Lluis
--
"And it's much the same thing with knowledge, for whenever you learn
something new, the whole world becomes that much richer."
-- The Princess of Pure Reason, as told by Norton Juster in The Phantom
Tollbooth
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-01-30 23:53 ` Anthony Liguori
2012-01-31 0:37 ` Alexander Graf
2012-01-31 10:49 ` Lluís Vilanova
@ 2012-01-31 13:15 ` Andreas Färber
2012-01-31 14:01 ` Mitsyanko Igor
` (2 more replies)
2 siblings, 3 replies; 43+ messages in thread
From: Andreas Färber @ 2012-01-31 13:15 UTC (permalink / raw)
To: Anthony Liguori, quintela
Cc: Mitsyanko Igor, Developers qemu-devel, KVM devel mailing list
Am 31.01.2012 00:53, schrieb Anthony Liguori:
> On 01/30/2012 05:41 PM, Andreas Färber wrote:
>> Am 30.01.2012 19:55, schrieb Juan Quintela:
>>> Please send in any agenda items you are interested in covering.
>> VMState:
>> Anthony specifically said that VMState were not affected by QOM and that
>> patches should not be deferred until the merge. Yet there's no review
>> and/or decision-making for a month now. Ping^2 for AHCI+SDHC.
>
> Do you have pointers (to pending VMState patches)?
http://patchwork.ozlabs.org/patch/137732/ (PATCH v4)
It's basically about how to deal with variable-sized arrays. (Alex
mentioned it on one call around November.) I found ways to deal with
subsets of arrays embedded within the struct and variable-sized list of
pointers to structs but no solution for a malloc()'ed array of structs.
Maybe I'm just too stupid to see. Anyway, no one commented since Xmas.
Igor posted (and refined for v2) a patch with a callback-based approach
that I find promising. From my view, unofficially Juan is the VMState
guy, he's been cc'ed. Are we lacking an official maintainer that cares?
Or is Juan the official, undocumented maintainer but simply busy?
SUSE's interest is making AHCI migratable, and my VMState workaround for
that is simply ugly:
http://patchwork.ozlabs.org/patch/133066/ (RFC)
Therefore I'm waiting for some resolution.
Regards,
Andreas
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-01-30 23:41 ` Andreas Färber
2012-01-30 23:53 ` Anthony Liguori
@ 2012-01-31 13:59 ` Anthony Liguori
2012-01-31 14:09 ` Avi Kivity
2012-01-31 16:23 ` Andreas Färber
1 sibling, 2 replies; 43+ messages in thread
From: Anthony Liguori @ 2012-01-31 13:59 UTC (permalink / raw)
To: Andreas Färber
Cc: Peter Maydell, KVM devel mailing list, 陳韋任,
quintela, Stefan Weil, Developers qemu-devel, Alex Bradbury
On 01/30/2012 05:41 PM, Andreas Färber wrote:
> Am 30.01.2012 19:55, schrieb Juan Quintela:
>> Please send in any agenda items you are interested in covering.
>
> QOM roadmap update:
> * Series 3/4 is on the list.
> -> Please officially designate a merge date (Friday?).
> -> To make review sensible, I ask for a hard device freeze until merged.
> I.e., no new devices and no conflicting changes to DeviceInfo.
I put together a few slides to help this discussion:
http://www.codemonkey.ws/files/qom-overview.pdf
Regards,
Anthony Liguori
>
> * Further roadmap: i440FX, CPU, MemoryRegion (when, who, where, how)
>
> VMState:
> Anthony specifically said that VMState were not affected by QOM and that
> patches should not be deferred until the merge. Yet there's no review
> and/or decision-making for a month now. Ping^2 for AHCI+SDHC.
>
> Mascot contest:
> Any update? Were there too few entries? Has it been forgotten?
> If the contest is still open then that should be stated on the list.
>
> Andreas
>
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-01-31 13:15 ` Andreas Färber
@ 2012-01-31 14:01 ` Mitsyanko Igor
2012-08-08 16:25 ` Andreas Färber
2012-01-31 14:12 ` Anthony Liguori
2012-02-09 22:23 ` Peter Maydell
2 siblings, 1 reply; 43+ messages in thread
From: Mitsyanko Igor @ 2012-01-31 14:01 UTC (permalink / raw)
To: Andreas Färber
Cc: Developers qemu-devel, Dmitry Solodkiy, KVM devel mailing list,
quintela
On 01/31/2012 05:15 PM, Andreas Färber wrote:
> Am 31.01.2012 00:53, schrieb Anthony Liguori:
>> On 01/30/2012 05:41 PM, Andreas Färber wrote:
>>> Am 30.01.2012 19:55, schrieb Juan Quintela:
>>>> Please send in any agenda items you are interested in covering.
>
>>> VMState:
>>> Anthony specifically said that VMState were not affected by QOM and that
>>> patches should not be deferred until the merge. Yet there's no review
>>> and/or decision-making for a month now. Ping^2 for AHCI+SDHC.
>>
>> Do you have pointers (to pending VMState patches)?
>
> http://patchwork.ozlabs.org/patch/137732/ (PATCH v4)
>
> It's basically about how to deal with variable-sized arrays. (Alex
> mentioned it on one call around November.) I found ways to deal with
> subsets of arrays embedded within the struct and variable-sized list of
> pointers to structs but no solution for a malloc()'ed array of structs.
> Maybe I'm just too stupid to see. Anyway, no one commented since Xmas.
>
> Igor posted (and refined for v2) a patch with a callback-based approach
> that I find promising. From my view, unofficially Juan is the VMState
> guy, he's been cc'ed. Are we lacking an official maintainer that cares?
> Or is Juan the official, undocumented maintainer but simply busy?
>
> SUSE's interest is making AHCI migratable, and my VMState workaround for
> that is simply ugly:
>
> http://patchwork.ozlabs.org/patch/133066/ (RFC)
>
If I'm not mistaken, if you change AHCIState's ".ports" type to uint32_t
you can use existing VMSTATE_BUFFER_MULTIPLY macro like this:
VMSTATE_BUFFER_MULTIPLY(dev, AHCIState, 0, NULL, 0, ports,
sizeof(AHCIDevice))
VMSTATE_BUFFER_MULTIPLY currently lacks VMS_POINTER flag and therefore
doesn't make any use of _start field (you don't need it anyway)
Nevertheless, VMSTATE_BUFFER_MULTIPLY is just a partial solution to a
bigger set of possible problems. SD card's vmstate implementation
requires shift operation, SDHC gets size from switch {} statement,
something else later may require division or addition e.t.c.,
get_bufsize callback will cover all possible cases.
--
Mitsyanko Igor
ASWG, Moscow R&D center, Samsung Electronics
email: i.mitsyanko@samsung.com
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-01-31 13:59 ` Anthony Liguori
@ 2012-01-31 14:09 ` Avi Kivity
2012-01-31 14:17 ` Anthony Liguori
2012-01-31 16:23 ` Andreas Färber
1 sibling, 1 reply; 43+ messages in thread
From: Avi Kivity @ 2012-01-31 14:09 UTC (permalink / raw)
To: Anthony Liguori
Cc: Peter Maydell, KVM devel mailing list, 陳韋任,
quintela, Stefan Weil, Developers qemu-devel, Andreas Färber,
Alex Bradbury
On 01/31/2012 03:59 PM, Anthony Liguori wrote:
> On 01/30/2012 05:41 PM, Andreas Färber wrote:
>> Am 30.01.2012 19:55, schrieb Juan Quintela:
>>> Please send in any agenda items you are interested in covering.
>>
>> QOM roadmap update:
>> * Series 3/4 is on the list.
>> -> Please officially designate a merge date (Friday?).
>> -> To make review sensible, I ask for a hard device freeze until
>> merged.
>> I.e., no new devices and no conflicting changes to DeviceInfo.
>
> I put together a few slides to help this discussion:
>
> http://www.codemonkey.ws/files/qom-overview.pdf
>
That was helpful, thanks.
Can you clarify
- Types and their properties will be ABI compatible
- Types and properties will not be backwards compatible
– We can re-examine this as the device model matures and stabilizes
the first two seem very similar, except for the "not".
--
error compiling committee.c: too many arguments to function
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-01-31 13:15 ` Andreas Färber
2012-01-31 14:01 ` Mitsyanko Igor
@ 2012-01-31 14:12 ` Anthony Liguori
2012-01-31 15:04 ` Michael S. Tsirkin
2012-01-31 15:12 ` Paolo Bonzini
2012-02-09 22:23 ` Peter Maydell
2 siblings, 2 replies; 43+ messages in thread
From: Anthony Liguori @ 2012-01-31 14:12 UTC (permalink / raw)
To: Andreas Färber
Cc: Mitsyanko Igor, Developers qemu-devel, KVM devel mailing list,
quintela
On 01/31/2012 07:15 AM, Andreas Färber wrote:
> Am 31.01.2012 00:53, schrieb Anthony Liguori:
>> On 01/30/2012 05:41 PM, Andreas Färber wrote:
>>> Am 30.01.2012 19:55, schrieb Juan Quintela:
>>>> Please send in any agenda items you are interested in covering.
>
>>> VMState:
>>> Anthony specifically said that VMState were not affected by QOM and that
>>> patches should not be deferred until the merge. Yet there's no review
>>> and/or decision-making for a month now. Ping^2 for AHCI+SDHC.
>>
>> Do you have pointers (to pending VMState patches)?
>
> http://patchwork.ozlabs.org/patch/137732/ (PATCH v4)
>
> It's basically about how to deal with variable-sized arrays. (Alex
> mentioned it on one call around November.) I found ways to deal with
> subsets of arrays embedded within the struct and variable-sized list of
> pointers to structs but no solution for a malloc()'ed array of structs.
> Maybe I'm just too stupid to see. Anyway, no one commented since Xmas.
/me puts on his flame proof suit
Don't use VMState. Just open code a save/restore function. VMState is too
limited in how it handles complex data structures.
I really believe the only long term solution we're going to get to here is
something that uses a builder interface (like Visitors).
Regards,
Anthony Liguori
>
> Igor posted (and refined for v2) a patch with a callback-based approach
> that I find promising. From my view, unofficially Juan is the VMState
> guy, he's been cc'ed. Are we lacking an official maintainer that cares?
> Or is Juan the official, undocumented maintainer but simply busy?
>
> SUSE's interest is making AHCI migratable, and my VMState workaround for
> that is simply ugly:
>
> http://patchwork.ozlabs.org/patch/133066/ (RFC)
>
> Therefore I'm waiting for some resolution.
>
> Regards,
> Andreas
>
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-01-31 14:09 ` Avi Kivity
@ 2012-01-31 14:17 ` Anthony Liguori
2012-01-31 14:44 ` Avi Kivity
0 siblings, 1 reply; 43+ messages in thread
From: Anthony Liguori @ 2012-01-31 14:17 UTC (permalink / raw)
To: Avi Kivity
Cc: Peter Maydell, KVM devel mailing list, 陳韋任,
quintela, Stefan Weil, Developers qemu-devel, Andreas Färber,
Alex Bradbury
On 01/31/2012 08:09 AM, Avi Kivity wrote:
> On 01/31/2012 03:59 PM, Anthony Liguori wrote:
>> On 01/30/2012 05:41 PM, Andreas Färber wrote:
>>> Am 30.01.2012 19:55, schrieb Juan Quintela:
>>>> Please send in any agenda items you are interested in covering.
>>>
>>> QOM roadmap update:
>>> * Series 3/4 is on the list.
>>> -> Please officially designate a merge date (Friday?).
>>> -> To make review sensible, I ask for a hard device freeze until
>>> merged.
>>> I.e., no new devices and no conflicting changes to DeviceInfo.
>>
>> I put together a few slides to help this discussion:
>>
>> http://www.codemonkey.ws/files/qom-overview.pdf
>>
>
> That was helpful, thanks.
>
> Can you clarify
>
> - Types and their properties will be ABI compatible
> - Types and properties will not be backwards compatible
> – We can re-examine this as the device model matures and stabilizes
>
> the first two seem very similar, except for the "not".
I guess I really mean QMP compatible. The expectation is that well written
management code does:
if (check_for_command("qom-list")) {
run_command("qom-list", "/");
}
ABI compatible means that if qom-list is there, it's semantics never change.
Backwards compatibility would mean that once qom-list is introduced, it never
goes away.
In terms of QOM types, we won't guarantee that a Type will stick around forever,
but we will guarantee if it's there, it'll behave in a certain way.
When the device model stabilizes over time, we can revisit this, but in the 1.x
series, I'm sure we're going to go through a few significant refactorings that
change types significantly.
Regards,
Anthony Liguori
>
>
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-01-31 14:17 ` Anthony Liguori
@ 2012-01-31 14:44 ` Avi Kivity
0 siblings, 0 replies; 43+ messages in thread
From: Avi Kivity @ 2012-01-31 14:44 UTC (permalink / raw)
To: Anthony Liguori
Cc: Peter Maydell, KVM devel mailing list, 陳韋任,
quintela, Stefan Weil, Developers qemu-devel, Andreas Färber,
Alex Bradbury
On 01/31/2012 04:17 PM, Anthony Liguori wrote:
> On 01/31/2012 08:09 AM, Avi Kivity wrote:
>> On 01/31/2012 03:59 PM, Anthony Liguori wrote:
>>> On 01/30/2012 05:41 PM, Andreas Färber wrote:
>>>> Am 30.01.2012 19:55, schrieb Juan Quintela:
>>>>> Please send in any agenda items you are interested in covering.
>>>>
>>>> QOM roadmap update:
>>>> * Series 3/4 is on the list.
>>>> -> Please officially designate a merge date (Friday?).
>>>> -> To make review sensible, I ask for a hard device freeze until
>>>> merged.
>>>> I.e., no new devices and no conflicting changes to DeviceInfo.
>>>
>>> I put together a few slides to help this discussion:
>>>
>>> http://www.codemonkey.ws/files/qom-overview.pdf
>>>
>>
>> That was helpful, thanks.
>>
>> Can you clarify
>>
>> - Types and their properties will be ABI compatible
>> - Types and properties will not be backwards compatible
>> – We can re-examine this as the device model matures and stabilizes
>>
>> the first two seem very similar, except for the "not".
>
> I guess I really mean QMP compatible. The expectation is that well
> written management code does:
>
> if (check_for_command("qom-list")) {
> run_command("qom-list", "/");
> }
>
> ABI compatible means that if qom-list is there, it's semantics never
> change. Backwards compatibility would mean that once qom-list is
> introduced, it never goes away.
>
> In terms of QOM types, we won't guarantee that a Type will stick
> around forever, but we will guarantee if it's there, it'll behave in a
> certain way.
>
> When the device model stabilizes over time, we can revisit this, but
> in the 1.x series, I'm sure we're going to go through a few
> significant refactorings that change types significantly.
Ok. We have to communicate this very carefully. If a management tool
uses something that is ABI compatible, but not backwards compatible, and
lacks a known alternative at the time of writing the management tool,
then the "ABI-compatible-but-not-backwards-compatible" property becomes
"not backwards compatible" to the management tool's users.
--
error compiling committee.c: too many arguments to function
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-01-31 14:12 ` Anthony Liguori
@ 2012-01-31 15:04 ` Michael S. Tsirkin
2012-01-31 15:10 ` Michael S. Tsirkin
2012-01-31 15:12 ` Paolo Bonzini
1 sibling, 1 reply; 43+ messages in thread
From: Michael S. Tsirkin @ 2012-01-31 15:04 UTC (permalink / raw)
To: Anthony Liguori
Cc: Developers qemu-devel, Mitsyanko Igor, Andreas Färber,
KVM devel mailing list, quintela
On Tue, Jan 31, 2012 at 08:12:29AM -0600, Anthony Liguori wrote:
> On 01/31/2012 07:15 AM, Andreas Färber wrote:
> >Am 31.01.2012 00:53, schrieb Anthony Liguori:
> >>On 01/30/2012 05:41 PM, Andreas Färber wrote:
> >>>Am 30.01.2012 19:55, schrieb Juan Quintela:
> >>>>Please send in any agenda items you are interested in covering.
> >
> >>>VMState:
> >>>Anthony specifically said that VMState were not affected by QOM and that
> >>>patches should not be deferred until the merge. Yet there's no review
> >>>and/or decision-making for a month now. Ping^2 for AHCI+SDHC.
> >>
> >>Do you have pointers (to pending VMState patches)?
> >
> >http://patchwork.ozlabs.org/patch/137732/ (PATCH v4)
> >
> >It's basically about how to deal with variable-sized arrays. (Alex
> >mentioned it on one call around November.) I found ways to deal with
> >subsets of arrays embedded within the struct and variable-sized list of
> >pointers to structs but no solution for a malloc()'ed array of structs.
> >Maybe I'm just too stupid to see. Anyway, no one commented since Xmas.
>
> /me puts on his flame proof suit
>
> Don't use VMState. Just open code a save/restore function. VMState
> is too limited in how it handles complex data structures.
>
> I really believe the only long term solution we're going to get to
> here is something that uses a builder interface (like Visitors).
>
> Regards,
>
> Anthony Liguori
So the TPM patches started implementing a visitor interface
for BER, they are still blocked, right?
> >
> >Igor posted (and refined for v2) a patch with a callback-based approach
> >that I find promising. From my view, unofficially Juan is the VMState
> >guy, he's been cc'ed. Are we lacking an official maintainer that cares?
> >Or is Juan the official, undocumented maintainer but simply busy?
> >
> >SUSE's interest is making AHCI migratable, and my VMState workaround for
> >that is simply ugly:
> >
> >http://patchwork.ozlabs.org/patch/133066/ (RFC)
> >
> >Therefore I'm waiting for some resolution.
> >
> >Regards,
> >Andreas
> >
>
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-01-31 15:04 ` Michael S. Tsirkin
@ 2012-01-31 15:10 ` Michael S. Tsirkin
0 siblings, 0 replies; 43+ messages in thread
From: Michael S. Tsirkin @ 2012-01-31 15:10 UTC (permalink / raw)
To: Anthony Liguori
Cc: Developers qemu-devel, Mitsyanko Igor, Andreas Färber,
KVM devel mailing list, quintela
On Tue, Jan 31, 2012 at 05:04:48PM +0200, Michael S. Tsirkin wrote:
> On Tue, Jan 31, 2012 at 08:12:29AM -0600, Anthony Liguori wrote:
> > On 01/31/2012 07:15 AM, Andreas Färber wrote:
> > >Am 31.01.2012 00:53, schrieb Anthony Liguori:
> > >>On 01/30/2012 05:41 PM, Andreas Färber wrote:
> > >>>Am 30.01.2012 19:55, schrieb Juan Quintela:
> > >>>>Please send in any agenda items you are interested in covering.
> > >
> > >>>VMState:
> > >>>Anthony specifically said that VMState were not affected by QOM and that
> > >>>patches should not be deferred until the merge. Yet there's no review
> > >>>and/or decision-making for a month now. Ping^2 for AHCI+SDHC.
> > >>
> > >>Do you have pointers (to pending VMState patches)?
> > >
> > >http://patchwork.ozlabs.org/patch/137732/ (PATCH v4)
> > >
> > >It's basically about how to deal with variable-sized arrays. (Alex
> > >mentioned it on one call around November.) I found ways to deal with
> > >subsets of arrays embedded within the struct and variable-sized list of
> > >pointers to structs but no solution for a malloc()'ed array of structs.
> > >Maybe I'm just too stupid to see. Anyway, no one commented since Xmas.
> >
> > /me puts on his flame proof suit
> >
> > Don't use VMState. Just open code a save/restore function. VMState
> > is too limited in how it handles complex data structures.
> >
> > I really believe the only long term solution we're going to get to
> > here is something that uses a builder interface (like Visitors).
> >
> > Regards,
> >
> > Anthony Liguori
>
> So the TPM patches started implementing a visitor interface
> for BER, they are still blocked, right?
And by the way, I believe we really should switch to
something like BER and just drop the legacy migration
format - being non self delimiting makes it just too
painful for words to abstract, and attempts to
hide that mess behind a visitor interface will just cause
more cruft to accumulate, and cause inefficiencies
such as extra data copies.
> > >
> > >Igor posted (and refined for v2) a patch with a callback-based approach
> > >that I find promising. From my view, unofficially Juan is the VMState
> > >guy, he's been cc'ed. Are we lacking an official maintainer that cares?
> > >Or is Juan the official, undocumented maintainer but simply busy?
> > >
> > >SUSE's interest is making AHCI migratable, and my VMState workaround for
> > >that is simply ugly:
> > >
> > >http://patchwork.ozlabs.org/patch/133066/ (RFC)
> > >
> > >Therefore I'm waiting for some resolution.
> > >
> > >Regards,
> > >Andreas
> > >
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe kvm" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-01-31 14:12 ` Anthony Liguori
2012-01-31 15:04 ` Michael S. Tsirkin
@ 2012-01-31 15:12 ` Paolo Bonzini
1 sibling, 0 replies; 43+ messages in thread
From: Paolo Bonzini @ 2012-01-31 15:12 UTC (permalink / raw)
To: Anthony Liguori
Cc: Developers qemu-devel, Mitsyanko Igor, Andreas Färber,
KVM devel mailing list, quintela
On 01/31/2012 03:12 PM, Anthony Liguori wrote:
>
> Don't use VMState. Just open code a save/restore function. VMState is
> too limited in how it handles complex data structures.
>
> I really believe the only long term solution we're going to get to here
> is something that uses a builder interface (like Visitors).
Visitors for complex data structures still require you separate get/set
functions. VMState was created to avoid having to write things twice
and avoid getting the two out of sync.
Paolo
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-01-31 13:59 ` Anthony Liguori
2012-01-31 14:09 ` Avi Kivity
@ 2012-01-31 16:23 ` Andreas Färber
1 sibling, 0 replies; 43+ messages in thread
From: Andreas Färber @ 2012-01-31 16:23 UTC (permalink / raw)
To: Anthony Liguori
Cc: Peter Maydell, KVM devel mailing list, 陳韋任,
quintela, Stefan Weil, Developers qemu-devel, Alex Bradbury
Am 31.01.2012 14:59, schrieb Anthony Liguori:
> On 01/30/2012 05:41 PM, Andreas Färber wrote:
>> Am 30.01.2012 19:55, schrieb Juan Quintela:
>>> Please send in any agenda items you are interested in covering.
>>
>> QOM roadmap update:
>> * Series 3/4 is on the list.
>> -> Please officially designate a merge date (Friday?).
>> -> To make review sensible, I ask for a hard device freeze until merged.
>> I.e., no new devices and no conflicting changes to DeviceInfo.
>
> I put together a few slides to help this discussion:
>
> http://www.codemonkey.ws/files/qom-overview.pdf
So basically we barely managed to walk through the slides without
getting into any of the requested agenda points. ;)
Re slide 5 I could use a more detailed explanation.
>From what I understand, ...
...types are registered through device_init() and module_call_init().
...classes are lazily initialized, eventually calling class_init.
...objects are instantiated through object_new[_with_type](), eventually
calling instance_init, by convention named initfn.
Up to here would be step 1.
How does the realize step 2 fit in technically? What types does this
apply to? All? Who calls realize? Where should class authors draw the
line between the two? (DOs and DON'Ts)
Then some conceptual questions:
How is inheritance (virtual methods in C++) supposed to work? (in my
case a reset function overwritten by each subclass) I've seen code in
series 3/4 calling methods the parent class defines in its header,
replacing the parent class' function pointer? Or should derived classes
store their parent's function pointer in a new ObjectClass and invoke
that? (i.e., are such parent functions supposed to be public or static)
When you talk about setting properties, does that refer to using the
property accessor functions moved to Object in series 3/4? Or should
qdev devices that currently expose only arbitrary setup functions
instead move their state to a header file so that it can be written into
by the parent? If so, should such headers reside in hw/ or include/qemu/?
Andreas
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-01-31 13:15 ` Andreas Färber
2012-01-31 14:01 ` Mitsyanko Igor
2012-01-31 14:12 ` Anthony Liguori
@ 2012-02-09 22:23 ` Peter Maydell
2012-02-09 22:37 ` Anthony Liguori
2012-02-21 15:33 ` Peter Maydell
2 siblings, 2 replies; 43+ messages in thread
From: Peter Maydell @ 2012-02-09 22:23 UTC (permalink / raw)
To: Andreas Färber
Cc: KVM devel mailing list, Mitsyanko Igor, Developers qemu-devel,
quintela
Ping re the VMState and variable sized arrays issue. I don't
see any consensus in this discussion for a different approach,
so should we just commit Mitsyanko's patchset?
- PMM
On 31 January 2012 13:15, Andreas Färber <afaerber@suse.de> wrote:
> Am 31.01.2012 00:53, schrieb Anthony Liguori:
>> On 01/30/2012 05:41 PM, Andreas Färber wrote:
>>> Am 30.01.2012 19:55, schrieb Juan Quintela:
>>>> Please send in any agenda items you are interested in covering.
>
>>> VMState:
>>> Anthony specifically said that VMState were not affected by QOM and that
>>> patches should not be deferred until the merge. Yet there's no review
>>> and/or decision-making for a month now. Ping^2 for AHCI+SDHC.
>>
>> Do you have pointers (to pending VMState patches)?
>
> http://patchwork.ozlabs.org/patch/137732/ (PATCH v4)
>
> It's basically about how to deal with variable-sized arrays. (Alex
> mentioned it on one call around November.) I found ways to deal with
> subsets of arrays embedded within the struct and variable-sized list of
> pointers to structs but no solution for a malloc()'ed array of structs.
> Maybe I'm just too stupid to see. Anyway, no one commented since Xmas.
>
> Igor posted (and refined for v2) a patch with a callback-based approach
> that I find promising. From my view, unofficially Juan is the VMState
> guy, he's been cc'ed. Are we lacking an official maintainer that cares?
> Or is Juan the official, undocumented maintainer but simply busy?
>
> SUSE's interest is making AHCI migratable, and my VMState workaround for
> that is simply ugly:
>
> http://patchwork.ozlabs.org/patch/133066/ (RFC)
>
> Therefore I'm waiting for some resolution.
>
> Regards,
> Andreas
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-02-09 22:23 ` Peter Maydell
@ 2012-02-09 22:37 ` Anthony Liguori
2012-02-09 22:42 ` Peter Maydell
2012-02-09 23:17 ` Andreas Färber
2012-02-21 15:33 ` Peter Maydell
1 sibling, 2 replies; 43+ messages in thread
From: Anthony Liguori @ 2012-02-09 22:37 UTC (permalink / raw)
To: Peter Maydell
Cc: quintela, Mitsyanko Igor, Andreas Färber,
KVM devel mailing list, Developers qemu-devel
On 02/09/2012 04:23 PM, Peter Maydell wrote:
> Ping re the VMState and variable sized arrays issue. I don't
> see any consensus in this discussion for a different approach,
> so should we just commit Mitsyanko's patchset?
I don't know if I mentioned this, but do we really need variable sizes?
Can we just use a fixed size (pre-allocated) array and then use a VMSTATE_SUB_ARRAY?
If it's truly variable size with no upper bound, then that's actually a security
problem since it implies a guest can do unbounded memory allocation.
Regards,
Anthony Liguori
>
> - PMM
>
> On 31 January 2012 13:15, Andreas Färber<afaerber@suse.de> wrote:
>> Am 31.01.2012 00:53, schrieb Anthony Liguori:
>>> On 01/30/2012 05:41 PM, Andreas Färber wrote:
>>>> Am 30.01.2012 19:55, schrieb Juan Quintela:
>>>>> Please send in any agenda items you are interested in covering.
>>
>>>> VMState:
>>>> Anthony specifically said that VMState were not affected by QOM and that
>>>> patches should not be deferred until the merge. Yet there's no review
>>>> and/or decision-making for a month now. Ping^2 for AHCI+SDHC.
>>>
>>> Do you have pointers (to pending VMState patches)?
>>
>> http://patchwork.ozlabs.org/patch/137732/ (PATCH v4)
>>
>> It's basically about how to deal with variable-sized arrays. (Alex
>> mentioned it on one call around November.) I found ways to deal with
>> subsets of arrays embedded within the struct and variable-sized list of
>> pointers to structs but no solution for a malloc()'ed array of structs.
>> Maybe I'm just too stupid to see. Anyway, no one commented since Xmas.
>>
>> Igor posted (and refined for v2) a patch with a callback-based approach
>> that I find promising. From my view, unofficially Juan is the VMState
>> guy, he's been cc'ed. Are we lacking an official maintainer that cares?
>> Or is Juan the official, undocumented maintainer but simply busy?
>>
>> SUSE's interest is making AHCI migratable, and my VMState workaround for
>> that is simply ugly:
>>
>> http://patchwork.ozlabs.org/patch/133066/ (RFC)
>>
>> Therefore I'm waiting for some resolution.
>>
>> Regards,
>> Andreas
>
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-02-09 22:37 ` Anthony Liguori
@ 2012-02-09 22:42 ` Peter Maydell
2012-02-09 23:17 ` Andreas Färber
1 sibling, 0 replies; 43+ messages in thread
From: Peter Maydell @ 2012-02-09 22:42 UTC (permalink / raw)
To: Anthony Liguori
Cc: quintela, Mitsyanko Igor, Andreas Färber,
KVM devel mailing list, Developers qemu-devel
On 9 February 2012 22:37, Anthony Liguori <anthony@codemonkey.ws> wrote:
> I don't know if I mentioned this, but do we really need variable sizes?
>
> Can we just use a fixed size (pre-allocated) array and then use a
> VMSTATE_SUB_ARRAY?
>
> If it's truly variable size with no upper bound, then that's actually a
> security problem since it implies a guest can do unbounded memory
> allocation.
The array in question is a property of the number of sectors on
the sd card, so it's only unbounded in the same sense that you
could pass an enormous disk image to qemu...
-- PMM
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-02-09 22:37 ` Anthony Liguori
2012-02-09 22:42 ` Peter Maydell
@ 2012-02-09 23:17 ` Andreas Färber
2012-02-09 23:21 ` Alexander Graf
1 sibling, 1 reply; 43+ messages in thread
From: Andreas Färber @ 2012-02-09 23:17 UTC (permalink / raw)
To: Anthony Liguori
Cc: Peter Maydell, Mitsyanko Igor, KVM devel mailing list, quintela,
Alexander Graf, Developers qemu-devel
Am 09.02.2012 23:37, schrieb Anthony Liguori:
> On 02/09/2012 04:23 PM, Peter Maydell wrote:
>> Ping re the VMState and variable sized arrays issue. I don't
>> see any consensus in this discussion for a different approach,
>> so should we just commit Mitsyanko's patchset?
>
> I don't know if I mentioned this, but do we really need variable sizes?
You didn't in this context. :)
I didn't write the original code so don't know what use cases beyond
ICH9 it had in mind. Alex?
> Can we just use a fixed size (pre-allocated) array and then use a
> VMSTATE_SUB_ARRAY?
my RFC did something similar. Apparently I forgot the link:
http://patchwork.ozlabs.org/patch/133065/
In the case of AHCI allocating 32 structs when we know we only need six
seems like a waste - although I agree that preallocation can be a good
thing (but that's for a different thread).
> If it's truly variable size with no upper bound, then that's actually a
> security problem since it implies a guest can do unbounded memory
> allocation.
In the cases we're talking about here, I believe the allocation is
always in the init or realize phase based on user parameters, not the guest.
And whatever we decide, we definitely need better documentation on
VMState! There's also a small part that wasn't moved to vmstate.h. I'd
volunteer for the easy macros but honestly don't understand all of them.
Andreas
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-02-09 23:17 ` Andreas Färber
@ 2012-02-09 23:21 ` Alexander Graf
0 siblings, 0 replies; 43+ messages in thread
From: Alexander Graf @ 2012-02-09 23:21 UTC (permalink / raw)
To: Andreas Färber
Cc: Peter Maydell, Mitsyanko Igor, KVM devel mailing list, quintela,
Developers qemu-devel
On 10.02.2012, at 00:17, Andreas Färber wrote:
> Am 09.02.2012 23:37, schrieb Anthony Liguori:
>> On 02/09/2012 04:23 PM, Peter Maydell wrote:
>>> Ping re the VMState and variable sized arrays issue. I don't
>>> see any consensus in this discussion for a different approach,
>>> so should we just commit Mitsyanko's patchset?
>>
>> I don't know if I mentioned this, but do we really need variable sizes?
>
> You didn't in this context. :)
>
> I didn't write the original code so don't know what use cases beyond
> ICH9 it had in mind. Alex?
I'm having a hard time to grasp the question. AHCI is basically the spec to specific implementations. ICH9 implements AHCI, just like Nehalem implements x86. There are other chips out there that also implement AHCI.
As long as we don't need any other, I don't think it'd make sense to add more AHCI consumers, but I certainly don't want to block the road in case someone needs it. There are AHCI implementations for ARM for example. Didn't the Calxeda guys hack on something there?
Alex
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-02-09 22:23 ` Peter Maydell
2012-02-09 22:37 ` Anthony Liguori
@ 2012-02-21 15:33 ` Peter Maydell
2012-02-22 8:06 ` Mitsyanko Igor
` (2 more replies)
1 sibling, 3 replies; 43+ messages in thread
From: Peter Maydell @ 2012-02-21 15:33 UTC (permalink / raw)
To: Andreas Färber
Cc: KVM devel mailing list, Mitsyanko Igor, Developers qemu-devel,
quintela
On 9 February 2012 22:23, Peter Maydell <peter.maydell@linaro.org> wrote:
> Ping re the VMState and variable sized arrays issue. I don't
> see any consensus in this discussion for a different approach,
> so should we just commit Mitsyanko's patchset?
>From an IRC conversation I just had with Anthony and Juan:
===begin==
14:51 < pm215> quintela: do you have an opinion on the vmstate variable-
length array stuff (needed for sd card) ?
14:51 < quintela> pm havent looked, email title?
14:52 < pm215> "KVM call agenda for tuesday 31" is the most recent
discussion :-)
14:53 < pm215> http://patchwork.ozlabs.org/patch/137732/ and
http://patchwork.ozlabs.org/patch/137733/ are the relevant patches
14:54 < quintela> pm215: found it, that it is a difficult thing to do (TM)
14:54 < quintela> it should be on the "card" file, or whatever :-(
14:55 < quintela> notice the "should" part.
14:55 < pm215> I'm not sure what you mean, can you elaborate?
14:57 < quintela> pm215: sect is number of sectors, right?
14:58 < pm215> yes
14:59 < quintela> so, a 1GB card would have around 8MB array?
14:59 < quintela> took or left some byties here andthere.
14:59 < quintela> bytes indeed.
14:59 < quintela> I _think_ that we should put that in a save_live
section, but that is just me (TM)
15:00 < quintela> I guess that at some point, people are going to need
bigger SD cards (16GB are already on the wild, right)
15:00 < quintela> and that would make live migration just impossible
15:00 < quintela> or very slow, that is completely equivalent.
15:01 < quintela> it is my understanding that AHCI is using similar code,
or did I missread some of the information?
15:03 < pm215> I think alex would like ahci to use a similar 'variable
length array' thing, but in that case the array is much smaller
15:03 < aliguori> pm215, it's large but of bounded size, right?
15:03 < aliguori> for SD cards?
15:03 < quintela> aliguori: number of sectors * 4 bytes
15:03 < quintela> aliguori: so hugeeeeeeeeeeeeeeeeee
15:04 < quintela> 8MB array for each 1GB of disk.
15:04 < quintela> but or take some bytes.
15:04 < aliguori> quintela, you cannot save that much data via savevm
15:04 < quintela> this is more than all other devices combined in a
normal instalaltion.
15:04 < aliguori> that's too much
15:04 < quintela> aliguori: see my answer, we need a save_live section,
really.
15:04 < aliguori> it will screw up the live migration downtime algorithm
15:04 < aliguori> pm215, ^
15:04 < aliguori> or just treat it as a ram section
15:05 < aliguori> qemu_ram_alloc() it, and call it a day
15:05 < pm215> the spec isn't very clear, but I think technically this
info should go in the sd card image, except there's no way to tack
additional info into a raw file
15:05 < aliguori> pm215, yeah, qemu_ram_alloc() is the way to go I think,
that makes it effectively volatile on-card RAM
15:05 < quintela> pm215: I fully agree that it should go into the card
image, but ..... no space for it :-(
15:05 < aliguori> which i think makes sense
15:05 < quintela> pm215: another thing, forgetting about migration at all.
15:06 < quintela> how does this work if you stop marchine and restart
it again?
15:06 * quintela guess that it is stored somewhere?
15:06 < quintela> s/marchine/machine/
15:06 < pm215> no, we just assume that any fresh sd card image has no
write-protect set up
15:07 < quintela> pm215: what is stored on that image? /me would have
assumed that wearing information
15:07 < quintela> but that is without reading the whole code.
15:09 < quintela> humm, it looks like only 1 bit is used for each sector,
why are we storing 32 bits if we only use 1 bit?
15:09 < pm215> it's write-protect : you can set parts of the sd card to
not be writeable (with a granularity of a "write-protect group size")
15:09 < pm215> we probably don't implement fantastically efficiently
15:10 < quintela> pm215: ok, only 1 bit is needed.
15:10 < quintela> we can move to 1bit/sector (8 times smaller)
15:10 < quintela> but I still think that doing the qemu_ram_alloc()
trick that aliguori pointed is the easiest way to fix it
15:11 < quintela> you can create a ram_save_live section, but it is
going to be more complex for almost no gain
15:11 < pm215> ah, so we qemu_ram_alloc() it and then the contents get
transferred in the same way as main memory ?
15:12 < pm215> ...that is in exec-obsolete.h and marked as "to be
removed soon"...
15:13 < aliguori> pm215, yeah, so you'll need to create it using
whatever the new fancy memory api interface is
15:13 < aliguori> pm215, note that whenever you touch that memory, you
have to set the dirty bits appropriately
15:13 < aliguori> or else live migration won't work
15:14 < quintela> aliguori: if they have to touch the dirty bits, it is
equivalent to do their own save_live section.
15:14 < quintela> but I agree that this is the only "easy" solution.
15:17 < pm215> doesn't sound too hard...
15:18 < quintela> as usual with vmstate, problem is testing (althought
shouldn't be very difficult, either)
===endit===
Short summary:
* switch wp groups to bitfield rather than int array
* convert sd.c to use memory_region_init_ram() to allocate the wp groups
(being careful to use memory_region_set_dirty() when we touch them)
* we don't need variable-length fields for sd.c any more
* rest of the vmstate conversion is straightforward
-- PMM
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-02-21 15:33 ` Peter Maydell
@ 2012-02-22 8:06 ` Mitsyanko Igor
2012-03-05 13:38 ` Igor Mitsyanko
2012-03-12 9:43 ` Igor Mitsyanko
2 siblings, 0 replies; 43+ messages in thread
From: Mitsyanko Igor @ 2012-02-22 8:06 UTC (permalink / raw)
To: Peter Maydell
Cc: Developers qemu-devel, KVM devel mailing list,
Andreas Färber, quintela
On 02/21/2012 07:33 PM, Peter Maydell wrote:
> Short summary:
> * switch wp groups to bitfield rather than int array
> * convert sd.c to use memory_region_init_ram() to allocate the wp groups
> (being careful to use memory_region_set_dirty() when we touch them)
> * we don't need variable-length fields for sd.c any more
> * rest of the vmstate conversion is straightforward
OK, got it.
But it's not clear to me, have you decided against introducing
.get_bufsize completely or just for sd.c? I still think it's a good idea
and I wouldn't mind to use it in SD host controller implementation to
retrieve buffer size directly from capabilities register, but I can take
another approach for this of course.
--
Mitsyanko Igor
ASWG, Moscow R&D center, Samsung Electronics
email: i.mitsyanko@samsung.com
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-02-21 15:33 ` Peter Maydell
2012-02-22 8:06 ` Mitsyanko Igor
@ 2012-03-05 13:38 ` Igor Mitsyanko
2012-03-05 14:13 ` Avi Kivity
2012-03-12 9:43 ` Igor Mitsyanko
2 siblings, 1 reply; 43+ messages in thread
From: Igor Mitsyanko @ 2012-03-05 13:38 UTC (permalink / raw)
To: Peter Maydell
Cc: KVM devel mailing list, quintela, Developers qemu-devel,
Dmitry Solodkiy, Anthony Liguori, Andreas Färber
On 02/21/2012 07:33 PM, Peter Maydell wrote:
> On 9 February 2012 22:23, Peter Maydell<peter.maydell@linaro.org> wrote:
>> Ping re the VMState and variable sized arrays issue. I don't
>> see any consensus in this discussion for a different approach,
>> so should we just commit Mitsyanko's patchset?
>
> From an IRC conversation I just had with Anthony and Juan:
> ===begin==
> 14:51< pm215> quintela: do you have an opinion on the vmstate variable-
> length array stuff (needed for sd card) ?
> 14:51< quintela> pm havent looked, email title?
> 14:52< pm215> "KVM call agenda for tuesday 31" is the most recent
> discussion :-)
> 14:53< pm215> http://patchwork.ozlabs.org/patch/137732/ and
> http://patchwork.ozlabs.org/patch/137733/ are the relevant patches
> 14:54< quintela> pm215: found it, that it is a difficult thing to do (TM)
> 14:54< quintela> it should be on the "card" file, or whatever :-(
> 14:55< quintela> notice the "should" part.
> 14:55< pm215> I'm not sure what you mean, can you elaborate?
> 14:57< quintela> pm215: sect is number of sectors, right?
> 14:58< pm215> yes
> 14:59< quintela> so, a 1GB card would have around 8MB array?
> 14:59< quintela> took or left some byties here andthere.
> 14:59< quintela> bytes indeed.
> 14:59< quintela> I _think_ that we should put that in a save_live
> section, but that is just me (TM)
> 15:00< quintela> I guess that at some point, people are going to need
> bigger SD cards (16GB are already on the wild, right)
> 15:00< quintela> and that would make live migration just impossible
> 15:00< quintela> or very slow, that is completely equivalent.
> 15:01< quintela> it is my understanding that AHCI is using similar code,
> or did I missread some of the information?
> 15:03< pm215> I think alex would like ahci to use a similar 'variable
> length array' thing, but in that case the array is much smaller
> 15:03< aliguori> pm215, it's large but of bounded size, right?
> 15:03< aliguori> for SD cards?
> 15:03< quintela> aliguori: number of sectors * 4 bytes
> 15:03< quintela> aliguori: so hugeeeeeeeeeeeeeeeeee
> 15:04< quintela> 8MB array for each 1GB of disk.
> 15:04< quintela> but or take some bytes.
> 15:04< aliguori> quintela, you cannot save that much data via savevm
> 15:04< quintela> this is more than all other devices combined in a
> normal instalaltion.
> 15:04< aliguori> that's too much
> 15:04< quintela> aliguori: see my answer, we need a save_live section,
> really.
> 15:04< aliguori> it will screw up the live migration downtime algorithm
> 15:04< aliguori> pm215, ^
> 15:04< aliguori> or just treat it as a ram section
> 15:05< aliguori> qemu_ram_alloc() it, and call it a day
> 15:05< pm215> the spec isn't very clear, but I think technically this
> info should go in the sd card image, except there's no way to tack
> additional info into a raw file
> 15:05< aliguori> pm215, yeah, qemu_ram_alloc() is the way to go I think,
> that makes it effectively volatile on-card RAM
> 15:05< quintela> pm215: I fully agree that it should go into the card
> image, but ..... no space for it :-(
> 15:05< aliguori> which i think makes sense
> 15:05< quintela> pm215: another thing, forgetting about migration at all.
> 15:06< quintela> how does this work if you stop marchine and restart
> it again?
> 15:06 * quintela guess that it is stored somewhere?
> 15:06< quintela> s/marchine/machine/
> 15:06< pm215> no, we just assume that any fresh sd card image has no
> write-protect set up
> 15:07< quintela> pm215: what is stored on that image? /me would have
> assumed that wearing information
> 15:07< quintela> but that is without reading the whole code.
> 15:09< quintela> humm, it looks like only 1 bit is used for each sector,
> why are we storing 32 bits if we only use 1 bit?
> 15:09< pm215> it's write-protect : you can set parts of the sd card to
> not be writeable (with a granularity of a "write-protect group size")
> 15:09< pm215> we probably don't implement fantastically efficiently
> 15:10< quintela> pm215: ok, only 1 bit is needed.
> 15:10< quintela> we can move to 1bit/sector (8 times smaller)
> 15:10< quintela> but I still think that doing the qemu_ram_alloc()
> trick that aliguori pointed is the easiest way to fix it
> 15:11< quintela> you can create a ram_save_live section, but it is
> going to be more complex for almost no gain
> 15:11< pm215> ah, so we qemu_ram_alloc() it and then the contents get
> transferred in the same way as main memory ?
> 15:12< pm215> ...that is in exec-obsolete.h and marked as "to be
> removed soon"...
> 15:13< aliguori> pm215, yeah, so you'll need to create it using
> whatever the new fancy memory api interface is
> 15:13< aliguori> pm215, note that whenever you touch that memory, you
> have to set the dirty bits appropriately
> 15:13< aliguori> or else live migration won't work
> 15:14< quintela> aliguori: if they have to touch the dirty bits, it is
> equivalent to do their own save_live section.
> 15:14< quintela> but I agree that this is the only "easy" solution.
> 15:17< pm215> doesn't sound too hard...
> 15:18< quintela> as usual with vmstate, problem is testing (althought
> shouldn't be very difficult, either)
> ===endit===
>
> Short summary:
> * switch wp groups to bitfield rather than int array
> * convert sd.c to use memory_region_init_ram() to allocate the wp groups
> (being careful to use memory_region_set_dirty() when we touch them)
> * we don't need variable-length fields for sd.c any more
> * rest of the vmstate conversion is straightforward
>
> -- PMM
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
OK, it turned out to be not so simple, we can't use memory API in sd.c
because TARGET_PHYS_ADDR_BITS value (and, consequently,
target_phys_addr_t) is not defined for common objects.
--
Mitsyanko Igor
ASWG, Moscow R&D center, Samsung Electronics
email: i.mitsyanko@samsung.com
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-03-05 13:38 ` Igor Mitsyanko
@ 2012-03-05 14:13 ` Avi Kivity
2012-03-05 14:37 ` Igor Mitsyanko
0 siblings, 1 reply; 43+ messages in thread
From: Avi Kivity @ 2012-03-05 14:13 UTC (permalink / raw)
To: i.mitsyanko
Cc: Peter Maydell, KVM devel mailing list, quintela,
Developers qemu-devel, Dmitry Solodkiy, Anthony Liguori,
Andreas Färber
On 03/05/2012 03:38 PM, Igor Mitsyanko wrote:
>> Short summary:
>> * switch wp groups to bitfield rather than int array
>> * convert sd.c to use memory_region_init_ram() to allocate the wp
>> groups
>> (being careful to use memory_region_set_dirty() when we touch them)
>> * we don't need variable-length fields for sd.c any more
>> * rest of the vmstate conversion is straightforward
>>
>
> OK, it turned out to be not so simple, we can't use memory API in sd.c
> because TARGET_PHYS_ADDR_BITS value (and, consequently,
> target_phys_addr_t) is not defined for common objects.
>
Well, can't you make sd.c target dependent? It's not so nice, but it
does solve the problem.
--
error compiling committee.c: too many arguments to function
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-03-05 14:13 ` Avi Kivity
@ 2012-03-05 14:37 ` Igor Mitsyanko
2012-03-05 15:10 ` Avi Kivity
0 siblings, 1 reply; 43+ messages in thread
From: Igor Mitsyanko @ 2012-03-05 14:37 UTC (permalink / raw)
To: Avi Kivity
Cc: Peter Maydell, KVM devel mailing list, quintela,
Developers qemu-devel, Dmitry Solodkiy, Anthony Liguori,
Andreas Färber
On 03/05/2012 06:13 PM, Avi Kivity wrote:
> On 03/05/2012 03:38 PM, Igor Mitsyanko wrote:
>>> Short summary:
>>> * switch wp groups to bitfield rather than int array
>>> * convert sd.c to use memory_region_init_ram() to allocate the wp
>>> groups
>>> (being careful to use memory_region_set_dirty() when we touch them)
>>> * we don't need variable-length fields for sd.c any more
>>> * rest of the vmstate conversion is straightforward
>>>
>>
>> OK, it turned out to be not so simple, we can't use memory API in sd.c
>> because TARGET_PHYS_ADDR_BITS value (and, consequently,
>> target_phys_addr_t) is not defined for common objects.
>>
>
> Well, can't you make sd.c target dependent? It's not so nice, but it
> does solve the problem.
>
OK, but it will turn qemu from it's "long term path to suppress *all*
target specific code" :)
--
Mitsyanko Igor
ASWG, Moscow R&D center, Samsung Electronics
email: i.mitsyanko@samsung.com
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-03-05 14:37 ` Igor Mitsyanko
@ 2012-03-05 15:10 ` Avi Kivity
2012-03-05 15:15 ` Anthony Liguori
` (2 more replies)
0 siblings, 3 replies; 43+ messages in thread
From: Avi Kivity @ 2012-03-05 15:10 UTC (permalink / raw)
To: i.mitsyanko
Cc: Peter Maydell, KVM devel mailing list, quintela,
Developers qemu-devel, Dmitry Solodkiy, Anthony Liguori,
Andreas Färber
On 03/05/2012 04:37 PM, Igor Mitsyanko wrote:
>> Well, can't you make sd.c target dependent? It's not so nice, but it
>> does solve the problem.
>>
>
> OK, but it will turn qemu from it's "long term path to suppress *all*
> target specific code" :)
>
The other alternative is to s/target_phys_addr_t/uint64_t/ in the memory
API. I think 32-on-32 is quite rare these days, so it wouldn't be much
of a performance issue.
--
error compiling committee.c: too many arguments to function
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-03-05 15:10 ` Avi Kivity
@ 2012-03-05 15:15 ` Anthony Liguori
2012-03-05 15:17 ` Avi Kivity
2012-03-05 15:20 ` Peter Maydell
2012-03-05 15:43 ` Andreas Färber
2 siblings, 1 reply; 43+ messages in thread
From: Anthony Liguori @ 2012-03-05 15:15 UTC (permalink / raw)
To: Avi Kivity
Cc: Peter Maydell, i.mitsyanko, KVM devel mailing list, quintela,
Developers qemu-devel, Dmitry Solodkiy, Andreas Färber
On 03/05/2012 09:10 AM, Avi Kivity wrote:
> On 03/05/2012 04:37 PM, Igor Mitsyanko wrote:
>>> Well, can't you make sd.c target dependent? It's not so nice, but it
>>> does solve the problem.
>>>
>>
>> OK, but it will turn qemu from it's "long term path to suppress *all*
>> target specific code" :)
>>
>
> The other alternative is to s/target_phys_addr_t/uint64_t/ in the memory
> API. I think 32-on-32 is quite rare these days, so it wouldn't be much
> of a performance issue.
I think this makes sense independent of other discussions regarding fixing
target_phys_addr_t size.
Hardware addresses should be independent of the target. If we wanted to use a
hw_addr_t that would be okay too.
Regards,
Anthony Liguori
>
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-03-05 15:15 ` Anthony Liguori
@ 2012-03-05 15:17 ` Avi Kivity
2012-03-05 18:53 ` Blue Swirl
0 siblings, 1 reply; 43+ messages in thread
From: Avi Kivity @ 2012-03-05 15:17 UTC (permalink / raw)
To: Anthony Liguori
Cc: Peter Maydell, i.mitsyanko, KVM devel mailing list, quintela,
Developers qemu-devel, Dmitry Solodkiy, Andreas Färber
On 03/05/2012 05:15 PM, Anthony Liguori wrote:
>> The other alternative is to s/target_phys_addr_t/uint64_t/ in the memory
>> API. I think 32-on-32 is quite rare these days, so it wouldn't be much
>> of a performance issue.
>
>
> I think this makes sense independent of other discussions regarding
> fixing target_phys_addr_t size.
>
> Hardware addresses should be independent of the target. If we wanted
> to use a hw_addr_t that would be okay too.
>
Would this hw_addr (s/_t$//, or you'll be Blued) be fixed at uint64_t
(and thus only documentary), or also subject to multiple compilation?
--
error compiling committee.c: too many arguments to function
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-03-05 15:10 ` Avi Kivity
2012-03-05 15:15 ` Anthony Liguori
@ 2012-03-05 15:20 ` Peter Maydell
2012-03-05 15:21 ` Avi Kivity
2012-03-05 15:43 ` Andreas Färber
2 siblings, 1 reply; 43+ messages in thread
From: Peter Maydell @ 2012-03-05 15:20 UTC (permalink / raw)
To: Avi Kivity
Cc: i.mitsyanko, KVM devel mailing list, quintela,
Developers qemu-devel, Dmitry Solodkiy, Anthony Liguori,
Andreas Färber
On 5 March 2012 15:10, Avi Kivity <avi@redhat.com> wrote:
> I think 32-on-32 is quite rare these days, so it wouldn't be much
> of a performance issue.
32-on-32 will be the standard case for KVM on ARM I think...
-- PMM
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-03-05 15:20 ` Peter Maydell
@ 2012-03-05 15:21 ` Avi Kivity
2012-03-05 15:27 ` Peter Maydell
0 siblings, 1 reply; 43+ messages in thread
From: Avi Kivity @ 2012-03-05 15:21 UTC (permalink / raw)
To: Peter Maydell
Cc: i.mitsyanko, KVM devel mailing list, quintela,
Developers qemu-devel, Dmitry Solodkiy, Anthony Liguori,
Andreas Färber
On 03/05/2012 05:20 PM, Peter Maydell wrote:
> On 5 March 2012 15:10, Avi Kivity <avi@redhat.com> wrote:
> > I think 32-on-32 is quite rare these days, so it wouldn't be much
> > of a performance issue.
>
> 32-on-32 will be the standard case for KVM on ARM I think...
Won't we be virtualizing LPAE per default?
--
error compiling committee.c: too many arguments to function
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-03-05 15:21 ` Avi Kivity
@ 2012-03-05 15:27 ` Peter Maydell
0 siblings, 0 replies; 43+ messages in thread
From: Peter Maydell @ 2012-03-05 15:27 UTC (permalink / raw)
To: Avi Kivity
Cc: i.mitsyanko, KVM devel mailing list, quintela,
Developers qemu-devel, Dmitry Solodkiy, Anthony Liguori,
Andreas Färber
On 5 March 2012 15:21, Avi Kivity <avi@redhat.com> wrote:
> On 03/05/2012 05:20 PM, Peter Maydell wrote:
>> On 5 March 2012 15:10, Avi Kivity <avi@redhat.com> wrote:
>> > I think 32-on-32 is quite rare these days, so it wouldn't be much
>> > of a performance issue.
>>
>> 32-on-32 will be the standard case for KVM on ARM I think...
>
> Won't we be virtualizing LPAE per default?
Mmm, I guess that would give you 64-on-32.
-- PMM
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-03-05 15:10 ` Avi Kivity
2012-03-05 15:15 ` Anthony Liguori
2012-03-05 15:20 ` Peter Maydell
@ 2012-03-05 15:43 ` Andreas Färber
2012-03-05 15:47 ` Avi Kivity
2012-03-05 15:50 ` Peter Maydell
2 siblings, 2 replies; 43+ messages in thread
From: Andreas Färber @ 2012-03-05 15:43 UTC (permalink / raw)
To: Avi Kivity
Cc: Peter Maydell, i.mitsyanko, KVM devel mailing list, quintela,
Developers qemu-devel, Dmitry Solodkiy, Anthony Liguori
Am 05.03.2012 16:10, schrieb Avi Kivity:
> On 03/05/2012 04:37 PM, Igor Mitsyanko wrote:
>>> Well, can't you make sd.c target dependent? It's not so nice, but it
>>> does solve the problem.
>>>
>>
>> OK, but it will turn qemu from it's "long term path to suppress *all*
>> target specific code" :)
>>
>
> The other alternative is to s/target_phys_addr_t/uint64_t/ in the memory
> API. I think 32-on-32 is quite rare these days, so it wouldn't be much
> of a performance issue.
Maybe rare, but 32-bit ARM netbooks and tablets are gaining marketshare.
Mid-term also depends on how me want to proceed with LPAE softmmu-wise
(bump "arm" to 64-bit target_phys_addr_t, or do LPAE and AArch64 in a
new "arm64").
i386 is 64-on-32 these days already; most of the embedded targets are
still at most 32-bit though (xtensa, mblaze, ...).
Andreas
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-03-05 15:43 ` Andreas Färber
@ 2012-03-05 15:47 ` Avi Kivity
2012-03-05 15:50 ` Peter Maydell
1 sibling, 0 replies; 43+ messages in thread
From: Avi Kivity @ 2012-03-05 15:47 UTC (permalink / raw)
To: Andreas Färber
Cc: Peter Maydell, i.mitsyanko, KVM devel mailing list, quintela,
Developers qemu-devel, Dmitry Solodkiy, Anthony Liguori
On 03/05/2012 05:43 PM, Andreas Färber wrote:
> Am 05.03.2012 16:10, schrieb Avi Kivity:
> > On 03/05/2012 04:37 PM, Igor Mitsyanko wrote:
> >>> Well, can't you make sd.c target dependent? It's not so nice, but it
> >>> does solve the problem.
> >>>
> >>
> >> OK, but it will turn qemu from it's "long term path to suppress *all*
> >> target specific code" :)
> >>
> >
> > The other alternative is to s/target_phys_addr_t/uint64_t/ in the memory
> > API. I think 32-on-32 is quite rare these days, so it wouldn't be much
> > of a performance issue.
>
> Maybe rare, but 32-bit ARM netbooks and tablets are gaining marketshare.
>
> Mid-term also depends on how me want to proceed with LPAE softmmu-wise
> (bump "arm" to 64-bit target_phys_addr_t, or do LPAE and AArch64 in a
> new "arm64").
I was counting on LPAE to make 32-on-32 rare.
> i386 is 64-on-32 these days already; most of the embedded targets are
> still at most 32-bit though (xtensa, mblaze, ...).
These would be 32-on-64, since the host would usually be x86. I guess
it would be even more true when the w64 port is complete.
--
error compiling committee.c: too many arguments to function
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-03-05 15:43 ` Andreas Färber
2012-03-05 15:47 ` Avi Kivity
@ 2012-03-05 15:50 ` Peter Maydell
2012-03-05 17:27 ` Avi Kivity
1 sibling, 1 reply; 43+ messages in thread
From: Peter Maydell @ 2012-03-05 15:50 UTC (permalink / raw)
To: Andreas Färber
Cc: i.mitsyanko, KVM devel mailing list, quintela,
Developers qemu-devel, Avi Kivity, Anthony Liguori,
Dmitry Solodkiy
On 5 March 2012 15:43, Andreas Färber <afaerber@suse.de> wrote:
> Mid-term also depends on how me want to proceed with LPAE softmmu-wise
> (bump "arm" to 64-bit target_phys_addr_t, or do LPAE and AArch64 in a
> new "arm64").
For LPAE I would have thought we want to make "arm" go to a 64 bit
target_phys_addr_t, since that's exactly what it is: same old
ARM architecture with wider physical addresses :-)
I notice that for the architectures we currently have that have
32 and 64 bit versions we have separate {i386,x86_64}-softmmu,
{ppc,ppc64}-softmmu, {mips,mips64}-softmmu. What's the advantage
of separating out the 64 bit flavours that way rather than
having everything be a single binary?
-- PMM
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-03-05 15:50 ` Peter Maydell
@ 2012-03-05 17:27 ` Avi Kivity
0 siblings, 0 replies; 43+ messages in thread
From: Avi Kivity @ 2012-03-05 17:27 UTC (permalink / raw)
To: Peter Maydell
Cc: i.mitsyanko, KVM devel mailing list, quintela,
Developers qemu-devel, Dmitry Solodkiy, Anthony Liguori,
Andreas Färber
On 03/05/2012 05:50 PM, Peter Maydell wrote:
> On 5 March 2012 15:43, Andreas Färber <afaerber@suse.de> wrote:
> > Mid-term also depends on how me want to proceed with LPAE softmmu-wise
> > (bump "arm" to 64-bit target_phys_addr_t, or do LPAE and AArch64 in a
> > new "arm64").
>
> For LPAE I would have thought we want to make "arm" go to a 64 bit
> target_phys_addr_t, since that's exactly what it is: same old
> ARM architecture with wider physical addresses :-)
>
> I notice that for the architectures we currently have that have
> 32 and 64 bit versions we have separate {i386,x86_64}-softmmu,
> {ppc,ppc64}-softmmu, {mips,mips64}-softmmu. What's the advantage
> of separating out the 64 bit flavours that way rather than
> having everything be a single binary?
The registers are smaller; if target_ulong fits in a long then
everything is faster.
Although, you could pretend that target_ulong is 32-bit when in 32-bit
mode, and zero the high half when switching modes, if the target allows
it (I believe i386->x86_64 does, but 8086->i386 does not).
--
error compiling committee.c: too many arguments to function
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-03-05 15:17 ` Avi Kivity
@ 2012-03-05 18:53 ` Blue Swirl
2012-03-05 20:58 ` malc
0 siblings, 1 reply; 43+ messages in thread
From: Blue Swirl @ 2012-03-05 18:53 UTC (permalink / raw)
To: Avi Kivity, malc
Cc: Peter Maydell, i.mitsyanko, KVM devel mailing list, quintela,
Developers qemu-devel, Dmitry Solodkiy, Anthony Liguori,
Andreas Färber
On Mon, Mar 5, 2012 at 15:17, Avi Kivity <avi@redhat.com> wrote:
> On 03/05/2012 05:15 PM, Anthony Liguori wrote:
>>> The other alternative is to s/target_phys_addr_t/uint64_t/ in the memory
>>> API. I think 32-on-32 is quite rare these days, so it wouldn't be much
>>> of a performance issue.
>>
>>
>> I think this makes sense independent of other discussions regarding
>> fixing target_phys_addr_t size.
>>
>> Hardware addresses should be independent of the target. If we wanted
>> to use a hw_addr_t that would be okay too.
>>
>
> Would this hw_addr (s/_t$//, or you'll be Blued) be fixed at uint64_t
Malced? Posixed?
> (and thus only documentary), or also subject to multiple compilation?
In real world CPU physical addresses, bus addresses and device
addresses need not have anything in common. The best would be if we
could have devices with 10-bit addresses mixing freely with 32 bit
buses and 36 bit CPU physical addresses. The next best thing probably
is to fix all of them to shortest possible reasonable value, like now.
Fixing all of them to 64 bits would simplify things a lot if we no
longer care about the small performance loss on 32 bit hosts.
> --
> error compiling committee.c: too many arguments to function
>
>
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-03-05 18:53 ` Blue Swirl
@ 2012-03-05 20:58 ` malc
0 siblings, 0 replies; 43+ messages in thread
From: malc @ 2012-03-05 20:58 UTC (permalink / raw)
To: Blue Swirl
Cc: Peter Maydell, i.mitsyanko, KVM devel mailing list, quintela,
Developers qemu-devel, Avi Kivity, Anthony Liguori,
Andreas Färber, Dmitry Solodkiy
[-- Attachment #1: Type: TEXT/PLAIN, Size: 780 bytes --]
On Mon, 5 Mar 2012, Blue Swirl wrote:
> On Mon, Mar 5, 2012 at 15:17, Avi Kivity <avi@redhat.com> wrote:
> > On 03/05/2012 05:15 PM, Anthony Liguori wrote:
> >>> The other alternative is to s/target_phys_addr_t/uint64_t/ in the memory
> >>> API. I think 32-on-32 is quite rare these days, so it wouldn't be much
> >>> of a performance issue.
> >>
> >>
> >> I think this makes sense independent of other discussions regarding
> >> fixing target_phys_addr_t size.
> >>
> >> Hardware addresses should be independent of the target. If we wanted
> >> to use a hw_addr_t that would be okay too.
> >>
> >
> > Would this hw_addr (s/_t$//, or you'll be Blued) be fixed at uint64_t
>
> Malced? Posixed?
Heh, a_moo would be Malced, no _t is Posixed indeed.
--
mailto:av1474@comtv.ru
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-02-21 15:33 ` Peter Maydell
2012-02-22 8:06 ` Mitsyanko Igor
2012-03-05 13:38 ` Igor Mitsyanko
@ 2012-03-12 9:43 ` Igor Mitsyanko
2012-03-14 9:30 ` Igor Mitsyanko
2012-03-14 10:16 ` Avi Kivity
2 siblings, 2 replies; 43+ messages in thread
From: Igor Mitsyanko @ 2012-03-12 9:43 UTC (permalink / raw)
To: Peter Maydell
Cc: Developers qemu-devel, KVM devel mailing list,
Andreas Färber, Anthony Liguori, quintela
On 02/21/2012 07:33 PM, Peter Maydell wrote:
>
> Short summary:
> * switch wp groups to bitfield rather than int array
> * convert sd.c to use memory_region_init_ram() to allocate the wp groups
> (being careful to use memory_region_set_dirty() when we touch them)
> * we don't need variable-length fields for sd.c any more
> * rest of the vmstate conversion is straightforward
>
After a conversion to bitfield wp_groups consumes 2048 bytes for 32 GB
SD image, do we really need live section for this?
--
Mitsyanko Igor
ASWG, Moscow R&D center, Samsung Electronics
email: i.mitsyanko@samsung.com
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-03-12 9:43 ` Igor Mitsyanko
@ 2012-03-14 9:30 ` Igor Mitsyanko
2012-03-14 10:16 ` Avi Kivity
1 sibling, 0 replies; 43+ messages in thread
From: Igor Mitsyanko @ 2012-03-14 9:30 UTC (permalink / raw)
To: Peter Maydell
Cc: KVM devel mailing list, quintela, Developers qemu-devel,
Dmitry Solodkiy, Anthony Liguori, Andreas Färber
On 03/12/2012 01:43 PM, Igor Mitsyanko wrote:
> On 02/21/2012 07:33 PM, Peter Maydell wrote:
>>
>> Short summary:
>> * switch wp groups to bitfield rather than int array
>> * convert sd.c to use memory_region_init_ram() to allocate the wp groups
>> (being careful to use memory_region_set_dirty() when we touch them)
>> * we don't need variable-length fields for sd.c any more
>> * rest of the vmstate conversion is straightforward
>>
>
> After a conversion to bitfield wp_groups consumes 2048 bytes for 32 GB
> SD image, do we really need live section for this?
>
I don't know how large is too large, but currently we have
VMSTATE_UINT32_ARRAY(tx_status_fifo, lan9118_state, 512),
VMSTATE_UINT32_ARRAY(rx_status_fifo, lan9118_state, 896),
VMSTATE_UINT32_ARRAY(rx_fifo, lan9118_state, 3360),
VMSTATE_INT32_ARRAY(rx_packet_size, lan9118_state, 1024),
in hw/lan9118.c
--
Mitsyanko Igor
ASWG, Moscow R&D center, Samsung Electronics
email: i.mitsyanko@samsung.com
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-03-12 9:43 ` Igor Mitsyanko
2012-03-14 9:30 ` Igor Mitsyanko
@ 2012-03-14 10:16 ` Avi Kivity
1 sibling, 0 replies; 43+ messages in thread
From: Avi Kivity @ 2012-03-14 10:16 UTC (permalink / raw)
To: i.mitsyanko; +Cc: qemu-devel, kvm
On 03/12/2012 11:43 AM, Igor Mitsyanko wrote:
> On 02/21/2012 07:33 PM, Peter Maydell wrote:
>>
>> Short summary:
>> * switch wp groups to bitfield rather than int array
>> * convert sd.c to use memory_region_init_ram() to allocate the wp
>> groups
>> (being careful to use memory_region_set_dirty() when we touch them)
>> * we don't need variable-length fields for sd.c any more
>> * rest of the vmstate conversion is straightforward
>>
>
> After a conversion to bitfield wp_groups consumes 2048 bytes for 32 GB
> SD image, do we really need live section for this?
>
2K is certainly okay, some processors hold more state.
--
error compiling committee.c: too many arguments to function
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-01-31 14:01 ` Mitsyanko Igor
@ 2012-08-08 16:25 ` Andreas Färber
2012-08-09 7:53 ` Igor Mitsyanko
0 siblings, 1 reply; 43+ messages in thread
From: Andreas Färber @ 2012-08-08 16:25 UTC (permalink / raw)
To: i.mitsyanko, quintela
Cc: KVM devel mailing list, Jason Baron, Alexander Graf,
Developers qemu-devel, Dmitry Solodkiy, Anthony Liguori
Am 31.01.2012 15:01, schrieb Mitsyanko Igor:
> On 01/31/2012 05:15 PM, Andreas Färber wrote:
>> Am 31.01.2012 00:53, schrieb Anthony Liguori:
>>> On 01/30/2012 05:41 PM, Andreas Färber wrote:
>>>> Am 30.01.2012 19:55, schrieb Juan Quintela:
>>>>> Please send in any agenda items you are interested in covering.
>>
>>>> VMState:
>>>> Anthony specifically said that VMState were not affected by QOM and
>>>> that
>>>> patches should not be deferred until the merge. Yet there's no review
>>>> and/or decision-making for a month now. Ping^2 for AHCI+SDHC.
>>>
>>> Do you have pointers (to pending VMState patches)?
>>
>> http://patchwork.ozlabs.org/patch/137732/ (PATCH v4)
>>
>> It's basically about how to deal with variable-sized arrays. (Alex
>> mentioned it on one call around November.) I found ways to deal with
>> subsets of arrays embedded within the struct and variable-sized list of
>> pointers to structs but no solution for a malloc()'ed array of structs.
>> Maybe I'm just too stupid to see. Anyway, no one commented since Xmas.
>>
>> Igor posted (and refined for v2) a patch with a callback-based approach
>> that I find promising. From my view, unofficially Juan is the VMState
>> guy, he's been cc'ed. Are we lacking an official maintainer that cares?
>> Or is Juan the official, undocumented maintainer but simply busy?
>>
>> SUSE's interest is making AHCI migratable, and my VMState workaround for
>> that is simply ugly:
>>
>> http://patchwork.ozlabs.org/patch/133066/ (RFC)
>>
>
> If I'm not mistaken, if you change AHCIState's ".ports" type to uint32_t
> you can use existing VMSTATE_BUFFER_MULTIPLY macro like this:
>
> VMSTATE_BUFFER_MULTIPLY(dev, AHCIState, 0, NULL, 0, ports,
> sizeof(AHCIDevice))
Igor, I finally got around to rebasing and trying this: Am I seeing
correctly that this tries to serialize the whole of AHCIDevice as an
opaque buffer? The difficulty here was that we were looking for a way to
serialize a variable number of structured elements with their own
&vmstate_ahci_device specifying what fields to serialize.
Juan, how should we proceed there? Do as Igor suggested? Some VMSTATE_
macro I'm overlooking? Or do we need some new macro for this use case?
Regards,
Andreas
> VMSTATE_BUFFER_MULTIPLY currently lacks VMS_POINTER flag and therefore
> doesn't make any use of _start field (you don't need it anyway)
>
> Nevertheless, VMSTATE_BUFFER_MULTIPLY is just a partial solution to a
> bigger set of possible problems. SD card's vmstate implementation
> requires shift operation, SDHC gets size from switch {} statement,
> something else later may require division or addition e.t.c.,
> get_bufsize callback will cover all possible cases.
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: [Qemu-devel] KVM call agenda for tuesday 31
2012-08-08 16:25 ` Andreas Färber
@ 2012-08-09 7:53 ` Igor Mitsyanko
0 siblings, 0 replies; 43+ messages in thread
From: Igor Mitsyanko @ 2012-08-09 7:53 UTC (permalink / raw)
To: Andreas Färber
Cc: KVM devel mailing list, quintela, Jason Baron,
Developers qemu-devel, Alexander Graf, Dmitry Solodkiy,
Anthony Liguori
On 08/08/2012 08:25 PM, Andreas Färber wrote:
> Am 31.01.2012 15:01, schrieb Mitsyanko Igor:
>> On 01/31/2012 05:15 PM, Andreas Färber wrote:
>>> Am 31.01.2012 00:53, schrieb Anthony Liguori:
>>>> On 01/30/2012 05:41 PM, Andreas Färber wrote:
>>>>> Am 30.01.2012 19:55, schrieb Juan Quintela:
>>>>>> Please send in any agenda items you are interested in covering.
>>>>> VMState:
>>>>> Anthony specifically said that VMState were not affected by QOM and
>>>>> that
>>>>> patches should not be deferred until the merge. Yet there's no review
>>>>> and/or decision-making for a month now. Ping^2 for AHCI+SDHC.
>>>> Do you have pointers (to pending VMState patches)?
>>> http://patchwork.ozlabs.org/patch/137732/ (PATCH v4)
>>>
>>> It's basically about how to deal with variable-sized arrays. (Alex
>>> mentioned it on one call around November.) I found ways to deal with
>>> subsets of arrays embedded within the struct and variable-sized list of
>>> pointers to structs but no solution for a malloc()'ed array of structs.
>>> Maybe I'm just too stupid to see. Anyway, no one commented since Xmas.
>>>
>>> Igor posted (and refined for v2) a patch with a callback-based approach
>>> that I find promising. From my view, unofficially Juan is the VMState
>>> guy, he's been cc'ed. Are we lacking an official maintainer that cares?
>>> Or is Juan the official, undocumented maintainer but simply busy?
>>>
>>> SUSE's interest is making AHCI migratable, and my VMState workaround for
>>> that is simply ugly:
>>>
>>> http://patchwork.ozlabs.org/patch/133066/ (RFC)
>>>
>> If I'm not mistaken, if you change AHCIState's ".ports" type to uint32_t
>> you can use existing VMSTATE_BUFFER_MULTIPLY macro like this:
>>
>> VMSTATE_BUFFER_MULTIPLY(dev, AHCIState, 0, NULL, 0, ports,
>> sizeof(AHCIDevice))
> Igor, I finally got around to rebasing and trying this: Am I seeing
> correctly that this tries to serialize the whole of AHCIDevice as an
> opaque buffer? The difficulty here was that we were looking for a way to
> serialize a variable number of structured elements with their own
> &vmstate_ahci_device specifying what fields to serialize.
>
> Juan, how should we proceed there? Do as Igor suggested? Some VMSTATE_
> macro I'm overlooking? Or do we need some new macro for this use case?
>
> Regards,
> Andreas
Hi Andreas, that was a bad suggestion, sorry for that, we can't treat
structures as opaque buffers because that wouldn't work when migrating
between hosts with different alignment/endianess.
Perhaps you can use VMSTATE_STRUCT_VARRAY_UINT32 for this, if I'm not
again mistaken.
>> VMSTATE_BUFFER_MULTIPLY currently lacks VMS_POINTER flag and therefore
>> doesn't make any use of _start field (you don't need it anyway)
>>
>> Nevertheless, VMSTATE_BUFFER_MULTIPLY is just a partial solution to a
>> bigger set of possible problems. SD card's vmstate implementation
>> requires shift operation, SDHC gets size from switch {} statement,
>> something else later may require division or addition e.t.c.,
>> get_bufsize callback will cover all possible cases.
^ permalink raw reply [flat|nested] 43+ messages in thread
end of thread, other threads:[~2012-08-09 7:53 UTC | newest]
Thread overview: 43+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-01-30 18:55 [Qemu-devel] KVM call agenda for tuesday 31 Juan Quintela
2012-01-30 23:41 ` Andreas Färber
2012-01-30 23:53 ` Anthony Liguori
2012-01-31 0:37 ` Alexander Graf
2012-01-31 10:49 ` Lluís Vilanova
2012-01-31 13:15 ` Andreas Färber
2012-01-31 14:01 ` Mitsyanko Igor
2012-08-08 16:25 ` Andreas Färber
2012-08-09 7:53 ` Igor Mitsyanko
2012-01-31 14:12 ` Anthony Liguori
2012-01-31 15:04 ` Michael S. Tsirkin
2012-01-31 15:10 ` Michael S. Tsirkin
2012-01-31 15:12 ` Paolo Bonzini
2012-02-09 22:23 ` Peter Maydell
2012-02-09 22:37 ` Anthony Liguori
2012-02-09 22:42 ` Peter Maydell
2012-02-09 23:17 ` Andreas Färber
2012-02-09 23:21 ` Alexander Graf
2012-02-21 15:33 ` Peter Maydell
2012-02-22 8:06 ` Mitsyanko Igor
2012-03-05 13:38 ` Igor Mitsyanko
2012-03-05 14:13 ` Avi Kivity
2012-03-05 14:37 ` Igor Mitsyanko
2012-03-05 15:10 ` Avi Kivity
2012-03-05 15:15 ` Anthony Liguori
2012-03-05 15:17 ` Avi Kivity
2012-03-05 18:53 ` Blue Swirl
2012-03-05 20:58 ` malc
2012-03-05 15:20 ` Peter Maydell
2012-03-05 15:21 ` Avi Kivity
2012-03-05 15:27 ` Peter Maydell
2012-03-05 15:43 ` Andreas Färber
2012-03-05 15:47 ` Avi Kivity
2012-03-05 15:50 ` Peter Maydell
2012-03-05 17:27 ` Avi Kivity
2012-03-12 9:43 ` Igor Mitsyanko
2012-03-14 9:30 ` Igor Mitsyanko
2012-03-14 10:16 ` Avi Kivity
2012-01-31 13:59 ` Anthony Liguori
2012-01-31 14:09 ` Avi Kivity
2012-01-31 14:17 ` Anthony Liguori
2012-01-31 14:44 ` Avi Kivity
2012-01-31 16:23 ` Andreas Färber
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).