qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v4 1/5] cpu: Provide vcpu throttling interface


From: Dr. David Alan Gilbert
Subject: Re: [Qemu-devel] [PATCH v4 1/5] cpu: Provide vcpu throttling interface
Date: Thu, 2 Jul 2015 17:58:23 +0100
User-agent: Mutt/1.5.23 (2014-03-12)

* Paolo Bonzini (address@hidden) wrote:
> 
> 
> On 02/07/2015 18:36, Jason J. Herne wrote:
> > +static void cpu_throttle_thread(void *opaque)
> > +{
> > +    double pct = (double)throttle_percentage/100;
> > +    double throttle_ratio = pct / (1 - pct);
> > +    long sleeptime_ms = (long)(throttle_ratio * CPU_THROTTLE_TIMESLICE);
> > +
> > +    if (!throttle_percentage) {
> > +        return;
> > +    }
> > +
> > +    qemu_mutex_unlock_iothread();
> > +    g_usleep(sleeptime_ms * 1000); /* Convert ms to us for usleep call */
> > +    qemu_mutex_lock_iothread();
> > +}
> > +
> > +static void cpu_throttle_timer_tick(void *opaque)
> > +{
> > +    CPUState *cpu;
> > +
> > +    /* Stop the timer if needed */
> > +    if (!throttle_percentage) {
> > +        return;
> > +    }
> > +    CPU_FOREACH(cpu) {
> > +        async_run_on_cpu(cpu, cpu_throttle_thread, NULL);
> > +    }
> > +
> > +    timer_mod(throttle_timer, qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL_RT) +
> > +                                   CPU_THROTTLE_TIMESLICE);
> > +}
> 
> This could cause callbacks to pile up I think.  David, do you have any
> idea how to fix it?

I don't know the timer code well enough.

Dave
> 
> Paolo
--
Dr. David Alan Gilbert / address@hidden / Manchester, UK



reply via email to

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