lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <d22105ed-01e8-4abd-ade9-86686f48d221@kernel.org>
Date: Mon, 12 Jan 2026 08:19:51 +0100
From: "Christophe Leroy (CS GROUP)" <chleroy@...nel.org>
To: adubey <adubey@...p.linux.ibm.com>,
 Saket Kumar Bhaskar <skb99@...ux.ibm.com>
Cc: adubey@...ux.ibm.com, bpf@...r.kernel.org, linuxppc-dev@...ts.ozlabs.org,
 linux-kselftest@...r.kernel.org, linux-kernel@...r.kernel.org,
 hbathini@...ux.ibm.com, sachinpb@...ux.ibm.com, venkat88@...ux.ibm.com,
 andrii@...nel.org, eddyz87@...il.com, mykolal@...com, ast@...nel.org,
 daniel@...earbox.net, martin.lau@...ux.dev, song@...nel.org,
 yonghong.song@...ux.dev, john.fastabend@...il.com, kpsingh@...nel.org,
 sdf@...ichev.me, haoluo@...gle.com, jolsa@...nel.org, naveen@...nel.org,
 maddy@...ux.ibm.com, mpe@...erman.id.au, npiggin@...il.com,
 memxor@...il.com, iii@...ux.ibm.com, shuah@...nel.org
Subject: Re: [PATCH 5/6] powerpc64/bpf: Support exceptions



