From: Oliver Upton <oliver.upton@linux.dev>
To: Sean Christopherson <seanjc@google.com>
Cc: kvm@vger.kernel.org, Marc Zyngier <maz@kernel.org>,
linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org,
kvmarm@lists.linux.dev, Paolo Bonzini <pbonzini@redhat.com>,
Shuah Khan <shuah@kernel.org>,
kvmarm@lists.cs.columbia.edu,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 3/4] KVM: arm64: selftests: Align VA space allocator with TTBR0
Date: Thu, 8 Dec 2022 00:27:02 +0000 [thread overview]
Message-ID: <Y5EvVtAoDSHvIKie@google.com> (raw)
In-Reply-To: <Y5EtP5z6rxSK1VUe@google.com>
On Thu, Dec 08, 2022 at 12:18:07AM +0000, Sean Christopherson wrote:
[...]
> Together, what about? The #ifdef is a bit gross, especially around "hi_start",
> but it's less duplicate code. And IMO, having things bundled in the same place
> makes it a lot easier for newbies (to arm64 or kernel coding in general) to
> understand what's going on and why arm64 is different.
I'd rather we not go this route. We really shouldn't make any attempt to
de-dupe something that is inherently architecture specific.
For example:
> + /*
> + * All architectures supports splitting the virtual address space into
> + * a high and a low half. Populate both halves, except for arm64 which
> + * currently uses only TTBR0_EL1 (arbitrary selftests "logic"), i.e.
> + * only has a valid low half.
> + */
> + sparsebit_num_t nr_va_bits = (1ULL << (vm->va_bits - 1)) >> vm->page_shift;
This is still wrong for arm64. When we say the VA space is 48 bits, we
really do mean that TTBR0 is able to address a full 48 bits. So this
truncates the MSB for the addressing mode.
With the code living in the arm64 side of the shop, I can also tailor
the comment to directly match the architecture to provide breadcrumbs
tying it back to the Arm ARM.
--
Thanks,
Oliver
_______________________________________________
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: Oliver Upton <oliver.upton@linux.dev>
To: Sean Christopherson <seanjc@google.com>
Cc: Marc Zyngier <maz@kernel.org>, James Morse <james.morse@arm.com>,
Alexandru Elisei <alexandru.elisei@arm.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Shuah Khan <shuah@kernel.org>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
linux-arm-kernel@lists.infradead.org,
kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org,
kvmarm@lists.linux.dev, Ricardo Koller <ricarkol@google.com>,
linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 3/4] KVM: arm64: selftests: Align VA space allocator with TTBR0
Date: Thu, 8 Dec 2022 00:27:02 +0000 [thread overview]
Message-ID: <Y5EvVtAoDSHvIKie@google.com> (raw)
Message-ID: <20221208002702.sZQv0GcUlMmBgD20qm5NtAahAYmMCZcJ__4KhBsPzu0@z> (raw)
In-Reply-To: <Y5EtP5z6rxSK1VUe@google.com>
On Thu, Dec 08, 2022 at 12:18:07AM +0000, Sean Christopherson wrote:
[...]
> Together, what about? The #ifdef is a bit gross, especially around "hi_start",
> but it's less duplicate code. And IMO, having things bundled in the same place
> makes it a lot easier for newbies (to arm64 or kernel coding in general) to
> understand what's going on and why arm64 is different.
I'd rather we not go this route. We really shouldn't make any attempt to
de-dupe something that is inherently architecture specific.
For example:
> + /*
> + * All architectures supports splitting the virtual address space into
> + * a high and a low half. Populate both halves, except for arm64 which
> + * currently uses only TTBR0_EL1 (arbitrary selftests "logic"), i.e.
> + * only has a valid low half.
> + */
> + sparsebit_num_t nr_va_bits = (1ULL << (vm->va_bits - 1)) >> vm->page_shift;
This is still wrong for arm64. When we say the VA space is 48 bits, we
really do mean that TTBR0 is able to address a full 48 bits. So this
truncates the MSB for the addressing mode.
With the code living in the arm64 side of the shop, I can also tailor
the comment to directly match the architecture to provide breadcrumbs
tying it back to the Arm ARM.
--
Thanks,
Oliver
WARNING: multiple messages have this Message-ID (diff)
From: Oliver Upton <oliver.upton@linux.dev>
To: Sean Christopherson <seanjc@google.com>
Cc: Marc Zyngier <maz@kernel.org>, James Morse <james.morse@arm.com>,
Alexandru Elisei <alexandru.elisei@arm.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Shuah Khan <shuah@kernel.org>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
linux-arm-kernel@lists.infradead.org,
kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org,
kvmarm@lists.linux.dev, Ricardo Koller <ricarkol@google.com>,
linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 3/4] KVM: arm64: selftests: Align VA space allocator with TTBR0
Date: Thu, 8 Dec 2022 00:27:02 +0000 [thread overview]
Message-ID: <Y5EvVtAoDSHvIKie@google.com> (raw)
In-Reply-To: <Y5EtP5z6rxSK1VUe@google.com>
On Thu, Dec 08, 2022 at 12:18:07AM +0000, Sean Christopherson wrote:
[...]
> Together, what about? The #ifdef is a bit gross, especially around "hi_start",
> but it's less duplicate code. And IMO, having things bundled in the same place
> makes it a lot easier for newbies (to arm64 or kernel coding in general) to
> understand what's going on and why arm64 is different.
I'd rather we not go this route. We really shouldn't make any attempt to
de-dupe something that is inherently architecture specific.
For example:
> + /*
> + * All architectures supports splitting the virtual address space into
> + * a high and a low half. Populate both halves, except for arm64 which
> + * currently uses only TTBR0_EL1 (arbitrary selftests "logic"), i.e.
> + * only has a valid low half.
> + */
> + sparsebit_num_t nr_va_bits = (1ULL << (vm->va_bits - 1)) >> vm->page_shift;
This is still wrong for arm64. When we say the VA space is 48 bits, we
really do mean that TTBR0 is able to address a full 48 bits. So this
truncates the MSB for the addressing mode.
With the code living in the arm64 side of the shop, I can also tailor
the comment to directly match the architecture to provide breadcrumbs
tying it back to the Arm ARM.
--
Thanks,
Oliver
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-12-08 0:27 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-07 21:48 [PATCH 0/4] KVM: selftests: Fixes for ucall pool + page_fault_test Oliver Upton
2022-12-07 21:48 ` Oliver Upton
2022-12-07 21:48 ` Oliver Upton
2022-12-07 21:48 ` [PATCH 1/4] KVM: selftests: Fix build due to ucall_uninit() removal Oliver Upton
2022-12-07 21:48 ` Oliver Upton
2022-12-07 21:48 ` Oliver Upton
2022-12-07 21:48 ` [PATCH 2/4] KVM: selftests: Setup ucall after loading program into guest memory Oliver Upton
2022-12-07 21:48 ` Oliver Upton
2022-12-07 21:48 ` Oliver Upton
2022-12-07 23:57 ` Sean Christopherson
2022-12-07 23:57 ` Sean Christopherson
2022-12-07 23:57 ` Sean Christopherson
2022-12-08 0:17 ` Oliver Upton
2022-12-08 0:17 ` Oliver Upton
2022-12-08 0:17 ` Oliver Upton
2022-12-08 0:24 ` Sean Christopherson
2022-12-08 0:24 ` Sean Christopherson
2022-12-08 0:24 ` Sean Christopherson
2022-12-08 0:37 ` Oliver Upton
2022-12-08 0:37 ` Oliver Upton
2022-12-08 0:37 ` Oliver Upton
2022-12-08 18:47 ` Ricardo Koller
2022-12-08 18:47 ` Ricardo Koller
2022-12-08 18:47 ` Ricardo Koller
2022-12-08 19:01 ` Sean Christopherson
2022-12-08 19:01 ` Sean Christopherson
2022-12-08 19:01 ` Sean Christopherson
2022-12-08 19:49 ` Ricardo Koller
2022-12-08 19:49 ` Ricardo Koller
2022-12-08 19:49 ` Ricardo Koller
2022-12-09 1:08 ` Sean Christopherson
2022-12-09 1:08 ` Sean Christopherson
2022-12-09 1:08 ` Sean Christopherson
2022-12-07 21:48 ` [PATCH 3/4] KVM: arm64: selftests: Align VA space allocator with TTBR0 Oliver Upton
2022-12-07 21:48 ` Oliver Upton
2022-12-07 21:48 ` Oliver Upton
2022-12-08 0:18 ` Sean Christopherson
2022-12-08 0:18 ` Sean Christopherson
2022-12-08 0:18 ` Sean Christopherson
2022-12-08 0:27 ` Oliver Upton [this message]
2022-12-08 0:27 ` Oliver Upton
2022-12-08 0:27 ` Oliver Upton
2022-12-08 1:09 ` Sean Christopherson
2022-12-08 1:09 ` Sean Christopherson
2022-12-08 1:09 ` Sean Christopherson
2022-12-08 16:23 ` Andrew Jones
2022-12-08 16:23 ` Andrew Jones
2022-12-08 16:23 ` Andrew Jones
2022-12-07 21:48 ` [PATCH 4/4] KVM: selftests: Allocate ucall pool from MEM_REGION_DATA Oliver Upton
2022-12-07 21:48 ` Oliver Upton
2022-12-07 21:48 ` Oliver Upton
2022-12-07 23:44 ` Sean Christopherson
2022-12-07 23:44 ` Sean Christopherson
2022-12-07 23:44 ` Sean Christopherson
2022-12-07 23:56 ` Oliver Upton
2022-12-07 23:56 ` Oliver Upton
2022-12-07 23:56 ` Oliver Upton
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=Y5EvVtAoDSHvIKie@google.com \
--to=oliver.upton@linux.dev \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.cs.columbia.edu \
--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=maz@kernel.org \
--cc=pbonzini@redhat.com \
--cc=seanjc@google.com \
--cc=shuah@kernel.org \
/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.