All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Kiszka <jan.kiszka@siemens.com>
To: Don Slutz <Don@cloudswitch.com>
Cc: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH] hw: Add VMware's GETHZ command.
Date: Fri, 31 Aug 2012 19:00:02 +0200	[thread overview]
Message-ID: <5040ED92.4010601@siemens.com> (raw)
In-Reply-To: <5040ED07.3050306@CloudSwitch.Com>

On 2012-08-31 18:57, Don Slutz wrote:
> On 08/31/12 12:22, Jan Kiszka wrote:
>> On 2012-08-31 17:30, Don Slutz wrote:
>>> This is known is linux as VMWARE_PORT_CMD_GETHZ.
>>>
>>> Signed-off-by: Don Slutz <Don@CloudSwitch.com>
>>> ---
>>>   hw/vmport.c |   22 +++++++++++++++++++++-
>>>   1 files changed, 21 insertions(+), 1 deletions(-)
>>>
>>> diff --git a/hw/vmport.c b/hw/vmport.c
>>> index a4f52ee..37dbf91 100644
>>> --- a/hw/vmport.c
>>> +++ b/hw/vmport.c
>>> @@ -26,13 +26,15 @@
>>>   #include "pc.h"
>>>   #include "kvm.h"
>>>   #include "qdev.h"
>>> +#include "qemu-timer.h"
>> Won't be needed, see below.
>>
>>>   
>>>   //#define VMPORT_DEBUG
>>>   
>>>   #define VMPORT_CMD_GETVERSION 0x0a
>>>   #define VMPORT_CMD_GETRAMSIZE 0x14
>>> +#define VMPORT_CMD_GETHZ      0x2d
>>>   
>>> -#define VMPORT_ENTRIES 0x2c
>>> +#define VMPORT_ENTRIES 0x2e
>>>   #define VMPORT_MAGIC   0x564D5868
>>>   
>>>   typedef struct _VMPortState
>>> @@ -102,6 +104,23 @@ static uint32_t vmport_cmd_ram_size(void *opaque, uint32_t addr)
>>>       return ram_size;
>>>   }
>>>   
>>> +static uint32_t vmport_cmd_get_hz(void *opaque, uint32_t addr)
>>> +{
>>> +    CPUX86State *env = cpu_single_env;
>>> +    uint64_t value;
>>> +
>>> +    value = (uint64_t)env->tsc_khz * 1000;
>>> +    if (value) {
>>> +        /* apic-frequency (bus speed) */
>>> +        env->regs[R_ECX] = (uint32_t)get_ticks_per_sec();
>> So this is 1MHz. That happens to be what we return in
>> get_ticks_per_sec(), but I don't see the logical relation between both.
>> Better set a constant, none of our APIC emulations will change it.
>>
>>> +        /* High part of tsc-frequency */
>>> +        env->regs[R_EBX] = (uint32_t)(value >> 32);
>>> +        /* Low part of tsc-frequency */
>>> +        return (uint32_t)value;
>> EDX is unused by GETHZ? Just wondering if there is spec.
> I have not been able to find a SPEC.  Testing on real VMware systems 
> showed that EDX is not changed. And the linux kernel ignored EDX output.
>>
>>> +    } else
>>> +        return env->regs[R_EAX];
>> Use checkpatch.pl, please.
> I did:
>      don-760:~/tmp/qemu>./scripts/checkpatch.pl 
> outgoing/0001-hw-Add-VMware-s-GETHZ-command.patch
>      total: 0 errors, 0 warnings, 46 lines checked
> 
>      outgoing/0001-hw-Add-VMware-s-GETHZ-command.patch has no obvious 
> style problems and is ready for submission.

Hmm, sorry. Someone has to fix our checker...

Jan

> Will fix.
>>
>>> +}
>>> +
>>>   /* vmmouse helpers */
>>>   void vmmouse_get_data(uint32_t *data)
>>>   {
>>> @@ -141,6 +160,7 @@ static int vmport_initfn(ISADevice *dev)
>>>       /* Register some generic port commands */
>>>       vmport_register(VMPORT_CMD_GETVERSION, vmport_cmd_get_version, NULL);
>>>       vmport_register(VMPORT_CMD_GETRAMSIZE, vmport_cmd_ram_size, NULL);
>>> +    vmport_register(VMPORT_CMD_GETHZ, vmport_cmd_get_hz, NULL);
>>>       return 0;
>>>   }
>>>   
>>>
>> Looks good otherwise.
>>
>> Jan
>>
> 

-- 
Siemens AG, Corporate Technology, CT RTC ITP SDP-DE
Corporate Competence Center Embedded Linux

  reply	other threads:[~2012-08-31 17:12 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-31 15:30 [Qemu-devel] [PATCH] hw: Add VMware's GETHZ command Don Slutz
2012-08-31 16:22 ` Jan Kiszka
2012-08-31 16:57   ` Don Slutz
2012-08-31 17:00     ` Jan Kiszka [this message]
2012-08-31 17:20 ` [Qemu-devel] [PATCH v2] " Don Slutz
2012-08-31 17:27   ` Jan Kiszka
2012-09-05 20:24     ` Don Slutz
2012-09-17 14:31       ` [Qemu-devel] PING " Don Slutz
2012-09-17 19:33         ` Anthony Liguori

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=5040ED92.4010601@siemens.com \
    --to=jan.kiszka@siemens.com \
    --cc=Don@cloudswitch.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.