Le 12/01/2026 à 07:58, adubey a écrit :
> [Vous ne recevez pas souvent de courriers de adubey@...p.linux.ibm.com. 
> D?couvrez pourquoi ceci est important ? https://aka.ms/ 
> LearnAboutSenderIdentification ]
> 
> On 2026-01-12 11:21, Saket Kumar Bhaskar wrote:
>> On Mon, Jan 05, 2026 at 04:22:11PM +0530, adubey@...ux.ibm.com wrote:
>>> From: Abhishek Dubey <adubey@...ux.ibm.com>
>>>
>>> The modified prologue/epilogue generation code now
>>> enables exception-callback to use the stack frame of
>>> the program marked as exception boundary, where callee
>>> saved registers are stored.
>>>
>>> As per ppc64 ABIv2 documentation[1], r14-r31 are callee
>>> saved registers. BPF programs on ppc64 already saves
>>> r26-r31 registers. Saving the remaining set of callee
>>> saved registers(r14-r25) is handled in the next patch.
>>>
>>> [1]
>>> https://eur01.safelinks.protection.outlook.com/? 
>>> url=https%3A%2F%2Fftp.rtems.org%2Fpub%2Frtems%2Fpeople%2Fsebh%2FABI64BitOpenPOWERv1.1_16July2015_pub.pdf&data=05%7C02%7Cchristophe.leroy%40csgroup.eu%7Cdecf1943ac9949608edb08de51a7f357%7C8b87af7d86474dc78df45f69a2011bb5%7C0%7C0%7C639037978954052961%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=uCfpmnY2bQT7yD3esp8nkyLPGfEzpK9UoCgV2sm0j80%3D&reserved=0
>>>
>>> Following is exceptions selftest result on ppc64le:
>>>
>>> # ./test_progs -t exceptions
>>> #100/1   exceptions/exception_throw_always_1:OK
>>> #100/2   exceptions/exception_throw_always_2:OK
>>> #100/3   exceptions/exception_throw_unwind_1:OK
>>> #100/4   exceptions/exception_throw_unwind_2:OK
>>> #100/5   exceptions/exception_throw_default:OK
>>> #100/6   exceptions/exception_throw_default_value:OK
>>> #100/7   exceptions/exception_tail_call:OK
>>> #100/8   exceptions/exception_ext:OK
>>> #100/9   exceptions/exception_ext_mod_cb_runtime:OK
>>> #100/10  exceptions/exception_throw_subprog:OK
>>> #100/11  exceptions/exception_assert_nz_gfunc:OK
>>> #100/12  exceptions/exception_assert_zero_gfunc:OK
>>> #100/13  exceptions/exception_assert_neg_gfunc:OK
>>> #100/14  exceptions/exception_assert_pos_gfunc:OK
>>> #100/15  exceptions/exception_assert_negeq_gfunc:OK
>>> #100/16  exceptions/exception_assert_poseq_gfunc:OK
>>> #100/17  exceptions/exception_assert_nz_gfunc_with:OK
>>> #100/18  exceptions/exception_assert_zero_gfunc_with:OK
>>> #100/19  exceptions/exception_assert_neg_gfunc_with:OK
>>> #100/20  exceptions/exception_assert_pos_gfunc_with:OK
>>> #100/21  exceptions/exception_assert_negeq_gfunc_with:OK
>>> #100/22  exceptions/exception_assert_poseq_gfunc_with:OK
>>> #100/23  exceptions/exception_bad_assert_nz_gfunc:OK
>>> #100/24  exceptions/exception_bad_assert_zero_gfunc:OK
>>> #100/25  exceptions/exception_bad_assert_neg_gfunc:OK
>>> #100/26  exceptions/exception_bad_assert_pos_gfunc:OK
>>> #100/27  exceptions/exception_bad_assert_negeq_gfunc:OK
>>> #100/28  exceptions/exception_bad_assert_poseq_gfunc:OK
>>> #100/29  exceptions/exception_bad_assert_nz_gfunc_with:OK
>>> #100/30  exceptions/exception_bad_assert_zero_gfunc_with:OK
>>> #100/31  exceptions/exception_bad_assert_neg_gfunc_with:OK
>>> #100/32  exceptions/exception_bad_assert_pos_gfunc_with:OK
>>> #100/33  exceptions/exception_bad_assert_negeq_gfunc_with:OK
>>> #100/34  exceptions/exception_bad_assert_poseq_gfunc_with:OK
>>> #100/35  exceptions/exception_assert_range:OK
>>> #100/36  exceptions/exception_assert_range_with:OK
>>> #100/37  exceptions/exception_bad_assert_range:OK
>>> #100/38  exceptions/exception_bad_assert_range_with:OK
>>> #100/39  exceptions/non-throwing fentry -> exception_cb:OK
>>> #100/40  exceptions/throwing fentry -> exception_cb:OK
>>> #100/41  exceptions/non-throwing fexit -> exception_cb:OK
>>> #100/42  exceptions/throwing fexit -> exception_cb:OK
>>> #100/43  exceptions/throwing extension (with custom cb) ->
>>> exception_cb:OK
>>> #100/44  exceptions/throwing extension -> global func in
>>> exception_cb:OK
>>> #100/45  exceptions/exception_ext_mod_cb_runtime:OK
>>> #100/46  exceptions/throwing extension (with custom cb) -> global func
>>> in exception_cb:OK
>>> #100/47  exceptions/exception_ext:OK
>>> #100/48  exceptions/non-throwing fentry -> non-throwing subprog:OK
>>> #100/49  exceptions/throwing fentry -> non-throwing subprog:OK
>>> #100/50  exceptions/non-throwing fentry -> throwing subprog:OK
>>> #100/51  exceptions/throwing fentry -> throwing subprog:OK
>>> #100/52  exceptions/non-throwing fexit -> non-throwing subprog:OK
>>> #100/53  exceptions/throwing fexit -> non-throwing subprog:OK
>>> #100/54  exceptions/non-throwing fexit -> throwing subprog:OK
>>> #100/55  exceptions/throwing fexit -> throwing subprog:OK
>>> #100/56  exceptions/non-throwing fmod_ret -> non-throwing subprog:OK
>>> #100/57  exceptions/non-throwing fmod_ret -> non-throwing global
>>> subprog:OK
>>> #100/58  exceptions/non-throwing extension -> non-throwing subprog:OK
>>> #100/59  exceptions/non-throwing extension -> throwing subprog:OK
>>> #100/60  exceptions/non-throwing extension -> non-throwing subprog:OK
>>> #100/61  exceptions/non-throwing extension -> throwing global
>>> subprog:OK
>>> #100/62  exceptions/throwing extension -> throwing global subprog:OK
>>> #100/63  exceptions/throwing extension -> non-throwing global
>>> subprog:OK
>>> #100/64  exceptions/non-throwing extension -> main subprog:OK
>>> #100/65  exceptions/throwing extension -> main subprog:OK
>>> #100/66  exceptions/reject_exception_cb_type_1:OK
>>> #100/67  exceptions/reject_exception_cb_type_2:OK
>>> #100/68  exceptions/reject_exception_cb_type_3:OK
>>> #100/69  exceptions/reject_exception_cb_type_4:OK
>>> #100/70  exceptions/reject_async_callback_throw:OK
>>> #100/71  exceptions/reject_with_lock:OK
>>> #100/72  exceptions/reject_subprog_with_lock:OK
>>> #100/73  exceptions/reject_with_rcu_read_lock:OK
>>> #100/74  exceptions/reject_subprog_with_rcu_read_lock:OK
>>> #100/75  exceptions/reject_with_rbtree_add_throw:OK
>>> #100/76  exceptions/reject_with_reference:OK
>>> #100/77  exceptions/reject_with_cb_reference:OK
>>> #100/78  exceptions/reject_with_cb:OK
>>> #100/79  exceptions/reject_with_subprog_reference:OK
>>> #100/80  exceptions/reject_throwing_exception_cb:OK
>>> #100/81  exceptions/reject_exception_cb_call_global_func:OK
>>> #100/82  exceptions/reject_exception_cb_call_static_func:OK
>>> #100/83  exceptions/reject_multiple_exception_cb:OK
>>> #100/84  exceptions/reject_exception_throw_cb:OK
>>> #100/85  exceptions/reject_exception_throw_cb_diff:OK
>>> #100/86  exceptions/reject_set_exception_cb_bad_ret1:OK
>>> #100/87  exceptions/reject_set_exception_cb_bad_ret2:OK
>>> #100/88  exceptions/check_assert_eq_int_min:OK
>>> #100/89  exceptions/check_assert_eq_int_max:OK
>>> #100/90  exceptions/check_assert_eq_zero:OK
>>> #100/91  exceptions/check_assert_eq_llong_min:OK
>>> #100/92  exceptions/check_assert_eq_llong_max:OK
>>> #100/93  exceptions/check_assert_lt_pos:OK
>>> #100/94  exceptions/check_assert_lt_zero:OK
>>> #100/95  exceptions/check_assert_lt_neg:OK
>>> #100/96  exceptions/check_assert_le_pos:OK
>>> #100/97  exceptions/check_assert_le_zero:OK
>>> #100/98  exceptions/check_assert_le_neg:OK
>>> #100/99  exceptions/check_assert_gt_pos:OK
>>> #100/100 exceptions/check_assert_gt_zero:OK
>>> #100/101 exceptions/check_assert_gt_neg:OK
>>> #100/102 exceptions/check_assert_ge_pos:OK
>>> #100/103 exceptions/check_assert_ge_zero:OK
>>> #100/104 exceptions/check_assert_ge_neg:OK
>>> #100/105 exceptions/check_assert_range_s64:OK
>>> #100/106 exceptions/check_assert_range_u64:OK
>>> #100/107 exceptions/check_assert_single_range_s64:OK
>>> #100/108 exceptions/check_assert_single_range_u64:OK
>>> #100/109 exceptions/check_assert_generic:OK
>>> #100/110 exceptions/check_assert_with_return:OK
>>> #100     exceptions:OK
>>> Summary: 1/110 PASSED, 0 SKIPPED, 0 FAILED
>>>
>> It would be great to include this selftest output in the cover letter
>> instead, since it makes the git log excessively long.
>>
>> Thanks,
>> Saket
> 
> Major contributors in the community routinely include test case results
> in commit messages, and this is not viewed as problematic.
> Eg: bpf-next : e59997d9052599feb17419289f2a57ed300e1dfa,

This is a merge commit, the message comes from the cover letter of the 
series: 
https://lore.kernel.org/all/20240201125225.72796-1-puranjay12@gmail.com/

> 6c17a882d3804dce1c66e1fec25f96d39a184067

In this one the list of tests is rather small compared to the entire 
commit message.

So I also recommend to move this big list of tests in the cover letter.

Christophe


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