From: Sean Christopherson <seanjc@google.com>
To: Ricardo Koller <ricarkol@google.com>
Cc: kvm@vger.kernel.org, maz@kernel.org, bgardon@google.com,
andrew.jones@linux.dev, dmatlack@google.com, pbonzini@redhat.com,
axelrasmussen@google.com, kvmarm@lists.cs.columbia.edu
Subject: Re: [PATCH v6 09/13] KVM: selftests: aarch64: Add aarch64/page_fault_test
Date: Mon, 19 Sep 2022 20:01:14 +0000 [thread overview]
Message-ID: <YyjKir3OGCfFvAsy@google.com> (raw)
In-Reply-To: <YyjDCWCJ5j8c6T2h@google.com>
On Mon, Sep 19, 2022, Ricardo Koller wrote:
> On Sat, Sep 17, 2022 at 09:58:28PM +0000, Oliver Upton wrote:
> > @@ -536,13 +536,7 @@ static void load_exec_code_for_test(struct kvm_vm *vm)
> > assert(TEST_EXEC_GVA - TEST_GVA);
> > code = hva + 8;
> >
> > - /*
> > - * We need the cast to be separate in order for the compiler to not
> > - * complain with: "‘memcpy’ forming offset [1, 7] is out of the bounds
> > - * [0, 1] of object ‘__exec_test’ with type ‘unsigned char’"
> > - */
> > - c = (uint64_t *)&__exec_test;
> > - memcpy(code, c, 8);
> > + *code = __exec_test;
>
> I remember trying many ways of getting the compiler to not complain, I
> must have tried this (wonder what happened). Anyway, gcc and clang are
> happy with it.
Alternatively, from a code documentation perspective it would be nice to capture
that the size isn't arbitrary. E.g.
typedef uint32_t aarch64_insn_t;
extern aarch64_insn_t __exec_test[2];
{
void *code;
memcpy(code, __exec_test, sizeof(__exec_test));
}
Note, memcpy() is currently dangerous, but hopefully that will be remedied soonish[*]
[*] https://lore.kernel.org/all/20220908233134.3523339-1-seanjc@google.com
_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm
WARNING: multiple messages have this Message-ID (diff)
From: Sean Christopherson <seanjc@google.com>
To: Ricardo Koller <ricarkol@google.com>
Cc: Oliver Upton <oliver.upton@linux.dev>,
kvm@vger.kernel.org, kvmarm@lists.cs.columbia.edu,
andrew.jones@linux.dev, pbonzini@redhat.com, maz@kernel.org,
alexandru.elisei@arm.com, eric.auger@redhat.com,
reijiw@google.com, rananta@google.com, bgardon@google.com,
dmatlack@google.com, axelrasmussen@google.com
Subject: Re: [PATCH v6 09/13] KVM: selftests: aarch64: Add aarch64/page_fault_test
Date: Mon, 19 Sep 2022 20:01:14 +0000 [thread overview]
Message-ID: <YyjKir3OGCfFvAsy@google.com> (raw)
In-Reply-To: <YyjDCWCJ5j8c6T2h@google.com>
On Mon, Sep 19, 2022, Ricardo Koller wrote:
> On Sat, Sep 17, 2022 at 09:58:28PM +0000, Oliver Upton wrote:
> > @@ -536,13 +536,7 @@ static void load_exec_code_for_test(struct kvm_vm *vm)
> > assert(TEST_EXEC_GVA - TEST_GVA);
> > code = hva + 8;
> >
> > - /*
> > - * We need the cast to be separate in order for the compiler to not
> > - * complain with: "‘memcpy’ forming offset [1, 7] is out of the bounds
> > - * [0, 1] of object ‘__exec_test’ with type ‘unsigned char’"
> > - */
> > - c = (uint64_t *)&__exec_test;
> > - memcpy(code, c, 8);
> > + *code = __exec_test;
>
> I remember trying many ways of getting the compiler to not complain, I
> must have tried this (wonder what happened). Anyway, gcc and clang are
> happy with it.
Alternatively, from a code documentation perspective it would be nice to capture
that the size isn't arbitrary. E.g.
typedef uint32_t aarch64_insn_t;
extern aarch64_insn_t __exec_test[2];
{
void *code;
memcpy(code, __exec_test, sizeof(__exec_test));
}
Note, memcpy() is currently dangerous, but hopefully that will be remedied soonish[*]
[*] https://lore.kernel.org/all/20220908233134.3523339-1-seanjc@google.com
next prev parent reply other threads:[~2022-09-19 20:01 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-06 18:09 [PATCH v6 00/13] KVM: selftests: Add aarch64/page_fault_test Ricardo Koller
2022-09-06 18:09 ` Ricardo Koller
2022-09-06 18:09 ` [PATCH v6 01/13] KVM: selftests: Add a userfaultfd library Ricardo Koller
2022-09-06 18:09 ` Ricardo Koller
2022-09-17 22:14 ` Oliver Upton
2022-09-17 22:14 ` Oliver Upton
2022-09-06 18:09 ` [PATCH v6 02/13] KVM: selftests: aarch64: Add virt_get_pte_hva() library function Ricardo Koller
2022-09-06 18:09 ` Ricardo Koller
2022-09-17 22:15 ` Oliver Upton
2022-09-17 22:15 ` Oliver Upton
2022-09-06 18:09 ` [PATCH v6 03/13] KVM: selftests: Add missing close and munmap in __vm_mem_region_delete() Ricardo Koller
2022-09-06 18:09 ` Ricardo Koller
2022-09-06 18:09 ` [PATCH v6 04/13] KVM: selftests: aarch64: Construct DEFAULT_MAIR_EL1 using sysreg.h macros Ricardo Koller
2022-09-06 18:09 ` Ricardo Koller
2022-09-06 18:09 ` [PATCH v6 05/13] tools: Copy bitfield.h from the kernel sources Ricardo Koller
2022-09-06 18:09 ` Ricardo Koller
2022-09-06 18:09 ` [PATCH v6 06/13] KVM: selftests: Stash backing_src_type in struct userspace_mem_region Ricardo Koller
2022-09-06 18:09 ` Ricardo Koller
2022-09-17 22:17 ` Oliver Upton
2022-09-17 22:17 ` Oliver Upton
2022-09-06 18:09 ` [PATCH v6 07/13] KVM: selftests: Change ____vm_create() to take struct kvm_vm_mem_params Ricardo Koller
2022-09-06 18:09 ` Ricardo Koller
2022-09-19 6:42 ` Andrew Jones
2022-09-19 6:42 ` Andrew Jones
2022-09-19 16:28 ` Sean Christopherson
2022-09-19 16:28 ` Sean Christopherson
2022-09-19 19:21 ` Ricardo Koller
2022-09-19 19:21 ` Ricardo Koller
2022-09-06 18:09 ` [PATCH v6 08/13] KVM: selftests: Use the right memslot for code, page-tables, and data allocations Ricardo Koller
2022-09-06 18:09 ` Ricardo Koller
2022-09-19 6:42 ` Andrew Jones
2022-09-19 6:42 ` Andrew Jones
2022-09-06 18:09 ` [PATCH v6 09/13] KVM: selftests: aarch64: Add aarch64/page_fault_test Ricardo Koller
2022-09-06 18:09 ` Ricardo Koller
2022-09-17 21:58 ` Oliver Upton
2022-09-17 21:58 ` Oliver Upton
2022-09-19 19:29 ` Ricardo Koller
2022-09-19 19:29 ` Ricardo Koller
2022-09-19 20:01 ` Sean Christopherson [this message]
2022-09-19 20:01 ` Sean Christopherson
2022-09-06 18:09 ` [PATCH v6 10/13] KVM: selftests: aarch64: Add userfaultfd tests into page_fault_test Ricardo Koller
2022-09-06 18:09 ` Ricardo Koller
2022-09-06 18:09 ` [PATCH v6 11/13] KVM: selftests: aarch64: Add dirty logging " Ricardo Koller
2022-09-06 18:09 ` Ricardo Koller
2022-09-06 18:09 ` [PATCH v6 12/13] KVM: selftests: aarch64: Add readonly memslot " Ricardo Koller
2022-09-06 18:09 ` Ricardo Koller
2022-09-06 18:09 ` [PATCH v6 13/13] KVM: selftests: aarch64: Add mix of " Ricardo Koller
2022-09-06 18:09 ` Ricardo Koller
2022-09-19 10:38 ` [PATCH v6 00/13] KVM: selftests: Add aarch64/page_fault_test Marc Zyngier
2022-09-19 10:38 ` Marc Zyngier
2022-09-19 16:38 ` Sean Christopherson
2022-09-19 16:38 ` Sean Christopherson
2022-09-19 16:57 ` Marc Zyngier
2022-09-19 16:57 ` Marc Zyngier
2022-09-19 18:28 ` Ricardo Koller
2022-09-19 18:28 ` Ricardo Koller
-- strict thread matches above, loose matches on Subject: below --
2022-09-20 4:14 Ricardo Koller
2022-09-20 4:15 ` [PATCH v6 09/13] KVM: selftests: aarch64: " Ricardo Koller
2022-09-20 4:15 ` Ricardo Koller
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=YyjKir3OGCfFvAsy@google.com \
--to=seanjc@google.com \
--cc=andrew.jones@linux.dev \
--cc=axelrasmussen@google.com \
--cc=bgardon@google.com \
--cc=dmatlack@google.com \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.cs.columbia.edu \
--cc=maz@kernel.org \
--cc=pbonzini@redhat.com \
--cc=ricarkol@google.com \
/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.