diff mbox series

[bpf-next,5/5] selftests/bpf: Remove the casting about jited_ksyms and jited_linfo

Message ID 20220716125108.1011206-6-pulehui@huawei.com (mailing list archive)
State Superseded
Delegated to: BPF
Headers show
Series cleanup for data casting | expand

Checks

Context Check Description
bpf/vmtest-bpf-next-VM_Test-3 success Logs for Kernel LATEST on z15 with gcc
netdev/tree_selection success Clearly marked for bpf-next
netdev/fixes_present success Fixes tag not required for -next series
netdev/subject_prefix success Link
netdev/cover_letter success Series has a cover letter
netdev/patch_count success Link
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 0 this patch: 0
netdev/cc_maintainers warning 8 maintainers not CCed: haoluo@google.com song@kernel.org linux-kselftest@vger.kernel.org martin.lau@linux.dev mykolal@fb.com jolsa@kernel.org sdf@google.com shuah@kernel.org
netdev/build_clang success Errors and warnings before: 0 this patch: 0
netdev/module_param success Was 0 now: 0
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/check_selftest success No net selftest shell script
netdev/verify_fixes success No Fixes tag
netdev/build_allmodconfig_warn success Errors and warnings before: 0 this patch: 0
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 33 lines checked
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/source_inline success Was 0 now: 0
bpf/vmtest-bpf-next-VM_Test-1 success Logs for Kernel LATEST on ubuntu-latest with gcc
bpf/vmtest-bpf-next-PR success PR summary
bpf/vmtest-bpf-next-VM_Test-2 success Logs for Kernel LATEST on ubuntu-latest with llvm-15

Commit Message

Pu Lehui July 16, 2022, 12:51 p.m. UTC
We have unified data extension operation of jited_ksyms and jited_linfo
into zero extension, so there's no need to cast u64 memory address to
long data type.

Signed-off-by: Pu Lehui <pulehui@huawei.com>
---
 tools/testing/selftests/bpf/prog_tests/btf.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

Comments

Yonghong Song July 17, 2022, 1:46 a.m. UTC | #1
On 7/16/22 5:51 AM, Pu Lehui wrote:
> We have unified data extension operation of jited_ksyms and jited_linfo
> into zero extension, so there's no need to cast u64 memory address to
> long data type.

For subject, we are not 'Remove the casting ...'. What the code did is
to change the casting.

Also, I don't understand the above commit message. What does this mean
about 'data extension operation of jited_ksyms and jited_linfo into zero 
extension'?

In prog_tests/btf.c, we have a few other places to cast 
jited_linfo[...]/jited_ksyms[...] to 'long' type. Maybe casting
to 'unsigned long' is a better choice. Casting to 'unsigned long long'
of course will work, but is it necessary? Or you are talking about
64bit kernel and 32bit user space?

