Salil Mehta <salil.me...@huawei.com> writes:

> Hi Alex,
>
>>  -----Original Message-----
>>  From: Alex Bennée <alex.ben...@linaro.org>
>>  Sent: Thursday, August 29, 2024 11:00 AM
>>  To: Gustavo Romero <gustavo.rom...@linaro.org>
>>  
>>  Gustavo Romero <gustavo.rom...@linaro.org> writes:
>>  
>>  > Hi Salil,
>>  >
>>  > On 6/13/24 8:36 PM, Salil Mehta via wrote:
>>  <snip>
>>  >> (VI) Commands Used
>>  >> ==================
>>  >> A. Qemu launch commands to init the machine:
>>  >>      $ qemu-system-aarch64 --enable-kvm -machine virt,gic-version=3 \
>>  >>        -cpu host -smp cpus=4,maxcpus=6 \
>>  >>        -m 300M \
>>  >>        -kernel Image \
>>  >>        -initrd rootfs.cpio.gz \
>>  >>        -append "console=ttyAMA0 root=/dev/ram rdinit=/init maxcpus=2
>>  acpi=force" \
>>  >>        -nographic \
>>  >>        -bios QEMU_EFI.fd \
>>  >> B. Hot-(un)plug related commands:
>>  >>    # Hotplug a host vCPU (accel=kvm):
>>  >>      $ device_add host-arm-cpu,id=core4,core-id=4
>>  >>    # Hotplug a vCPU (accel=tcg):
>>  >>      $ device_add cortex-a57-arm-cpu,id=core4,core-id=4
>>  >
>>  > Since support for hotplug is disabled on TCG, remove these two lines
>>  > in v4 cover letter?
>>  
>>  Why is it disabled for TCG? We should aim for TCG being as close to KVM as
>>  possible for developers even if it is not a production solution.
>
> Agreed In principle. Yes, that would be of help.
>
>
> Context why it was disabled although most code to support TCG exist:
>
> I had reported a crash in the RFC V1 (June 2020) about TCGContext counter
> overflow assertion during repeated hot(un)plug operation. Miguel from Oracle
> was able to reproduce this problem last year in Feb and also suggested a fix 
> but he
> later found out in his testing that there was a problem during migration.
>
> RFC V1 June 2020:
> https://lore.kernel.org/qemu-devel/20200613213629.21984-1-salil.me...@huawei.com/
> Scroll to below:
> [...]
> THINGS TO DO:
>  (*) Migration support 
>  (*) TCG/Emulation support is not proper right now. Works to a certain extent
>      but is not complete. especially the unrealize part in which there is a
>      overflow of tcg contexts. The last is due to the fact tcg maintains a 
>      count on number of context(per thread instance) so as we hotplug the 
> vcpus
>      this counter keeps on incrementing. But during hot-unplug the counter is
>      not decremented.

Right so the translation cache is segmented by vCPU to support parallel
JIT operations. The easiest solution would be to ensure we dimension for
the maximum number of vCPUs, which it should already, see tcg_init_machine():

  unsigned max_cpus = ms->smp.max_cpus;
  ...
  tcg_init(s->tb_size * MiB, s->splitwx_enabled, max_cpus);

>
> @ Feb 2023, [Linaro-open-discussions] Re: Qemu TCG support for 
> virtual-cpuhotplug/online-policy 
>
> https://op-lists.linaro.org/archives/list/linaro-open-discussi...@op-lists.linaro.org/message/GMDFTEZE6WUUI7LZAYOWLXFHAPXLCND5/
>
> Last status reported by Miguel was that there was problem with the TCG and he 
> intended
> to fix this. He was on paternity leave so I will try to gather the exact 
> status of the TCG today.
>
> Thanks
> Salil
>
>
>>  
>>  --
>>  Alex Bennée
>>  Virtualisation Tech Lead @ Linaro

-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro

Reply via email to