qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 3/5] target-s390: Check for standby memory speci


From: Alexander Graf
Subject: Re: [Qemu-devel] [PATCH 3/5] target-s390: Check for standby memory specification
Date: Tue, 17 Dec 2013 17:48:03 +0100

On 17.12.2013, at 16:58, Matthew Rosato <address@hidden> wrote:

> On 12/16/2013 04:25 PM, Alexander Graf wrote:
>> 
>> On 16.12.2013, at 21:51, Matthew Rosato <address@hidden> wrote:
>> 
>>> When machine=...,standby-mem={size} has been specified, convert the value
>>> to bytes and store it for use.
>>> 
>>> Signed-off-by: Matthew Rosato <address@hidden>
>>> ---
>>> target-s390x/kvm.c |   16 ++++++++++++++++
>>> 1 file changed, 16 insertions(+)
>>> 
>>> diff --git a/target-s390x/kvm.c b/target-s390x/kvm.c
>>> index 02ac4ba..d4081f4 100644
>>> --- a/target-s390x/kvm.c
>>> +++ b/target-s390x/kvm.c
>>> @@ -97,11 +97,27 @@ static void *legacy_s390_alloc(size_t size);
>>> 
>>> int kvm_arch_init(KVMState *s)
>>> {
>>> +    int64_t value;
>>> +
>>>    cap_sync_regs = kvm_check_extension(s, KVM_CAP_SYNC_REGS);
>>>    if (!kvm_check_extension(s, KVM_CAP_S390_GMAP)
>>>        || !kvm_check_extension(s, KVM_CAP_S390_COW)) {
>>>        phys_mem_set_alloc(legacy_s390_alloc);
>>>    }
>>> +
>>> +    value = qemu_opt_get_size(qemu_get_machine_opts(), "standby-mem", -1);
>>> +
>>> +    if (value < 0) {
>>> +        fprintf(stderr, "qemu: invalid standby-mem size:%"PRId64"\n", 
>>> value);
>>> +        exit(1);
>>> +    }
>>> +
>>> +    if (value != (int64_t)(ram_addr_t)value) {
>>> +        fprintf(stderr, "qemu: standby size too large\n");
>>> +        exit(1);
>>> +    }
>>> +    standby_mem_size = value * 1024 * 1024;
>> 
>> I would hope qemu_opt_get_size() returns a value in bytes. Why multiply it 
>> here?
>> 
> 
> It's actually in megabytes, and this is converting to bytes --  Based on
> your comment, it sounds like qemu_opt_get_size should always be
> returning a byte value.

At least I don't see code that converts it into MB. After all, you should be 
able to say size=1M which with your code probably ends up as 1T, no?

> FWIW, if I adopt Paolo's comments re: patch 1, this behavior goes away
> (and the parsing moves out of s390).  Either way, I'll adjust for v2.

Ok :).


Alex




reply via email to

[Prev in Thread] Current Thread [Next in Thread]