Re: [Crash-utility] [PATCH] crash/arm64: Determine vabits_actual value from 'TCR_EL1.T1SZ' value in vmcoreinfo

2019-11-19 Thread Dave Anderson


- Original Message -
> I have recently sent a kernel patch upstream to add 'TCR_EL1.T1SZ' to
> vmcoreinfo for arm64 (see [0]), instead of VA_BITS_ACTUAL.
> 
> 'crash' can read the 'TCR_EL1.T1SZ' value from vmcoreinfo
> [which indicates the size offset of the memory region addressed by
> TTBR1_EL1] and hence can be used for determining the vabits_actual
> value.

Thanks Bhupesh -- your patch has been queued for crash-7.2.8:

  
https://github.com/crash-utility/crash/commit/bfd9a651f9426d86250295ac875d7e33d8de2a97

Dave


> 
> [0].http://lists.infradead.org/pipermail/kexec/2019-November/023962.html
> 
> Cc: Dave Anderson 
> Cc: AKASHI Takahiro 
> Cc: Prabhakar Kushwaha 
> Cc: crash-utility@redhat.com
> Signed-off-by: Bhupesh Sharma 
> ---
>  arm64.c | 13 +++--
>  1 file changed, 11 insertions(+), 2 deletions(-)
> 
> diff --git a/arm64.c b/arm64.c
> index af7147d24e20..083491331985 100644
> --- a/arm64.c
> +++ b/arm64.c
> @@ -3856,8 +3856,17 @@ arm64_calc_VA_BITS(void)
>   } else if (ACTIVE())
>   error(FATAL, "cannot determine VA_BITS_ACTUAL: please 
> use
>   /proc/kcore\n");
>   else {
> - if ((string = 
> pc->read_vmcoreinfo("NUMBER(VA_BITS_ACTUAL)"))) {
> - value = atol(string);
> + if ((string = 
> pc->read_vmcoreinfo("NUMBER(tcr_el1_t1sz)"))) {
> + /* See ARMv8 ARM for the description of
> +  * TCR_EL1.T1SZ and how it can be used
> +  * to calculate the vabits_actual
> +  * supported by underlying kernel.
> +  *
> +  * Basically:
> +  * vabits_actual = 64 - T1SZ;
> +  */
> + value = 64 - strtoll(string, NULL, 0);
> + fprintf(fp,  "vmcoreinfo : vabits_actual: 
> %ld\n", value);
>   free(string);
>   machdep->machspec->VA_BITS_ACTUAL = value;
>   machdep->machspec->VA_BITS = value;
> --
> 2.7.4
> 
> 

--
Crash-utility mailing list
Crash-utility@redhat.com
https://www.redhat.com/mailman/listinfo/crash-utility



[Crash-utility] TEST -- please ignore

2019-11-19 Thread anderson




--
Crash-utility mailing list
Crash-utility@redhat.com
https://www.redhat.com/mailman/listinfo/crash-utility



[Crash-utility] [PATCH] crash/arm64: Determine vabits_actual value from 'TCR_EL1.T1SZ' value in vmcoreinfo

2019-11-19 Thread Bhupesh Sharma
I have recently sent a kernel patch upstream to add 'TCR_EL1.T1SZ' to
vmcoreinfo for arm64 (see [0]), instead of VA_BITS_ACTUAL.

'crash' can read the 'TCR_EL1.T1SZ' value from vmcoreinfo
[which indicates the size offset of the memory region addressed by
TTBR1_EL1] and hence can be used for determining the vabits_actual
value.

[0].http://lists.infradead.org/pipermail/kexec/2019-November/023962.html

Cc: Dave Anderson 
Cc: AKASHI Takahiro 
Cc: Prabhakar Kushwaha 
Cc: crash-utility@redhat.com
Signed-off-by: Bhupesh Sharma 
---
 arm64.c | 13 +++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/arm64.c b/arm64.c
index af7147d24e20..083491331985 100644
--- a/arm64.c
+++ b/arm64.c
@@ -3856,8 +3856,17 @@ arm64_calc_VA_BITS(void)
} else if (ACTIVE())
error(FATAL, "cannot determine VA_BITS_ACTUAL: please 
use /proc/kcore\n");
else {
-   if ((string = 
pc->read_vmcoreinfo("NUMBER(VA_BITS_ACTUAL)"))) {
-   value = atol(string);
+   if ((string = 
pc->read_vmcoreinfo("NUMBER(tcr_el1_t1sz)"))) {
+   /* See ARMv8 ARM for the description of
+* TCR_EL1.T1SZ and how it can be used
+* to calculate the vabits_actual
+* supported by underlying kernel.
+*
+* Basically:
+* vabits_actual = 64 - T1SZ;
+*/
+   value = 64 - strtoll(string, NULL, 0);
+   fprintf(fp,  "vmcoreinfo : vabits_actual: 
%ld\n", value);
free(string);
machdep->machspec->VA_BITS_ACTUAL = value;
machdep->machspec->VA_BITS = value;
-- 
2.7.4


--
Crash-utility mailing list
Crash-utility@redhat.com
https://www.redhat.com/mailman/listinfo/crash-utility