[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <53900813-ff1b-2451-d962-6114b3d4ade0@redhat.com>
Date: Tue, 21 Feb 2023 07:48:48 +0100
From: Paolo Bonzini <pbonzini@...hat.com>
To: maobibo <maobibo@...ngson.cn>, Xi Ruoyao <xry111@...111.site>,
Tianrui Zhao <zhaotianrui@...ngson.cn>
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 2/21/23 07:46, maobibo wrote:
>>> + 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.
>
> Maybe there will be human readable code like this:
> #if GCC_SUPPORT_KVM_INSTR
> ...
> #else
> asm volatile (".word "
> ...
> #endif
I agree, just add a comment with what would be the assembly code, i.e.
something like
/* Instructions only available in binutils v.... or later */
asm volatile (
"parse_r __reg, %[val]\n\t"
/* instrname %[val], %[reg] */
".word 0x5 << 24 | %[reg] << 10 | 0 << 5 | __reg\n\t"
Paolo
Powered by blists - more mailing lists