From: Sean Christopherson <seanjc@google.com>
To: David Matlack <dmatlack@google.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
Ackerley Tng <ackerleytng@google.com>,
Albert Ou <aou@eecs.berkeley.edu>,
Alexandre Ghiti <alex@ghiti.fr>,
Andrew Jones <ajones@ventanamicro.com>,
Anup Patel <anup@brainfault.org>,
Atish Patra <atish.patra@linux.dev>,
Bibo Mao <maobibo@loongson.cn>,
Christian Borntraeger <borntraeger@linux.ibm.com>,
Claudio Imbrenda <imbrenda@linux.ibm.com>,
Colin Ian King <colin.i.king@gmail.com>,
David Hildenbrand <david@kernel.org>,
Fuad Tabba <tabba@google.com>,
Huacai Chen <chenhuacai@kernel.org>,
James Houghton <jthoughton@google.com>,
Janosch Frank <frankja@linux.ibm.com>,
Joey Gouly <joey.gouly@arm.com>,
kvmarm@lists.linux.dev, kvm-riscv@lists.infradead.org,
kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org,
linux-riscv@lists.infradead.org, Lisa Wang <wyihan@google.com>,
loongarch@lists.linux.dev, Marc Zyngier <maz@kernel.org>,
Maxim Levitsky <mlevitsk@redhat.com>,
Nutty Liu <nutty.liu@hotmail.com>,
Oliver Upton <oupton@kernel.org>,
Palmer Dabbelt <palmer@dabbelt.com>,
Paul Walmsley <pjw@kernel.org>,
"Pratik R. Sampat" <prsampat@amd.com>,
Rahul Kumar <rk0006818@gmail.com>, Shuah Khan <shuah@kernel.org>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
Tianrui Zhao <zhaotianrui@loongson.cn>,
Wu Fei <wu.fei9@sanechips.com.cn>,
Yosry Ahmed <yosry.ahmed@linux.dev>,
Zenghui Yu <yuzenghui@huawei.com>
Subject: Re: [PATCH v2 01/10] KVM: selftests: Use gva_t instead of vm_vaddr_t
Date: Mon, 20 Apr 2026 13:06:21 -0700 [thread overview]
Message-ID: <aeaHPYwzs0dhwX9-@google.com> (raw)
In-Reply-To: <20260220004223.4168331-2-dmatlack@google.com>
On Fri, Feb 20, 2026, David Matlack wrote:
> Replace all occurrences of vm_vaddr_t with gva_t to align with KVM code
> and with the conversion helpers (e.g. addr_gva2hva()). Also replace
> vm_vaddr in function names with gva to align with the new type name.
...
> @@ -716,22 +716,22 @@ void vm_mem_region_move(struct kvm_vm *vm, uint32_t slot, uint64_t new_gpa);
> void vm_mem_region_delete(struct kvm_vm *vm, uint32_t slot);
> struct kvm_vcpu *__vm_vcpu_add(struct kvm_vm *vm, uint32_t vcpu_id);
> void vm_populate_vaddr_bitmap(struct kvm_vm *vm);
> -vm_vaddr_t vm_vaddr_unused_gap(struct kvm_vm *vm, size_t sz, vm_vaddr_t vaddr_min);
> -vm_vaddr_t vm_vaddr_alloc(struct kvm_vm *vm, size_t sz, vm_vaddr_t vaddr_min);
> -vm_vaddr_t __vm_vaddr_alloc(struct kvm_vm *vm, size_t sz, vm_vaddr_t vaddr_min,
> - enum kvm_mem_region_type type);
> -vm_vaddr_t vm_vaddr_alloc_shared(struct kvm_vm *vm, size_t sz,
> - vm_vaddr_t vaddr_min,
> - enum kvm_mem_region_type type);
> -vm_vaddr_t vm_vaddr_alloc_pages(struct kvm_vm *vm, int nr_pages);
> -vm_vaddr_t __vm_vaddr_alloc_page(struct kvm_vm *vm,
> - enum kvm_mem_region_type type);
> -vm_vaddr_t vm_vaddr_alloc_page(struct kvm_vm *vm);
> +gva_t gva_unused_gap(struct kvm_vm *vm, size_t sz, gva_t vaddr_min);
> +gva_t gva_alloc(struct kvm_vm *vm, size_t sz, gva_t vaddr_min);
> +gva_t __gva_alloc(struct kvm_vm *vm, size_t sz, gva_t vaddr_min,
> + enum kvm_mem_region_type type);
> +gva_t gva_alloc_shared(struct kvm_vm *vm, size_t sz,
> + gva_t vaddr_min,
> + enum kvm_mem_region_type type);
> +gva_t gva_alloc_pages(struct kvm_vm *vm, int nr_pages);
> +gva_t __gva_alloc_page(struct kvm_vm *vm,
> + enum kvm_mem_region_type type);
> +gva_t gva_alloc_page(struct kvm_vm *vm);
The existing vm_vaddr_alloc() and friends are pretty bad names. gva_alloc() is
far, far worse. The APIs aren't just allocation a guest virtual address, they're
allocating guest physical memory, finding a usable virtual address, and creating
mappings.
I don't see any reason to have vaddr or gva in the name. E.g. malloc() isn't
virt_malloc(). But I do think they need to be explicitly scoped to KVM, and to
a VM. I'll drop API renames from this patch, and rename them to vm_alloc() and
friends in a separate patch. Amusingly, that naming scheme will still work if
"vm" is misconstrued as "virtual memory" instead of "virtual machine".
P.S. This is a great example of why I insist on one logical change per patch, with
judicious exemptions for opportunistic cleanups/changes. If this has been a
separate patch, it would have taken me all of two seconds to unwind. As it was,
I spent a good 10-15 minutes dealing with this. In large part because I kept
making goofs, but that's the whole point: there was no reason to put me in a
position to make goofs.
The other argument against these sorts of "Also do xyz" add-ons is that of a
slippery slope. Why rename these APIs in this patch, but not the myriad vaddr
variables? Then after a few "I'll just clean this up too" changes, there's an
entire series in what is purportedly just a typedef rename.
--
kvm-riscv mailing list
kvm-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kvm-riscv
WARNING: multiple messages have this Message-ID (diff)
From: Sean Christopherson <seanjc@google.com>
To: David Matlack <dmatlack@google.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
Ackerley Tng <ackerleytng@google.com>,
Albert Ou <aou@eecs.berkeley.edu>,
Alexandre Ghiti <alex@ghiti.fr>,
Andrew Jones <ajones@ventanamicro.com>,
Anup Patel <anup@brainfault.org>,
Atish Patra <atish.patra@linux.dev>,
Bibo Mao <maobibo@loongson.cn>,
Christian Borntraeger <borntraeger@linux.ibm.com>,
Claudio Imbrenda <imbrenda@linux.ibm.com>,
Colin Ian King <colin.i.king@gmail.com>,
David Hildenbrand <david@kernel.org>,
Fuad Tabba <tabba@google.com>,
Huacai Chen <chenhuacai@kernel.org>,
James Houghton <jthoughton@google.com>,
Janosch Frank <frankja@linux.ibm.com>,
Joey Gouly <joey.gouly@arm.com>,
kvmarm@lists.linux.dev, kvm-riscv@lists.infradead.org,
kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org,
linux-riscv@lists.infradead.org, Lisa Wang <wyihan@google.com>,
loongarch@lists.linux.dev, Marc Zyngier <maz@kernel.org>,
Maxim Levitsky <mlevitsk@redhat.com>,
Nutty Liu <nutty.liu@hotmail.com>,
Oliver Upton <oupton@kernel.org>,
Palmer Dabbelt <palmer@dabbelt.com>,
Paul Walmsley <pjw@kernel.org>,
"Pratik R. Sampat" <prsampat@amd.com>,
Rahul Kumar <rk0006818@gmail.com>, Shuah Khan <shuah@kernel.org>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
Tianrui Zhao <zhaotianrui@loongson.cn>,
Wu Fei <wu.fei9@sanechips.com.cn>,
Yosry Ahmed <yosry.ahmed@linux.dev>,
Zenghui Yu <yuzenghui@huawei.com>
Subject: Re: [PATCH v2 01/10] KVM: selftests: Use gva_t instead of vm_vaddr_t
Date: Mon, 20 Apr 2026 13:06:21 -0700 [thread overview]
Message-ID: <aeaHPYwzs0dhwX9-@google.com> (raw)
In-Reply-To: <20260220004223.4168331-2-dmatlack@google.com>
On Fri, Feb 20, 2026, David Matlack wrote:
> Replace all occurrences of vm_vaddr_t with gva_t to align with KVM code
> and with the conversion helpers (e.g. addr_gva2hva()). Also replace
> vm_vaddr in function names with gva to align with the new type name.
...
> @@ -716,22 +716,22 @@ void vm_mem_region_move(struct kvm_vm *vm, uint32_t slot, uint64_t new_gpa);
> void vm_mem_region_delete(struct kvm_vm *vm, uint32_t slot);
> struct kvm_vcpu *__vm_vcpu_add(struct kvm_vm *vm, uint32_t vcpu_id);
> void vm_populate_vaddr_bitmap(struct kvm_vm *vm);
> -vm_vaddr_t vm_vaddr_unused_gap(struct kvm_vm *vm, size_t sz, vm_vaddr_t vaddr_min);
> -vm_vaddr_t vm_vaddr_alloc(struct kvm_vm *vm, size_t sz, vm_vaddr_t vaddr_min);
> -vm_vaddr_t __vm_vaddr_alloc(struct kvm_vm *vm, size_t sz, vm_vaddr_t vaddr_min,
> - enum kvm_mem_region_type type);
> -vm_vaddr_t vm_vaddr_alloc_shared(struct kvm_vm *vm, size_t sz,
> - vm_vaddr_t vaddr_min,
> - enum kvm_mem_region_type type);
> -vm_vaddr_t vm_vaddr_alloc_pages(struct kvm_vm *vm, int nr_pages);
> -vm_vaddr_t __vm_vaddr_alloc_page(struct kvm_vm *vm,
> - enum kvm_mem_region_type type);
> -vm_vaddr_t vm_vaddr_alloc_page(struct kvm_vm *vm);
> +gva_t gva_unused_gap(struct kvm_vm *vm, size_t sz, gva_t vaddr_min);
> +gva_t gva_alloc(struct kvm_vm *vm, size_t sz, gva_t vaddr_min);
> +gva_t __gva_alloc(struct kvm_vm *vm, size_t sz, gva_t vaddr_min,
> + enum kvm_mem_region_type type);
> +gva_t gva_alloc_shared(struct kvm_vm *vm, size_t sz,
> + gva_t vaddr_min,
> + enum kvm_mem_region_type type);
> +gva_t gva_alloc_pages(struct kvm_vm *vm, int nr_pages);
> +gva_t __gva_alloc_page(struct kvm_vm *vm,
> + enum kvm_mem_region_type type);
> +gva_t gva_alloc_page(struct kvm_vm *vm);
The existing vm_vaddr_alloc() and friends are pretty bad names. gva_alloc() is
far, far worse. The APIs aren't just allocation a guest virtual address, they're
allocating guest physical memory, finding a usable virtual address, and creating
mappings.
I don't see any reason to have vaddr or gva in the name. E.g. malloc() isn't
virt_malloc(). But I do think they need to be explicitly scoped to KVM, and to
a VM. I'll drop API renames from this patch, and rename them to vm_alloc() and
friends in a separate patch. Amusingly, that naming scheme will still work if
"vm" is misconstrued as "virtual memory" instead of "virtual machine".
P.S. This is a great example of why I insist on one logical change per patch, with
judicious exemptions for opportunistic cleanups/changes. If this has been a
separate patch, it would have taken me all of two seconds to unwind. As it was,
I spent a good 10-15 minutes dealing with this. In large part because I kept
making goofs, but that's the whole point: there was no reason to put me in a
position to make goofs.
The other argument against these sorts of "Also do xyz" add-ons is that of a
slippery slope. Why rename these APIs in this patch, but not the myriad vaddr
variables? Then after a few "I'll just clean this up too" changes, there's an
entire series in what is purportedly just a typedef rename.
WARNING: multiple messages have this Message-ID (diff)
From: Sean Christopherson <seanjc@google.com>
To: David Matlack <dmatlack@google.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
Ackerley Tng <ackerleytng@google.com>,
Albert Ou <aou@eecs.berkeley.edu>,
Alexandre Ghiti <alex@ghiti.fr>,
Andrew Jones <ajones@ventanamicro.com>,
Anup Patel <anup@brainfault.org>,
Atish Patra <atish.patra@linux.dev>,
Bibo Mao <maobibo@loongson.cn>,
Christian Borntraeger <borntraeger@linux.ibm.com>,
Claudio Imbrenda <imbrenda@linux.ibm.com>,
Colin Ian King <colin.i.king@gmail.com>,
David Hildenbrand <david@kernel.org>,
Fuad Tabba <tabba@google.com>,
Huacai Chen <chenhuacai@kernel.org>,
James Houghton <jthoughton@google.com>,
Janosch Frank <frankja@linux.ibm.com>,
Joey Gouly <joey.gouly@arm.com>,
kvmarm@lists.linux.dev, kvm-riscv@lists.infradead.org,
kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org,
linux-riscv@lists.infradead.org, Lisa Wang <wyihan@google.com>,
loongarch@lists.linux.dev, Marc Zyngier <maz@kernel.org>,
Maxim Levitsky <mlevitsk@redhat.com>,
Nutty Liu <nutty.liu@hotmail.com>,
Oliver Upton <oupton@kernel.org>,
Palmer Dabbelt <palmer@dabbelt.com>,
Paul Walmsley <pjw@kernel.org>,
"Pratik R. Sampat" <prsampat@amd.com>,
Rahul Kumar <rk0006818@gmail.com>, Shuah Khan <shuah@kernel.org>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
Tianrui Zhao <zhaotianrui@loongson.cn>,
Wu Fei <wu.fei9@sanechips.com.cn>,
Yosry Ahmed <yosry.ahmed@linux.dev>,
Zenghui Yu <yuzenghui@huawei.com>
Subject: Re: [PATCH v2 01/10] KVM: selftests: Use gva_t instead of vm_vaddr_t
Date: Mon, 20 Apr 2026 13:06:21 -0700 [thread overview]
Message-ID: <aeaHPYwzs0dhwX9-@google.com> (raw)
In-Reply-To: <20260220004223.4168331-2-dmatlack@google.com>
On Fri, Feb 20, 2026, David Matlack wrote:
> Replace all occurrences of vm_vaddr_t with gva_t to align with KVM code
> and with the conversion helpers (e.g. addr_gva2hva()). Also replace
> vm_vaddr in function names with gva to align with the new type name.
...
> @@ -716,22 +716,22 @@ void vm_mem_region_move(struct kvm_vm *vm, uint32_t slot, uint64_t new_gpa);
> void vm_mem_region_delete(struct kvm_vm *vm, uint32_t slot);
> struct kvm_vcpu *__vm_vcpu_add(struct kvm_vm *vm, uint32_t vcpu_id);
> void vm_populate_vaddr_bitmap(struct kvm_vm *vm);
> -vm_vaddr_t vm_vaddr_unused_gap(struct kvm_vm *vm, size_t sz, vm_vaddr_t vaddr_min);
> -vm_vaddr_t vm_vaddr_alloc(struct kvm_vm *vm, size_t sz, vm_vaddr_t vaddr_min);
> -vm_vaddr_t __vm_vaddr_alloc(struct kvm_vm *vm, size_t sz, vm_vaddr_t vaddr_min,
> - enum kvm_mem_region_type type);
> -vm_vaddr_t vm_vaddr_alloc_shared(struct kvm_vm *vm, size_t sz,
> - vm_vaddr_t vaddr_min,
> - enum kvm_mem_region_type type);
> -vm_vaddr_t vm_vaddr_alloc_pages(struct kvm_vm *vm, int nr_pages);
> -vm_vaddr_t __vm_vaddr_alloc_page(struct kvm_vm *vm,
> - enum kvm_mem_region_type type);
> -vm_vaddr_t vm_vaddr_alloc_page(struct kvm_vm *vm);
> +gva_t gva_unused_gap(struct kvm_vm *vm, size_t sz, gva_t vaddr_min);
> +gva_t gva_alloc(struct kvm_vm *vm, size_t sz, gva_t vaddr_min);
> +gva_t __gva_alloc(struct kvm_vm *vm, size_t sz, gva_t vaddr_min,
> + enum kvm_mem_region_type type);
> +gva_t gva_alloc_shared(struct kvm_vm *vm, size_t sz,
> + gva_t vaddr_min,
> + enum kvm_mem_region_type type);
> +gva_t gva_alloc_pages(struct kvm_vm *vm, int nr_pages);
> +gva_t __gva_alloc_page(struct kvm_vm *vm,
> + enum kvm_mem_region_type type);
> +gva_t gva_alloc_page(struct kvm_vm *vm);
The existing vm_vaddr_alloc() and friends are pretty bad names. gva_alloc() is
far, far worse. The APIs aren't just allocation a guest virtual address, they're
allocating guest physical memory, finding a usable virtual address, and creating
mappings.
I don't see any reason to have vaddr or gva in the name. E.g. malloc() isn't
virt_malloc(). But I do think they need to be explicitly scoped to KVM, and to
a VM. I'll drop API renames from this patch, and rename them to vm_alloc() and
friends in a separate patch. Amusingly, that naming scheme will still work if
"vm" is misconstrued as "virtual memory" instead of "virtual machine".
P.S. This is a great example of why I insist on one logical change per patch, with
judicious exemptions for opportunistic cleanups/changes. If this has been a
separate patch, it would have taken me all of two seconds to unwind. As it was,
I spent a good 10-15 minutes dealing with this. In large part because I kept
making goofs, but that's the whole point: there was no reason to put me in a
position to make goofs.
The other argument against these sorts of "Also do xyz" add-ons is that of a
slippery slope. Why rename these APIs in this patch, but not the myriad vaddr
variables? Then after a few "I'll just clean this up too" changes, there's an
entire series in what is purportedly just a typedef rename.
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
next prev parent reply other threads:[~2026-04-20 20:06 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-20 0:42 [PATCH v2 00/10] KVM: selftests: Use kernel-style integer and g[vp]a_t types David Matlack
2026-02-20 0:42 ` David Matlack
2026-02-20 0:42 ` David Matlack
2026-02-20 0:42 ` [PATCH v2 01/10] KVM: selftests: Use gva_t instead of vm_vaddr_t David Matlack
2026-02-20 0:42 ` David Matlack
2026-02-20 0:42 ` David Matlack
2026-04-20 20:06 ` Sean Christopherson [this message]
2026-04-20 20:06 ` Sean Christopherson
2026-04-20 20:06 ` Sean Christopherson
2026-04-20 20:15 ` David Matlack
2026-04-20 20:15 ` David Matlack
2026-04-20 20:15 ` David Matlack
2026-02-20 0:42 ` [PATCH v2 02/10] KVM: selftests: Use gpa_t instead of vm_paddr_t David Matlack
2026-02-20 0:42 ` David Matlack
2026-02-20 0:42 ` David Matlack
2026-02-20 0:42 ` [PATCH v2 03/10] KVM: selftests: Use gpa_t for GPAs in Hyper-V selftests David Matlack
2026-02-20 0:42 ` David Matlack
2026-02-20 0:42 ` David Matlack
2026-02-20 0:42 ` [PATCH v2 04/10] KVM: selftests: Use u64 instead of uint64_t David Matlack
2026-02-20 0:42 ` David Matlack
2026-02-20 0:42 ` David Matlack
2026-03-05 17:19 ` Sean Christopherson
2026-03-05 17:19 ` Sean Christopherson
2026-03-05 17:19 ` Sean Christopherson
2026-03-05 17:26 ` David Matlack
2026-03-05 17:26 ` David Matlack
2026-03-05 17:26 ` David Matlack
2026-04-20 20:43 ` Sean Christopherson
2026-04-20 20:43 ` Sean Christopherson
2026-04-20 20:43 ` Sean Christopherson
2026-02-20 0:42 ` [PATCH v2 05/10] KVM: selftests: Use s64 instead of int64_t David Matlack
2026-02-20 0:42 ` David Matlack
2026-02-20 0:42 ` David Matlack
2026-02-20 0:42 ` [PATCH v2 06/10] KVM: selftests: Use u32 instead of uint32_t David Matlack
2026-02-20 0:42 ` David Matlack
2026-02-20 0:42 ` David Matlack
2026-02-20 0:42 ` [PATCH v2 07/10] KVM: selftests: Use s32 instead of int32_t David Matlack
2026-02-20 0:42 ` David Matlack
2026-02-20 0:42 ` David Matlack
2026-02-20 0:42 ` [PATCH v2 08/10] KVM: selftests: Use u16 instead of uint16_t David Matlack
2026-02-20 0:42 ` David Matlack
2026-02-20 0:42 ` David Matlack
2026-02-20 0:42 ` [PATCH v2 09/10] KVM: selftests: Use s16 instead of int16_t David Matlack
2026-02-20 0:42 ` David Matlack
2026-02-20 0:42 ` David Matlack
2026-02-20 0:42 ` [PATCH v2 10/10] KVM: selftests: Use u8 instead of uint8_t David Matlack
2026-02-20 0:42 ` David Matlack
2026-02-20 0:42 ` David Matlack
2026-03-05 17:22 ` [PATCH v2 00/10] KVM: selftests: Use kernel-style integer and g[vp]a_t types Sean Christopherson
2026-03-05 17:22 ` Sean Christopherson
2026-03-05 17:22 ` Sean Christopherson
2026-03-05 17:26 ` David Matlack
2026-03-05 17:26 ` David Matlack
2026-03-05 17:26 ` David Matlack
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=aeaHPYwzs0dhwX9-@google.com \
--to=seanjc@google.com \
--cc=ackerleytng@google.com \
--cc=ajones@ventanamicro.com \
--cc=alex@ghiti.fr \
--cc=anup@brainfault.org \
--cc=aou@eecs.berkeley.edu \
--cc=atish.patra@linux.dev \
--cc=borntraeger@linux.ibm.com \
--cc=chenhuacai@kernel.org \
--cc=colin.i.king@gmail.com \
--cc=david@kernel.org \
--cc=dmatlack@google.com \
--cc=frankja@linux.ibm.com \
--cc=imbrenda@linux.ibm.com \
--cc=joey.gouly@arm.com \
--cc=jthoughton@google.com \
--cc=kvm-riscv@lists.infradead.org \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.linux.dev \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=loongarch@lists.linux.dev \
--cc=maobibo@loongson.cn \
--cc=maz@kernel.org \
--cc=mlevitsk@redhat.com \
--cc=nutty.liu@hotmail.com \
--cc=oupton@kernel.org \
--cc=palmer@dabbelt.com \
--cc=pbonzini@redhat.com \
--cc=pjw@kernel.org \
--cc=prsampat@amd.com \
--cc=rk0006818@gmail.com \
--cc=shuah@kernel.org \
--cc=suzuki.poulose@arm.com \
--cc=tabba@google.com \
--cc=wu.fei9@sanechips.com.cn \
--cc=wyihan@google.com \
--cc=yosry.ahmed@linux.dev \
--cc=yuzenghui@huawei.com \
--cc=zhaotianrui@loongson.cn \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.