[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4cd00b5cdc78da6357d2d326e607b169faee34a8.camel@xry111.site>
Date: Tue, 21 Feb 2023 15:12:16 +0800
From: Xi Ruoyao <xry111@...111.site>
To: maobibo <maobibo@...ngson.cn>,
Tianrui Zhao <zhaotianrui@...ngson.cn>,
Paolo Bonzini <pbonzini@...hat.com>
Cc: Huacai Chen <chenhuacai@...nel.org>,
WANG Xuerui <kernel@...0n.name>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
loongarch@...ts.linux.dev, linux-kernel@...r.kernel.org,
kvm@...r.kernel.org, Jens Axboe <axboe@...nel.dk>,
Mark Brown <broonie@...nel.org>,
Alex Deucher <alexander.deucher@....com>,
Oliver Upton <oliver.upton@...ux.dev>
Subject: Re: [PATCH v2 05/29] LoongArch: KVM: Add vcpu related header files
On Tue, 2023-02-21 at 14:46 +0800, maobibo wrote:
> > On Mon, 2023-02-20 at 14:57 +0800, Tianrui Zhao wrote:
> > > +/* GCSR */
> > > +static inline u64 gcsr_read(u32 reg)
> > > +{
> > > + u64 val = 0;
> > > +
> > > + asm volatile (
> > > + "parse_r __reg, %[val]\n\t"
> > > + ".word 0x5 << 24 | %[reg] << 10 | 0 << 5 | __reg\n\t"
> >
> > Don't do this. You should add the instruction to binutils first, then
> > make CONFIG_KVM depend on the assembler supporting this instruction.
> > This is completely unreadable and only fine for an internal PoC.
>
> We are preparing to submit these instruction support for binutils,
> however it is still necessary. Supposing that it is supported in future
> gcc version, we can not drop existing gcc 12/13 supporting to compiling
> kernel with LoongArch architecture.
You can drop the support for KVM with less capable Binutils versions,
like:
config AS_HAS_LVZ
def_bool $(as-instr some_gcsr_insn \$r0, \$gcsr0)
config KVM
depends on AS_HAS_LVZ
>
> Maybe there will be human readable code like this:
> #if GCC_SUPPORT_KVM_INSTR
> ...
> #else
> asm volatile (".word "
> ...
> #endif
>
> Regards
> Bibo, Mao
--
Xi Ruoyao <xry111@...111.site>
School of Aerospace Science and Technology, Xidian University
Powered by blists - more mailing lists