qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Cornelia Huck <cohuck@redhat.com>
To: Xianglai Li <lixianglai@loongson.cn>, qemu-devel@nongnu.org
Cc: Paolo Bonzini <pbonzini@redhat.com>,
	Song Gao <gaosong@loongson.cn>,
	Huacai Chen <chenhuacai@kernel.org>,
	Jiaxun Yang <jiaxun.yang@flygoat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	kvm@vger.kernel.org, Bibo Mao <maobibo@loongson.cn>
Subject: Re: [RFC 0/4] Added Interrupt controller emulation for loongarch kvm
Date: Wed, 17 Jul 2024 09:58:03 +0200	[thread overview]
Message-ID: <87r0bsa1ro.fsf@redhat.com> (raw)
In-Reply-To: <cover.1721186636.git.lixianglai@loongson.cn>

On Wed, Jul 17 2024, Xianglai Li <lixianglai@loongson.cn> wrote:

> Before this, the interrupt controller simulation has been completed
> in the user mode program. In order to reduce the loss caused by frequent
> switching of the virtual machine monitor from kernel mode to user mode
> when the guest accesses the interrupt controller, we add the interrupt
> controller simulation in kvm.
>
> In qemu side implementation is simple, just make a new IPI EXTIOI PCH KVM
> related several classes, And the interface to access kvm related data is
> implemented.
>
> Most of the simulation work of the interrupt controller is done in kvm.
> Because KVM the changes have not been the Linux community acceptance,
> the patches of this series will have RFC label until KVM patch into the community.
>
> For the implementation of kvm simulation, refer to the following documents.
>
> IPI simulation implementation reference:
> https://github.com/loongson/LoongArch-Documentation/tree/main/docs/Loongson-3A5000-usermanual-EN/inter-processor-interrupts-and-communication
>
> EXTIOI simulation implementation reference:
> https://github.com/loongson/LoongArch-Documentation/tree/main/docs/Loongson-3A5000-usermanual-EN/io-interrupts/extended-io-interrupts
>
> PCH-PIC simulation implementation reference:
> https://github.com/loongson/LoongArch-Documentation/blob/main/docs/Loongson-7A1000-usermanual-EN/interrupt-controller.adoc
>
> For PCH-MSI, we used irqfd mechanism to send the interrupt signal
> generated by user state to kernel state and then to EXTIOI without
> maintaining PCH-MSI state in kernel state.
>
> You can easily get the code from the link below:
> the kernel:
> https://github.com/lixianglai/linux
> the branch is: interrupt
>
> the qemu:
> https://github.com/lixianglai/qemu
> the branch is: interrupt
>
> Please note that the code above is regularly updated based on community
> reviews.
>
> Cc: Paolo Bonzini <pbonzini@redhat.com> 
> Cc: Song Gao <gaosong@loongson.cn> 
> Cc: Huacai Chen <chenhuacai@kernel.org> 
> Cc: Jiaxun Yang <jiaxun.yang@flygoat.com> 
> Cc: "Michael S. Tsirkin" <mst@redhat.com> 
> Cc: Cornelia Huck <cohuck@redhat.com> 
> Cc: kvm@vger.kernel.org 
> Cc: Bibo Mao <maobibo@loongson.cn> 
>
> Xianglai Li (4):
>   hw/loongarch: Add KVM IPI device support
>   hw/loongarch: Add KVM extioi device support
>   hw/loongarch: Add KVM pch pic device support
>   hw/loongarch: Add KVM pch msi device support
>
>  hw/intc/Kconfig                     |  12 ++
>  hw/intc/loongarch_extioi_kvm.c      | 141 +++++++++++++++++++
>  hw/intc/loongarch_ipi_kvm.c         | 207 ++++++++++++++++++++++++++++
>  hw/intc/loongarch_pch_msi.c         |  42 ++++--
>  hw/intc/loongarch_pch_pic.c         |  20 ++-
>  hw/intc/loongarch_pch_pic_kvm.c     | 189 +++++++++++++++++++++++++
>  hw/intc/meson.build                 |   3 +
>  hw/loongarch/virt.c                 | 141 ++++++++++++-------
>  include/hw/intc/loongarch_extioi.h  |  34 ++++-
>  include/hw/intc/loongarch_pch_msi.h |   2 +-
>  include/hw/intc/loongarch_pch_pic.h |  51 ++++++-
>  include/hw/intc/loongson_ipi.h      |  22 +++
>  include/hw/loongarch/virt.h         |  15 ++
>  linux-headers/asm-loongarch/kvm.h   |   7 +
>  linux-headers/linux/kvm.h           |   6 +

Please split out any headers changes into a separate patch -- just put
them into a placeholder patch at the beginning of the series as long as
the changes are not yet upstream (and replace that with a full headers
sync later.)

>  15 files changed, 823 insertions(+), 69 deletions(-)
>  create mode 100644 hw/intc/loongarch_extioi_kvm.c
>  create mode 100644 hw/intc/loongarch_ipi_kvm.c
>  create mode 100644 hw/intc/loongarch_pch_pic_kvm.c



      parent reply	other threads:[~2024-07-17  7:58 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-17  3:29 [RFC 0/4] Added Interrupt controller emulation for loongarch kvm Xianglai Li
2024-07-17  3:29 ` [RFC 1/4] hw/loongarch: Add KVM IPI device support Xianglai Li
2024-07-17  3:29 ` [RFC 2/4] hw/loongarch: Add KVM extioi " Xianglai Li
2024-07-17  3:29 ` [RFC 3/4] hw/loongarch: Add KVM pch pic " Xianglai Li
2024-07-17  3:29 ` [RFC 4/4] hw/loongarch: Add KVM pch msi " Xianglai Li
2024-07-17  7:58 ` Cornelia Huck [this message]

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=87r0bsa1ro.fsf@redhat.com \
    --to=cohuck@redhat.com \
    --cc=chenhuacai@kernel.org \
    --cc=gaosong@loongson.cn \
    --cc=jiaxun.yang@flygoat.com \
    --cc=kvm@vger.kernel.org \
    --cc=lixianglai@loongson.cn \
    --cc=maobibo@loongson.cn \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).