Yes, the value of the cpu_index seems to track the number of clone() syscalls.  
(I did strace the process, but forgot to look for clone() syscalls... I still 
have vfork()/execve() on the brain.)
________________________________
From: Qemu-discuss <qemu-discuss-bounces+robhenry=microsoft....@nongnu.org> on 
behalf of Philippe Mathieu-Daudé <f4...@amsat.org>
Sent: Sunday, September 19, 2021 10:54 AM
To: rrh.henry <rrh.he...@gmail.com>; qemu-disc...@nongnu.org 
<qemu-disc...@nongnu.org>
Cc: Alex Bennée <alex.ben...@linaro.org>; qemu-devel <qemu-devel@nongnu.org>
Subject: [EXTERNAL] Re: Range of vcpu_index to plugin callbacks

(Cc'ing qemu-devel@ mailing list since this is a development question).

On 9/19/21 19:44, Robert Henry wrote:
> What is the range of the values for vcpu_index given to callbacks, such as:
>
> typedef void (*qemu_plugin_vcpu_udata_cb_t)(unsigned int vcpu_index,
> void *userdata);
>
> Empirically, when QEMU is in system mode, the maximum vcpu_index is 1
> less than the -smp cpus=$(NCPUS) value.
>
> Empirically, when QEMU is in user mode, the values for vcpu_index slowly
> increase without an apparent upper bound known statically (or when the
> plugin is loaded?).

Isn't it related to clone() calls? I'd expect new threads use
a new vCPU, incrementing vcpu_index. But that is just a guess
without having looked at the code to corroborate...

Regards,

Phil.

Reply via email to