public inbox for linux-arm-kernel@lists.infradead.org 
 help / color / mirror / Atom feed
From: Shannon Zhao <shannon.zhao@linux•alibaba.com>
To: James Morse <james.morse@arm•com>
Cc: suzuki.poulose@arm•com, maz@kernel•org, christoffer.dall@arm•com,
	linux-kernel@vger•kernel.org, kvmarm@lists•cs.columbia.edu,
	linux-arm-kernel@lists•infradead.org
Subject: Re: [PATCH RFC 0/7] Support KVM being compiled as a kernel module on arm64
Date: Fri, 25 Oct 2019 10:24:14 +0800	[thread overview]
Message-ID: <975a0c6f-fdff-556f-b447-06edf24141df@linux.alibaba.com> (raw)
In-Reply-To: <8cbd81d6-4ab8-9d2a-5162-8782201cd13d@arm.com>

Hi James,

On 2019/10/24 18:58, James Morse wrote:
> Hi Shannon,
> 
> On 24/10/2019 11:27, Shannon Zhao wrote:
>> Curently KVM ARM64 doesn't support to compile as a kernel module. It's
>> useful to compile KVM as a module.
> 
>> For example, it could reload kvm without rebooting host machine.
> 
> What problem does this solve?
> 
> KVM has some funny requirements that aren't normal for a module. On v8.0 hardware it must
> have an idmap. Modules don't usually expect their code to be physically contiguous, but
> KVM does. KVM influences they way some of the irqchip stuff is set up during early boot
> (EOI mode ... not that I understand it).
> 
> (I think KVM-as-a-module on x86 is an artifact of how it was developed)
> 
> 
>> This patchset support this feature while there are some limitations
>> to be solved. But I just send it out as RFC to get more suggestion and
>> comments.
> 
>> Curently it only supports for VHE system due to the hyp code section
>> address variables like __hyp_text_start.
> 
> We still need to support !VHE systems, and we need to do it with a single image.
> 
I didn't make it clear. With this patchset we still support !VHE systems 
by choose CONFIG_KVM_ARM_HOST as y and by default CONFIG_KVM_ARM_HOST is 
y. And during module init, I add a check to avoid wrong usage for kvm 
module.

if (IS_MODULE(CONFIG_KVM_ARM_HOST) && !is_kernel_in_hyp_mode()) {
         kvm_err("kvm arm kernel module only supports for VHE system\n");
         return -ENODEV;
}


> 
>> Also it can't call
>> kvm_update_va_mask when loading kvm module and kernel panic with below
>> errors. So I make kern_hyp_va into a nop funtion.
> 
> Making this work for the single-Image on v8.0 is going to be a tremendous amount of work.
> What is the payoff?
> 
Actually we can limit this feature only working for VHE systems and 
don't influence !VHE systems.

Thanks,
Shannon

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists•infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

      parent reply	other threads:[~2019-10-25  2:24 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-24 10:27 [PATCH RFC 0/7] Support KVM being compiled as a kernel module on arm64 Shannon Zhao
2019-10-24 10:27 ` [PATCH RFC 1/7] KVM: ARM: call hyp_cpu_pm_exit on correct fail and exit path Shannon Zhao
2019-10-24 10:27 ` [PATCH RFC 2/7] KVM: arch_timer: Fix resource leak on error path Shannon Zhao
2019-10-24 10:27 ` [PATCH RFC 3/7] KVM: vgic: make vgic parameters work well for module Shannon Zhao
2019-10-24 10:27 ` [PATCH RFC 4/7] KVM: vgic: Add hyp uninitialize function Shannon Zhao
2019-10-24 10:27 ` [PATCH RFC 5/7] KVM: arch_timer: " Shannon Zhao
2019-10-24 10:27 ` [PATCH RFC 6/7] KVM: arm/arm64: Move target table register into register table init function Shannon Zhao
2019-10-24 10:27 ` [PATCH RFC 7/7] KVM: ARM: Support KVM being compiled as a kernel module Shannon Zhao
2019-10-24 10:58 ` [PATCH RFC 0/7] Support KVM being compiled as a kernel module on arm64 James Morse
2019-10-24 13:41   ` Marc Zyngier
2019-10-25  2:48     ` Shannon Zhao
2019-10-25 10:12       ` Christoffer Dall
2019-10-25 10:43       ` Marc Zyngier
2019-10-25  2:24   ` Shannon Zhao [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=975a0c6f-fdff-556f-b447-06edf24141df@linux.alibaba.com \
    --to=shannon.zhao@linux$(echo .)alibaba.com \
    --cc=christoffer.dall@arm$(echo .)com \
    --cc=james.morse@arm$(echo .)com \
    --cc=kvmarm@lists$(echo .)cs.columbia.edu \
    --cc=linux-arm-kernel@lists$(echo .)infradead.org \
    --cc=linux-kernel@vger$(echo .)kernel.org \
    --cc=maz@kernel$(echo .)org \
    --cc=suzuki.poulose@arm$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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