> 
> Signed-off-by: Pu Lehui <pulehui@huawei.com>
> ---
>   tools/testing/selftests/bpf/prog_tests/btf.c | 16 +++++++++-------
>   1 file changed, 9 insertions(+), 7 deletions(-)
> 
> diff --git a/tools/testing/selftests/bpf/prog_tests/btf.c b/tools/testing/selftests/bpf/prog_tests/btf.c
> index e852a9df779d..db10fa1745d1 100644
> --- a/tools/testing/selftests/bpf/prog_tests/btf.c
> +++ b/tools/testing/selftests/bpf/prog_tests/btf.c
> @@ -6613,8 +6613,9 @@ static int test_get_linfo(const struct prog_info_raw_test *test,
>   	}
>   
>   	if (CHECK(jited_linfo[0] != jited_ksyms[0],
> -		  "jited_linfo[0]:%lx != jited_ksyms[0]:%lx",
> -		  (long)(jited_linfo[0]), (long)(jited_ksyms[0]))) {
> +		  "jited_linfo[0]:%llx != jited_ksyms[0]:%llx",
> +		  (unsigned long long)(jited_linfo[0]),
> +		  (unsigned long long)(jited_ksyms[0]))) {
>   		err = -1;
>   		goto done;
>   	}
> @@ -6632,16 +6633,17 @@ static int test_get_linfo(const struct prog_info_raw_test *test,
>   		}
>   
>   		if (CHECK(jited_linfo[i] <= jited_linfo[i - 1],
> -			  "jited_linfo[%u]:%lx <= jited_linfo[%u]:%lx",
> -			  i, (long)jited_linfo[i],
> -			  i - 1, (long)(jited_linfo[i - 1]))) {
> +			  "jited_linfo[%u]:%llx <= jited_linfo[%u]:%llx",
> +			  i, (unsigned long long)jited_linfo[i],
> +			  i - 1, (unsigned long long)(jited_linfo[i - 1]))) {
>   			err = -1;
>   			goto done;
>   		}
>   
>   		if (CHECK(jited_linfo[i] - cur_func_ksyms > cur_func_len,
> -			  "jited_linfo[%u]:%lx - %lx > %u",
> -			  i, (long)jited_linfo[i], (long)cur_func_ksyms,
> +			  "jited_linfo[%u]:%llx - %llx > %u",
> +			  i, (unsigned long long)jited_linfo[i],
> +			  (unsigned long long)cur_func_ksyms,
>   			  cur_func_len)) {
>   			err = -1;
>   			goto done;
Pu Lehui July 18, 2022, 11:57 a.m. UTC | #2
On 2022/7/17 9:46, Yonghong Song wrote:
> 
> 
> On 7/16/22 5:51 AM, Pu Lehui wrote:
>> We have unified data extension operation of jited_ksyms and jited_linfo
>> into zero extension, so there's no need to cast u64 memory address to
>> long data type.
> 
> For subject, we are not 'Remove the casting ...'. What the code did is
> to change the casting.
> 
> Also, I don't understand the above commit message. What does this mean
> about 'data extension operation of jited_ksyms and jited_linfo into zero 
> extension'?
> 
> In prog_tests/btf.c, we have a few other places to cast 
> jited_linfo[...]/jited_ksyms[...] to 'long' type. Maybe casting
> to 'unsigned long' is a better choice. Casting to 'unsigned long long'
> of course will work, but is it necessary? Or you are talking about
> 64bit kernel and 32bit user space?
> 

Hi Yonghong,

Thanks for your review. We introduced riscv jited line info in series 
[0], and we found that 32-bit systems can not display bpf line info due 
to the inconsistent data extension between jited_ksyms and jited_linfo. 
And we finally unify them to zero extension. By the way, we cleanup the 
related code. jited_ksyms and jited_linfo both are u64 address, no need 
to casting to long, and we previously remove it. But u64 in some arch is 
%ld, so to avoid compiler warnings we just cast to unsigned long long.

And sorry for not updating the subject and comment. I will corret it.

[0] 
https://lore.kernel.org/bpf/CAEf4Bza4RT=KFhr9ev29967dyT0eF_+6ZRqK35beUvnA_NbcqQ@mail.gmail.com/

>>
>> Signed-off-by: Pu Lehui <pulehui@huawei.com>
>> ---
>>   tools/testing/selftests/bpf/prog_tests/btf.c | 16 +++++++++-------
>>   1 file changed, 9 insertions(+), 7 deletions(-)
>>
>> diff --git a/tools/testing/selftests/bpf/prog_tests/btf.c 
>> b/tools/testing/selftests/bpf/prog_tests/btf.c
>> index e852a9df779d..db10fa1745d1 100644
>> --- a/tools/testing/selftests/bpf/prog_tests/btf.c
>> +++ b/tools/testing/selftests/bpf/prog_tests/btf.c
>> @@ -6613,8 +6613,9 @@ static int test_get_linfo(const struct 
>> prog_info_raw_test *test,
>>       }
>>       if (CHECK(jited_linfo[0] != jited_ksyms[0],
>> -          "jited_linfo[0]:%lx != jited_ksyms[0]:%lx",
>> -          (long)(jited_linfo[0]), (long)(jited_ksyms[0]))) {
>> +          "jited_linfo[0]:%llx != jited_ksyms[0]:%llx",
>> +          (unsigned long long)(jited_linfo[0]),
>> +          (unsigned long long)(jited_ksyms[0]))) {
>>           err = -1;
>>           goto done;
>>       }
>> @@ -6632,16 +6633,17 @@ static int test_get_linfo(const struct 
>> prog_info_raw_test *test,
>>           }
>>           if (CHECK(jited_linfo[i] <= jited_linfo[i - 1],
>> -              "jited_linfo[%u]:%lx <= jited_linfo[%u]:%lx",
>> -              i, (long)jited_linfo[i],
>> -              i - 1, (long)(jited_linfo[i - 1]))) {
>> +              "jited_linfo[%u]:%llx <= jited_linfo[%u]:%llx",
>> +              i, (unsigned long long)jited_linfo[i],
>> +              i - 1, (unsigned long long)(jited_linfo[i - 1]))) {
>>               err = -1;
>>               goto done;
>>           }
>>           if (CHECK(jited_linfo[i] - cur_func_ksyms > cur_func_len,
>> -              "jited_linfo[%u]:%lx - %lx > %u",
>> -              i, (long)jited_linfo[i], (long)cur_func_ksyms,
>> +              "jited_linfo[%u]:%llx - %llx > %u",
>> +              i, (unsigned long long)jited_linfo[i],
>> +              (unsigned long long)cur_func_ksyms,
>>                 cur_func_len)) {
>>               err = -1;
>>               goto done;
> .
diff mbox series

Patch

diff --git a/tools/testing/selftests/bpf/prog_tests/btf.c b/tools/testing/selftests/bpf/prog_tests/btf.c
index e852a9df779d..db10fa1745d1 100644
--- a/tools/testing/selftests/bpf/prog_tests/btf.c
+++ b/tools/testing/selftests/bpf/prog_tests/btf.c
@@ -6613,8 +6613,9 @@  static int test_get_linfo(const struct prog_info_raw_test *test,
 	}
 
 	if (CHECK(jited_linfo[0] != jited_ksyms[0],
-		  "jited_linfo[0]:%lx != jited_ksyms[0]:%lx",
-		  (long)(jited_linfo[0]), (long)(jited_ksyms[0]))) {
+		  "jited_linfo[0]:%llx != jited_ksyms[0]:%llx",
+		  (unsigned long long)(jited_linfo[0]),
+		  (unsigned long long)(jited_ksyms[0]))) {
 		err = -1;
 		goto done;
 	}
@@ -6632,16 +6633,17 @@  static int test_get_linfo(const struct prog_info_raw_test *test,
 		}
 
 		if (CHECK(jited_linfo[i] <= jited_linfo[i - 1],
-			  "jited_linfo[%u]:%lx <= jited_linfo[%u]:%lx",
-			  i, (long)jited_linfo[i],
-			  i - 1, (long)(jited_linfo[i - 1]))) {
+			  "jited_linfo[%u]:%llx <= jited_linfo[%u]:%llx",
+			  i, (unsigned long long)jited_linfo[i],
+			  i - 1, (unsigned long long)(jited_linfo[i - 1]))) {
 			err = -1;
 			goto done;
 		}
 
 		if (CHECK(jited_linfo[i] - cur_func_ksyms > cur_func_len,
-			  "jited_linfo[%u]:%lx - %lx > %u",
-			  i, (long)jited_linfo[i], (long)cur_func_ksyms,
+			  "jited_linfo[%u]:%llx - %llx > %u",
+			  i, (unsigned long long)jited_linfo[i],
+			  (unsigned long long)cur_func_ksyms,
 			  cur_func_len)) {
 			err = -1;
 			goto done;