[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC v1 07/12] cpus: introduce async_safe_run_on_cpu.
From: |
Sergey Fedorov |
Subject: |
Re: [Qemu-devel] [RFC v1 07/12] cpus: introduce async_safe_run_on_cpu. |
Date: |
Sun, 5 Jun 2016 19:44:32 +0300 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 |
On 15/04/16 17:23, Alex Bennée wrote:
> +/*
> + * Safe work interface
> + *
> + * Safe work is defined as work that requires the system to be
> + * quiescent before making changes.
> + */
> +
> +void async_safe_run_on_cpu(CPUState *cpu, run_on_cpu_func func, void *data)
> +{
> + CPUState *iter;
> + qemu_safe_work_item wi;
We can call the function right away if MTTCG is disabled or there's only
one CPU emulated.
Kind regards,
Sergey
> + wi.cpu = cpu;
> + wi.func = func;
> + wi.data = data;
> +
> + qemu_mutex_lock(&safe_work_mutex);
> + g_array_append_val(safe_work, wi);
> + atomic_inc(&safe_work_pending);
> + qemu_mutex_unlock(&safe_work_mutex);
> +
> + /* Signal all vCPUs to halt */
> + CPU_FOREACH(iter) {
> + qemu_cpu_kick(iter);
> + }
> +}