-
Notifications
You must be signed in to change notification settings - Fork 54.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Decreasing the size of radix_tree_node #242
base: master
Are you sure you want to change the base?
Conversation
The count in radix_tree_node does NOT need to be unsigned int but unsigned short is enough. For the disability of calculating logarithm in compile time, original authors defined RADIX_TREE_HEIGHT_SHIFT as RADIX_TREE_MAX_PATH + 1, but it should be log2(RADIX_TREE_MAX_PATH) + 1 indeed. I noticed that and, after calculating I am aware of unsigned long is not suitable for count but unsigned short. Between, I knew there is an alignment of radix_tree_node, so I cannot tell if the size of radix_tree_node will actually decrease.
Have you compare the values of sizeof(struct radix_tree_node) between old and new version? I guess it change nothing unless a packed attribute is there. I suggest you that submit paths on a right way: https://github.com/torvalds/linux/blob/master/Documentation/SubmittingPatches
|
Tutorial: https://www.youtube.com/watch?v=LLBrBBImJt4 |
WARNING: space prohibited between function name and open parenthesis '(' torvalds#242: FILE: arch/ia64/kernel/process.c:577: +exit_thread (struct task_struct *tsk) WARNING: braces {} are not necessary for single statement blocks torvalds#331: FILE: arch/sh/kernel/process_64.c:310: + if (last_task_used_math == tsk) { last_task_used_math = NULL; } total: 0 errors, 2 warnings, 231 lines checked ./patches/exit_thread-accept-a-task-parameter-to-be-exited.patch has style problems, please review. NOTE: If any of the errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS. Please run checkpatch prior to sending patches Cc: Jiri Slaby <jslaby@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
WARNING: space prohibited between function name and open parenthesis '(' torvalds#242: FILE: arch/ia64/kernel/process.c:577: +exit_thread (struct task_struct *tsk) WARNING: braces {} are not necessary for single statement blocks torvalds#331: FILE: arch/sh/kernel/process_64.c:310: + if (last_task_used_math == tsk) { last_task_used_math = NULL; } total: 0 errors, 2 warnings, 231 lines checked ./patches/exit_thread-accept-a-task-parameter-to-be-exited.patch has style problems, please review. NOTE: If any of the errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS. Please run checkpatch prior to sending patches Cc: Jiri Slaby <jslaby@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
WARNING: space prohibited between function name and open parenthesis '(' torvalds#242: FILE: arch/ia64/kernel/process.c:577: +exit_thread (struct task_struct *tsk) WARNING: braces {} are not necessary for single statement blocks torvalds#331: FILE: arch/sh/kernel/process_64.c:310: + if (last_task_used_math == tsk) { last_task_used_math = NULL; } total: 0 errors, 2 warnings, 231 lines checked ./patches/exit_thread-accept-a-task-parameter-to-be-exited.patch has style problems, please review. NOTE: If any of the errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS. Please run checkpatch prior to sending patches Cc: Jiri Slaby <jslaby@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
WARNING: space prohibited between function name and open parenthesis '(' torvalds#242: FILE: arch/ia64/kernel/process.c:577: +exit_thread (struct task_struct *tsk) WARNING: braces {} are not necessary for single statement blocks torvalds#331: FILE: arch/sh/kernel/process_64.c:310: + if (last_task_used_math == tsk) { last_task_used_math = NULL; } total: 0 errors, 2 warnings, 231 lines checked ./patches/exit_thread-accept-a-task-parameter-to-be-exited.patch has style problems, please review. NOTE: If any of the errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS. Please run checkpatch prior to sending patches Cc: Jiri Slaby <jslaby@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
WARNING: space prohibited between function name and open parenthesis '(' torvalds#242: FILE: arch/ia64/kernel/process.c:577: +exit_thread (struct task_struct *tsk) WARNING: braces {} are not necessary for single statement blocks torvalds#331: FILE: arch/sh/kernel/process_64.c:310: + if (last_task_used_math == tsk) { last_task_used_math = NULL; } total: 0 errors, 2 warnings, 231 lines checked ./patches/exit_thread-accept-a-task-parameter-to-be-exited.patch has style problems, please review. NOTE: If any of the errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS. Please run checkpatch prior to sending patches Cc: Jiri Slaby <jslaby@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
WARNING: space prohibited between function name and open parenthesis '(' torvalds#242: FILE: arch/ia64/kernel/process.c:577: +exit_thread (struct task_struct *tsk) WARNING: braces {} are not necessary for single statement blocks torvalds#331: FILE: arch/sh/kernel/process_64.c:310: + if (last_task_used_math == tsk) { last_task_used_math = NULL; } total: 0 errors, 2 warnings, 231 lines checked ./patches/exit_thread-accept-a-task-parameter-to-be-exited.patch has style problems, please review. NOTE: If any of the errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS. Please run checkpatch prior to sending patches Cc: Jiri Slaby <jslaby@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
WARNING: space prohibited between function name and open parenthesis '(' torvalds#242: FILE: arch/ia64/kernel/process.c:577: +exit_thread (struct task_struct *tsk) WARNING: braces {} are not necessary for single statement blocks torvalds#331: FILE: arch/sh/kernel/process_64.c:310: + if (last_task_used_math == tsk) { last_task_used_math = NULL; } total: 0 errors, 2 warnings, 231 lines checked ./patches/exit_thread-accept-a-task-parameter-to-be-exited.patch has style problems, please review. NOTE: If any of the errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS. Please run checkpatch prior to sending patches Cc: Jiri Slaby <jslaby@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
WARNING: space prohibited between function name and open parenthesis '(' torvalds#242: FILE: arch/ia64/kernel/process.c:577: +exit_thread (struct task_struct *tsk) WARNING: braces {} are not necessary for single statement blocks torvalds#331: FILE: arch/sh/kernel/process_64.c:310: + if (last_task_used_math == tsk) { last_task_used_math = NULL; } total: 0 errors, 2 warnings, 231 lines checked ./patches/exit_thread-accept-a-task-parameter-to-be-exited.patch has style problems, please review. NOTE: If any of the errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS. Please run checkpatch prior to sending patches Cc: Jiri Slaby <jslaby@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
WARNING: space prohibited between function name and open parenthesis '(' torvalds#242: FILE: arch/ia64/kernel/process.c:577: +exit_thread (struct task_struct *tsk) WARNING: braces {} are not necessary for single statement blocks torvalds#331: FILE: arch/sh/kernel/process_64.c:310: + if (last_task_used_math == tsk) { last_task_used_math = NULL; } total: 0 errors, 2 warnings, 231 lines checked ./patches/exit_thread-accept-a-task-parameter-to-be-exited.patch has style problems, please review. NOTE: If any of the errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS. Please run checkpatch prior to sending patches Cc: Jiri Slaby <jslaby@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
WARNING: space prohibited between function name and open parenthesis '(' torvalds#242: FILE: arch/ia64/kernel/process.c:577: +exit_thread (struct task_struct *tsk) WARNING: braces {} are not necessary for single statement blocks torvalds#331: FILE: arch/sh/kernel/process_64.c:310: + if (last_task_used_math == tsk) { last_task_used_math = NULL; } total: 0 errors, 2 warnings, 231 lines checked ./patches/exit_thread-accept-a-task-parameter-to-be-exited.patch has style problems, please review. NOTE: If any of the errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS. Please run checkpatch prior to sending patches Cc: Jiri Slaby <jslaby@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
WARNING: space prohibited between function name and open parenthesis '(' torvalds#242: FILE: arch/ia64/kernel/process.c:577: +exit_thread (struct task_struct *tsk) WARNING: braces {} are not necessary for single statement blocks torvalds#331: FILE: arch/sh/kernel/process_64.c:310: + if (last_task_used_math == tsk) { last_task_used_math = NULL; } total: 0 errors, 2 warnings, 231 lines checked ./patches/exit_thread-accept-a-task-parameter-to-be-exited.patch has style problems, please review. NOTE: If any of the errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS. Please run checkpatch prior to sending patches Cc: Jiri Slaby <jslaby@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
WARNING: space prohibited between function name and open parenthesis '(' torvalds#242: FILE: arch/ia64/kernel/process.c:577: +exit_thread (struct task_struct *tsk) WARNING: braces {} are not necessary for single statement blocks torvalds#331: FILE: arch/sh/kernel/process_64.c:310: + if (last_task_used_math == tsk) { last_task_used_math = NULL; } total: 0 errors, 2 warnings, 231 lines checked ./patches/exit_thread-accept-a-task-parameter-to-be-exited.patch has style problems, please review. NOTE: If any of the errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS. Please run checkpatch prior to sending patches Cc: Jiri Slaby <jslaby@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
lkl: increase the number of irqs
Make afs_write_begin() wait for a page that's marked PG_writeback because: (1) We need to avoid interference with the data being stored so that the data on the server ends up in a defined state. (2) page->private is used to track the window of dirty data within a page, but it's also used by the storage code to track what's being written, being cleared by the completion notification. Ownership can't be relinquished by the storage code until completion because it a store fails, the data must be remarked dirty. Tracing shows something like the following (edited): x86_64-linux-gn-15940 [1] afs_page_dirty: vn=ffff8800bef33800 9c75 begin 0-125 kworker/u8:3-114 [2] afs_page_dirty: vn=ffff8800bef33800 9c75 store+ 0-125 x86_64-linux-gn-15940 [1] afs_page_dirty: vn=ffff8800bef33800 9c75 begin 0-2052 kworker/u8:3-114 [2] afs_page_dirty: vn=ffff8800bef33800 9c75 clear 0-2052 kworker/u8:3-114 [2] afs_page_dirty: vn=ffff8800bef33800 9c75 store 0-0 kworker/u8:3-114 [2] afs_page_dirty: vn=ffff8800bef33800 9c75 WARN 0-0 The clear (completion) corresponding to the store+ (store continuation from a previous page) happens between the second begin (afs_write_begin) and the store corresponding to that. This results in the second store not seeing any data to write back, leading to the following warning: WARNING: CPU: 2 PID: 114 at ../fs/afs/write.c:403 afs_write_back_from_locked_page+0x19d/0x76c [kafs] Modules linked in: kafs(E) CPU: 2 PID: 114 Comm: kworker/u8:3 Tainted: G E 4.14.0-fscache+ torvalds#242 Hardware name: ASUS All Series/H97-PLUS, BIOS 2306 10/09/2014 Workqueue: writeback wb_workfn (flush-afs-2) task: ffff8800cad72600 task.stack: ffff8800cad44000 RIP: 0010:afs_write_back_from_locked_page+0x19d/0x76c [kafs] RSP: 0018:ffff8800cad47aa0 EFLAGS: 00010246 RAX: 0000000000000001 RBX: ffff8800bef33a20 RCX: 0000000000000000 RDX: 000000000000000f RSI: ffffffff81c5d0e0 RDI: ffff8800cad72e78 RBP: ffff8800d31ea1e8 R08: ffff8800c1358000 R09: ffff8800ca00e400 R10: ffff8800cad47a38 R11: ffff8800c5d9e400 R12: 0000000000000000 R13: ffffea0002d9df00 R14: ffffffffa0023c1c R15: 0000000000007fdf FS: 0000000000000000(0000) GS:ffff8800ca700000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f85ac6c4000 CR3: 0000000001c10001 CR4: 00000000001606e0 Call Trace: ? clear_page_dirty_for_io+0x23a/0x267 afs_writepages_region+0x1be/0x286 [kafs] afs_writepages+0x60/0x127 [kafs] do_writepages+0x36/0x70 __writeback_single_inode+0x12f/0x635 writeback_sb_inodes+0x2cc/0x452 __writeback_inodes_wb+0x68/0x9f wb_writeback+0x208/0x470 ? wb_workfn+0x22b/0x565 wb_workfn+0x22b/0x565 ? worker_thread+0x230/0x2ac process_one_work+0x2cc/0x517 ? worker_thread+0x230/0x2ac worker_thread+0x1d4/0x2ac ? rescuer_thread+0x29b/0x29b kthread+0x15d/0x165 ? kthread_create_on_node+0x3f/0x3f ? call_usermodehelper_exec_async+0x118/0x11f ret_from_fork+0x24/0x30 Signed-off-by: David Howells <dhowells@redhat.com>
commit 33cd712 upstream Currently the mailbox framework sets txdone_method to TXDONE_BY_POLL if the controller sets txdone_by_poll. However some clients can have a mechanism to do TXDONE_BY_ACK which they can specify by knows_txdone. However, we endup setting both TXDONE_BY_POLL and TXDONE_BY_ACK in that case. In such scenario, we may end up with below warnings as the tx ticker is run both by mailbox framework and the client. WARNING: CPU: 1 PID: 0 at kernel/time/hrtimer.c:805 hrtimer_forward+0x88/0xd8 CPU: 1 PID: 0 Comm: swapper/1 Not tainted 4.12.0-rc5 torvalds#242 Hardware name: ARM LTD ARM Juno Development Platform task: ffff8009768ca700 task.stack: ffff8009768f8000 PC is at hrtimer_forward+0x88/0xd8 LR is at txdone_hrtimer+0xd4/0xf8 Call trace: hrtimer_forward+0x88/0xd8 __hrtimer_run_queues+0xe4/0x158 hrtimer_interrupt+0xa4/0x220 arch_timer_handler_phys+0x30/0x40 handle_percpu_devid_irq+0x78/0x130 generic_handle_irq+0x24/0x38 __handle_domain_irq+0x5c/0xb8 gic_handle_irq+0x54/0xa8 This patch fixes the issue by resetting TXDONE_BY_POLL if client has set knows_txdone. Cc: Alexey Klimov <alexey.klimov@arm.com> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com> Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org> Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit 33cd712 upstream Currently the mailbox framework sets txdone_method to TXDONE_BY_POLL if the controller sets txdone_by_poll. However some clients can have a mechanism to do TXDONE_BY_ACK which they can specify by knows_txdone. However, we endup setting both TXDONE_BY_POLL and TXDONE_BY_ACK in that case. In such scenario, we may end up with below warnings as the tx ticker is run both by mailbox framework and the client. WARNING: CPU: 1 PID: 0 at kernel/time/hrtimer.c:805 hrtimer_forward+0x88/0xd8 CPU: 1 PID: 0 Comm: swapper/1 Not tainted 4.12.0-rc5 torvalds#242 Hardware name: ARM LTD ARM Juno Development Platform task: ffff8009768ca700 task.stack: ffff8009768f8000 PC is at hrtimer_forward+0x88/0xd8 LR is at txdone_hrtimer+0xd4/0xf8 Call trace: hrtimer_forward+0x88/0xd8 __hrtimer_run_queues+0xe4/0x158 hrtimer_interrupt+0xa4/0x220 arch_timer_handler_phys+0x30/0x40 handle_percpu_devid_irq+0x78/0x130 generic_handle_irq+0x24/0x38 __handle_domain_irq+0x5c/0xb8 gic_handle_irq+0x54/0xa8 This patch fixes the issue by resetting TXDONE_BY_POLL if client has set knows_txdone. Cc: Alexey Klimov <alexey.klimov@arm.com> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com> Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org> Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] + /etc/rcS.d/S50-startup ./test_progs -t tc_opts [ 11.645647] bpf_testmod: loading out-of-tree module taints kernel. [ 11.647546] bpf_testmod: module verification failed: signature and/or required key missing - tainting kernel [ 11.710400] tsc: Refined TSC clocksource calibration: 3407.988 MHz [ 11.712352] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x311fc932722, max_idle_ns: 440795381586 ns [ 11.715657] clocksource: Switched to clocksource tsc torvalds#237 tc_opts_after:OK torvalds#238 tc_opts_append:OK torvalds#239 tc_opts_basic:OK torvalds#240 tc_opts_before:OK torvalds#241 tc_opts_both:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_dev_cleanup:OK torvalds#244 tc_opts_first:OK torvalds#245 tc_opts_invalid:OK torvalds#246 tc_opts_last:OK torvalds#247 tc_opts_mixed:OK torvalds#248 tc_opts_prepend:OK torvalds#249 tc_opts_replace:OK torvalds#250 tc_opts_revision:OK Summary: 14/0 PASSED, 0 SKIPPED, 0 FAILED Co-developed-by: Nikolay Aleksandrov <razor@blackwall.org> Signed-off-by: Nikolay Aleksandrov <razor@blackwall.org> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] + /etc/rcS.d/S50-startup ./test_progs -t tc_opts [ 11.645647] bpf_testmod: loading out-of-tree module taints kernel. [ 11.647546] bpf_testmod: module verification failed: signature and/or required key missing - tainting kernel [ 11.710400] tsc: Refined TSC clocksource calibration: 3407.988 MHz [ 11.712352] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x311fc932722, max_idle_ns: 440795381586 ns [ 11.715657] clocksource: Switched to clocksource tsc torvalds#237 tc_opts_after:OK torvalds#238 tc_opts_append:OK torvalds#239 tc_opts_basic:OK torvalds#240 tc_opts_before:OK torvalds#241 tc_opts_both:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_dev_cleanup:OK torvalds#244 tc_opts_first:OK torvalds#245 tc_opts_invalid:OK torvalds#246 tc_opts_last:OK torvalds#247 tc_opts_mixed:OK torvalds#248 tc_opts_prepend:OK torvalds#249 tc_opts_replace:OK torvalds#250 tc_opts_revision:OK Summary: 14/0 PASSED, 0 SKIPPED, 0 FAILED Co-developed-by: Nikolay Aleksandrov <razor@blackwall.org> Signed-off-by: Nikolay Aleksandrov <razor@blackwall.org> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] + /etc/rcS.d/S50-startup ./test_progs -t tc_opts [ 11.645647] bpf_testmod: loading out-of-tree module taints kernel. [ 11.647546] bpf_testmod: module verification failed: signature and/or required key missing - tainting kernel [ 11.710400] tsc: Refined TSC clocksource calibration: 3407.988 MHz [ 11.712352] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x311fc932722, max_idle_ns: 440795381586 ns [ 11.715657] clocksource: Switched to clocksource tsc torvalds#237 tc_opts_after:OK torvalds#238 tc_opts_append:OK torvalds#239 tc_opts_basic:OK torvalds#240 tc_opts_before:OK torvalds#241 tc_opts_both:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_dev_cleanup:OK torvalds#244 tc_opts_first:OK torvalds#245 tc_opts_invalid:OK torvalds#246 tc_opts_last:OK torvalds#247 tc_opts_mixed:OK torvalds#248 tc_opts_prepend:OK torvalds#249 tc_opts_replace:OK torvalds#250 tc_opts_revision:OK Summary: 14/0 PASSED, 0 SKIPPED, 0 FAILED Co-developed-by: Nikolay Aleksandrov <razor@blackwall.org> Signed-off-by: Nikolay Aleksandrov <razor@blackwall.org> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] + /etc/rcS.d/S50-startup ./test_progs -t tc_opts [ 11.645647] bpf_testmod: loading out-of-tree module taints kernel. [ 11.647546] bpf_testmod: module verification failed: signature and/or required key missing - tainting kernel [ 11.710400] tsc: Refined TSC clocksource calibration: 3407.988 MHz [ 11.712352] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x311fc932722, max_idle_ns: 440795381586 ns [ 11.715657] clocksource: Switched to clocksource tsc torvalds#237 tc_opts_after:OK torvalds#238 tc_opts_append:OK torvalds#239 tc_opts_basic:OK torvalds#240 tc_opts_before:OK torvalds#241 tc_opts_both:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_dev_cleanup:OK torvalds#244 tc_opts_first:OK torvalds#245 tc_opts_invalid:OK torvalds#246 tc_opts_last:OK torvalds#247 tc_opts_mixed:OK torvalds#248 tc_opts_prepend:OK torvalds#249 tc_opts_replace:OK torvalds#250 tc_opts_revision:OK Summary: 14/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] + /etc/rcS.d/S50-startup ./test_progs -t tc_opts [ 11.645647] bpf_testmod: loading out-of-tree module taints kernel. [ 11.647546] bpf_testmod: module verification failed: signature and/or required key missing - tainting kernel [ 11.710400] tsc: Refined TSC clocksource calibration: 3407.988 MHz [ 11.712352] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x311fc932722, max_idle_ns: 440795381586 ns [ 11.715657] clocksource: Switched to clocksource tsc torvalds#237 tc_opts_after:OK torvalds#238 tc_opts_append:OK torvalds#239 tc_opts_basic:OK torvalds#240 tc_opts_before:OK torvalds#241 tc_opts_both:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_dev_cleanup:OK torvalds#244 tc_opts_first:OK torvalds#245 tc_opts_invalid:OK torvalds#246 tc_opts_last:OK torvalds#247 tc_opts_mixed:OK torvalds#248 tc_opts_prepend:OK torvalds#249 tc_opts_replace:OK torvalds#250 tc_opts_revision:OK Summary: 14/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] + /etc/rcS.d/S50-startup ./test_progs -t tc_opts [ 11.645647] bpf_testmod: loading out-of-tree module taints kernel. [ 11.647546] bpf_testmod: module verification failed: signature and/or required key missing - tainting kernel [ 11.710400] tsc: Refined TSC clocksource calibration: 3407.988 MHz [ 11.712352] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x311fc932722, max_idle_ns: 440795381586 ns [ 11.715657] clocksource: Switched to clocksource tsc torvalds#237 tc_opts_after:OK torvalds#238 tc_opts_append:OK torvalds#239 tc_opts_basic:OK torvalds#240 tc_opts_before:OK torvalds#241 tc_opts_both:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_dev_cleanup:OK torvalds#244 tc_opts_first:OK torvalds#245 tc_opts_invalid:OK torvalds#246 tc_opts_last:OK torvalds#247 tc_opts_mixed:OK torvalds#248 tc_opts_prepend:OK torvalds#249 tc_opts_replace:OK torvalds#250 tc_opts_revision:OK Summary: 14/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] + /etc/rcS.d/S50-startup ./test_progs -t tc_opts [ 11.645647] bpf_testmod: loading out-of-tree module taints kernel. [ 11.647546] bpf_testmod: module verification failed: signature and/or required key missing - tainting kernel [ 11.710400] tsc: Refined TSC clocksource calibration: 3407.988 MHz [ 11.712352] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x311fc932722, max_idle_ns: 440795381586 ns [ 11.715657] clocksource: Switched to clocksource tsc torvalds#237 tc_opts_after:OK torvalds#238 tc_opts_append:OK torvalds#239 tc_opts_basic:OK torvalds#240 tc_opts_before:OK torvalds#241 tc_opts_both:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_dev_cleanup:OK torvalds#244 tc_opts_first:OK torvalds#245 tc_opts_invalid:OK torvalds#246 tc_opts_last:OK torvalds#247 tc_opts_mixed:OK torvalds#248 tc_opts_prepend:OK torvalds#249 tc_opts_replace:OK torvalds#250 tc_opts_revision:OK Summary: 14/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] + /etc/rcS.d/S50-startup ./test_progs -t tc_opts [ 11.645647] bpf_testmod: loading out-of-tree module taints kernel. [ 11.647546] bpf_testmod: module verification failed: signature and/or required key missing - tainting kernel [ 11.710400] tsc: Refined TSC clocksource calibration: 3407.988 MHz [ 11.712352] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x311fc932722, max_idle_ns: 440795381586 ns [ 11.715657] clocksource: Switched to clocksource tsc torvalds#237 tc_opts_after:OK torvalds#238 tc_opts_append:OK torvalds#239 tc_opts_basic:OK torvalds#240 tc_opts_before:OK torvalds#241 tc_opts_both:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_dev_cleanup:OK torvalds#244 tc_opts_first:OK torvalds#245 tc_opts_invalid:OK torvalds#246 tc_opts_last:OK torvalds#247 tc_opts_mixed:OK torvalds#248 tc_opts_prepend:OK torvalds#249 tc_opts_replace:OK torvalds#250 tc_opts_revision:OK Summary: 14/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] + /etc/rcS.d/S50-startup ./test_progs -t tc_opts [ 11.645647] bpf_testmod: loading out-of-tree module taints kernel. [ 11.647546] bpf_testmod: module verification failed: signature and/or required key missing - tainting kernel [ 11.710400] tsc: Refined TSC clocksource calibration: 3407.988 MHz [ 11.712352] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x311fc932722, max_idle_ns: 440795381586 ns [ 11.715657] clocksource: Switched to clocksource tsc torvalds#237 tc_opts_after:OK torvalds#238 tc_opts_append:OK torvalds#239 tc_opts_basic:OK torvalds#240 tc_opts_before:OK torvalds#241 tc_opts_both:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_dev_cleanup:OK torvalds#244 tc_opts_first:OK torvalds#245 tc_opts_invalid:OK torvalds#246 tc_opts_last:OK torvalds#247 tc_opts_mixed:OK torvalds#248 tc_opts_prepend:OK torvalds#249 tc_opts_replace:OK torvalds#250 tc_opts_revision:OK Summary: 14/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] + /etc/rcS.d/S50-startup ./test_progs -t tc_opts [ 11.645647] bpf_testmod: loading out-of-tree module taints kernel. [ 11.647546] bpf_testmod: module verification failed: signature and/or required key missing - tainting kernel [ 11.710400] tsc: Refined TSC clocksource calibration: 3407.988 MHz [ 11.712352] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x311fc932722, max_idle_ns: 440795381586 ns [ 11.715657] clocksource: Switched to clocksource tsc torvalds#237 tc_opts_after:OK torvalds#238 tc_opts_append:OK torvalds#239 tc_opts_basic:OK torvalds#240 tc_opts_before:OK torvalds#241 tc_opts_both:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_dev_cleanup:OK torvalds#244 tc_opts_first:OK torvalds#245 tc_opts_invalid:OK torvalds#246 tc_opts_last:OK torvalds#247 tc_opts_mixed:OK torvalds#248 tc_opts_prepend:OK torvalds#249 tc_opts_replace:OK torvalds#250 tc_opts_revision:OK Summary: 14/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] torvalds#238 tc_opts_after:OK torvalds#239 tc_opts_append:OK torvalds#240 tc_opts_basic:OK torvalds#241 tc_opts_before:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_demixed:OK torvalds#244 tc_opts_detach:OK torvalds#245 tc_opts_detach_after:OK torvalds#246 tc_opts_detach_before:OK torvalds#247 tc_opts_dev_cleanup:OK torvalds#248 tc_opts_invalid:OK torvalds#249 tc_opts_mixed:OK torvalds#250 tc_opts_prepend:OK torvalds#251 tc_opts_replace:OK torvalds#252 tc_opts_revision:OK Summary: 15/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] torvalds#238 tc_opts_after:OK torvalds#239 tc_opts_append:OK torvalds#240 tc_opts_basic:OK torvalds#241 tc_opts_before:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_demixed:OK torvalds#244 tc_opts_detach:OK torvalds#245 tc_opts_detach_after:OK torvalds#246 tc_opts_detach_before:OK torvalds#247 tc_opts_dev_cleanup:OK torvalds#248 tc_opts_invalid:OK torvalds#249 tc_opts_mixed:OK torvalds#250 tc_opts_prepend:OK torvalds#251 tc_opts_replace:OK torvalds#252 tc_opts_revision:OK Summary: 15/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] torvalds#238 tc_opts_after:OK torvalds#239 tc_opts_append:OK torvalds#240 tc_opts_basic:OK torvalds#241 tc_opts_before:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_demixed:OK torvalds#244 tc_opts_detach:OK torvalds#245 tc_opts_detach_after:OK torvalds#246 tc_opts_detach_before:OK torvalds#247 tc_opts_dev_cleanup:OK torvalds#248 tc_opts_invalid:OK torvalds#249 tc_opts_mixed:OK torvalds#250 tc_opts_prepend:OK torvalds#251 tc_opts_replace:OK torvalds#252 tc_opts_revision:OK Summary: 15/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] torvalds#238 tc_opts_after:OK torvalds#239 tc_opts_append:OK torvalds#240 tc_opts_basic:OK torvalds#241 tc_opts_before:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_demixed:OK torvalds#244 tc_opts_detach:OK torvalds#245 tc_opts_detach_after:OK torvalds#246 tc_opts_detach_before:OK torvalds#247 tc_opts_dev_cleanup:OK torvalds#248 tc_opts_invalid:OK torvalds#249 tc_opts_mixed:OK torvalds#250 tc_opts_prepend:OK torvalds#251 tc_opts_replace:OK torvalds#252 tc_opts_revision:OK Summary: 15/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] torvalds#238 tc_opts_after:OK torvalds#239 tc_opts_append:OK torvalds#240 tc_opts_basic:OK torvalds#241 tc_opts_before:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_demixed:OK torvalds#244 tc_opts_detach:OK torvalds#245 tc_opts_detach_after:OK torvalds#246 tc_opts_detach_before:OK torvalds#247 tc_opts_dev_cleanup:OK torvalds#248 tc_opts_invalid:OK torvalds#249 tc_opts_mixed:OK torvalds#250 tc_opts_prepend:OK torvalds#251 tc_opts_replace:OK torvalds#252 tc_opts_revision:OK Summary: 15/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] torvalds#238 tc_opts_after:OK torvalds#239 tc_opts_append:OK torvalds#240 tc_opts_basic:OK torvalds#241 tc_opts_before:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_demixed:OK torvalds#244 tc_opts_detach:OK torvalds#245 tc_opts_detach_after:OK torvalds#246 tc_opts_detach_before:OK torvalds#247 tc_opts_dev_cleanup:OK torvalds#248 tc_opts_invalid:OK torvalds#249 tc_opts_mixed:OK torvalds#250 tc_opts_prepend:OK torvalds#251 tc_opts_replace:OK torvalds#252 tc_opts_revision:OK Summary: 15/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] torvalds#238 tc_opts_after:OK torvalds#239 tc_opts_append:OK torvalds#240 tc_opts_basic:OK torvalds#241 tc_opts_before:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_demixed:OK torvalds#244 tc_opts_detach:OK torvalds#245 tc_opts_detach_after:OK torvalds#246 tc_opts_detach_before:OK torvalds#247 tc_opts_dev_cleanup:OK torvalds#248 tc_opts_invalid:OK torvalds#249 tc_opts_mixed:OK torvalds#250 tc_opts_prepend:OK torvalds#251 tc_opts_replace:OK torvalds#252 tc_opts_revision:OK Summary: 15/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] torvalds#238 tc_opts_after:OK torvalds#239 tc_opts_append:OK torvalds#240 tc_opts_basic:OK torvalds#241 tc_opts_before:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_demixed:OK torvalds#244 tc_opts_detach:OK torvalds#245 tc_opts_detach_after:OK torvalds#246 tc_opts_detach_before:OK torvalds#247 tc_opts_dev_cleanup:OK torvalds#248 tc_opts_invalid:OK torvalds#249 tc_opts_mixed:OK torvalds#250 tc_opts_prepend:OK torvalds#251 tc_opts_replace:OK torvalds#252 tc_opts_revision:OK Summary: 15/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] torvalds#238 tc_opts_after:OK torvalds#239 tc_opts_append:OK torvalds#240 tc_opts_basic:OK torvalds#241 tc_opts_before:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_demixed:OK torvalds#244 tc_opts_detach:OK torvalds#245 tc_opts_detach_after:OK torvalds#246 tc_opts_detach_before:OK torvalds#247 tc_opts_dev_cleanup:OK torvalds#248 tc_opts_invalid:OK torvalds#249 tc_opts_mixed:OK torvalds#250 tc_opts_prepend:OK torvalds#251 tc_opts_replace:OK torvalds#252 tc_opts_revision:OK Summary: 15/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] torvalds#238 tc_opts_after:OK torvalds#239 tc_opts_append:OK torvalds#240 tc_opts_basic:OK torvalds#241 tc_opts_before:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_demixed:OK torvalds#244 tc_opts_detach:OK torvalds#245 tc_opts_detach_after:OK torvalds#246 tc_opts_detach_before:OK torvalds#247 tc_opts_dev_cleanup:OK torvalds#248 tc_opts_invalid:OK torvalds#249 tc_opts_mixed:OK torvalds#250 tc_opts_prepend:OK torvalds#251 tc_opts_replace:OK torvalds#252 tc_opts_revision:OK Summary: 15/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] torvalds#238 tc_opts_after:OK torvalds#239 tc_opts_append:OK torvalds#240 tc_opts_basic:OK torvalds#241 tc_opts_before:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_demixed:OK torvalds#244 tc_opts_detach:OK torvalds#245 tc_opts_detach_after:OK torvalds#246 tc_opts_detach_before:OK torvalds#247 tc_opts_dev_cleanup:OK torvalds#248 tc_opts_invalid:OK torvalds#249 tc_opts_mixed:OK torvalds#250 tc_opts_prepend:OK torvalds#251 tc_opts_replace:OK torvalds#252 tc_opts_revision:OK Summary: 15/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] torvalds#238 tc_opts_after:OK torvalds#239 tc_opts_append:OK torvalds#240 tc_opts_basic:OK torvalds#241 tc_opts_before:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_demixed:OK torvalds#244 tc_opts_detach:OK torvalds#245 tc_opts_detach_after:OK torvalds#246 tc_opts_detach_before:OK torvalds#247 tc_opts_dev_cleanup:OK torvalds#248 tc_opts_invalid:OK torvalds#249 tc_opts_mixed:OK torvalds#250 tc_opts_prepend:OK torvalds#251 tc_opts_replace:OK torvalds#252 tc_opts_revision:OK Summary: 15/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] torvalds#238 tc_opts_after:OK torvalds#239 tc_opts_append:OK torvalds#240 tc_opts_basic:OK torvalds#241 tc_opts_before:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_demixed:OK torvalds#244 tc_opts_detach:OK torvalds#245 tc_opts_detach_after:OK torvalds#246 tc_opts_detach_before:OK torvalds#247 tc_opts_dev_cleanup:OK torvalds#248 tc_opts_invalid:OK torvalds#249 tc_opts_mixed:OK torvalds#250 tc_opts_prepend:OK torvalds#251 tc_opts_replace:OK torvalds#252 tc_opts_revision:OK Summary: 15/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] torvalds#238 tc_opts_after:OK torvalds#239 tc_opts_append:OK torvalds#240 tc_opts_basic:OK torvalds#241 tc_opts_before:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_demixed:OK torvalds#244 tc_opts_detach:OK torvalds#245 tc_opts_detach_after:OK torvalds#246 tc_opts_detach_before:OK torvalds#247 tc_opts_dev_cleanup:OK torvalds#248 tc_opts_invalid:OK torvalds#249 tc_opts_mixed:OK torvalds#250 tc_opts_prepend:OK torvalds#251 tc_opts_replace:OK torvalds#252 tc_opts_revision:OK Summary: 15/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] torvalds#238 tc_opts_after:OK torvalds#239 tc_opts_append:OK torvalds#240 tc_opts_basic:OK torvalds#241 tc_opts_before:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_demixed:OK torvalds#244 tc_opts_detach:OK torvalds#245 tc_opts_detach_after:OK torvalds#246 tc_opts_detach_before:OK torvalds#247 tc_opts_dev_cleanup:OK torvalds#248 tc_opts_invalid:OK torvalds#249 tc_opts_mixed:OK torvalds#250 tc_opts_prepend:OK torvalds#251 tc_opts_replace:OK torvalds#252 tc_opts_revision:OK Summary: 15/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] torvalds#238 tc_opts_after:OK torvalds#239 tc_opts_append:OK torvalds#240 tc_opts_basic:OK torvalds#241 tc_opts_before:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_demixed:OK torvalds#244 tc_opts_detach:OK torvalds#245 tc_opts_detach_after:OK torvalds#246 tc_opts_detach_before:OK torvalds#247 tc_opts_dev_cleanup:OK torvalds#248 tc_opts_invalid:OK torvalds#249 tc_opts_mixed:OK torvalds#250 tc_opts_prepend:OK torvalds#251 tc_opts_replace:OK torvalds#252 tc_opts_revision:OK Summary: 15/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] torvalds#238 tc_opts_after:OK torvalds#239 tc_opts_append:OK torvalds#240 tc_opts_basic:OK torvalds#241 tc_opts_before:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_demixed:OK torvalds#244 tc_opts_detach:OK torvalds#245 tc_opts_detach_after:OK torvalds#246 tc_opts_detach_before:OK torvalds#247 tc_opts_dev_cleanup:OK torvalds#248 tc_opts_invalid:OK torvalds#249 tc_opts_mixed:OK torvalds#250 tc_opts_prepend:OK torvalds#251 tc_opts_replace:OK torvalds#252 tc_opts_revision:OK Summary: 15/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] torvalds#238 tc_opts_after:OK torvalds#239 tc_opts_append:OK torvalds#240 tc_opts_basic:OK torvalds#241 tc_opts_before:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_demixed:OK torvalds#244 tc_opts_detach:OK torvalds#245 tc_opts_detach_after:OK torvalds#246 tc_opts_detach_before:OK torvalds#247 tc_opts_dev_cleanup:OK torvalds#248 tc_opts_invalid:OK torvalds#249 tc_opts_mixed:OK torvalds#250 tc_opts_prepend:OK torvalds#251 tc_opts_replace:OK torvalds#252 tc_opts_revision:OK Summary: 15/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] torvalds#238 tc_opts_after:OK torvalds#239 tc_opts_append:OK torvalds#240 tc_opts_basic:OK torvalds#241 tc_opts_before:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_demixed:OK torvalds#244 tc_opts_detach:OK torvalds#245 tc_opts_detach_after:OK torvalds#246 tc_opts_detach_before:OK torvalds#247 tc_opts_dev_cleanup:OK torvalds#248 tc_opts_invalid:OK torvalds#249 tc_opts_mixed:OK torvalds#250 tc_opts_prepend:OK torvalds#251 tc_opts_replace:OK torvalds#252 tc_opts_revision:OK Summary: 15/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] torvalds#238 tc_opts_after:OK torvalds#239 tc_opts_append:OK torvalds#240 tc_opts_basic:OK torvalds#241 tc_opts_before:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_demixed:OK torvalds#244 tc_opts_detach:OK torvalds#245 tc_opts_detach_after:OK torvalds#246 tc_opts_detach_before:OK torvalds#247 tc_opts_dev_cleanup:OK torvalds#248 tc_opts_invalid:OK torvalds#249 tc_opts_mixed:OK torvalds#250 tc_opts_prepend:OK torvalds#251 tc_opts_replace:OK torvalds#252 tc_opts_revision:OK Summary: 15/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] torvalds#238 tc_opts_after:OK torvalds#239 tc_opts_append:OK torvalds#240 tc_opts_basic:OK torvalds#241 tc_opts_before:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_demixed:OK torvalds#244 tc_opts_detach:OK torvalds#245 tc_opts_detach_after:OK torvalds#246 tc_opts_detach_before:OK torvalds#247 tc_opts_dev_cleanup:OK torvalds#248 tc_opts_invalid:OK torvalds#249 tc_opts_mixed:OK torvalds#250 tc_opts_prepend:OK torvalds#251 tc_opts_replace:OK torvalds#252 tc_opts_revision:OK Summary: 15/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] torvalds#238 tc_opts_after:OK torvalds#239 tc_opts_append:OK torvalds#240 tc_opts_basic:OK torvalds#241 tc_opts_before:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_demixed:OK torvalds#244 tc_opts_detach:OK torvalds#245 tc_opts_detach_after:OK torvalds#246 tc_opts_detach_before:OK torvalds#247 tc_opts_dev_cleanup:OK torvalds#248 tc_opts_invalid:OK torvalds#249 tc_opts_mixed:OK torvalds#250 tc_opts_prepend:OK torvalds#251 tc_opts_replace:OK torvalds#252 tc_opts_revision:OK Summary: 15/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] torvalds#238 tc_opts_after:OK torvalds#239 tc_opts_append:OK torvalds#240 tc_opts_basic:OK torvalds#241 tc_opts_before:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_demixed:OK torvalds#244 tc_opts_detach:OK torvalds#245 tc_opts_detach_after:OK torvalds#246 tc_opts_detach_before:OK torvalds#247 tc_opts_dev_cleanup:OK torvalds#248 tc_opts_invalid:OK torvalds#249 tc_opts_mixed:OK torvalds#250 tc_opts_prepend:OK torvalds#251 tc_opts_replace:OK torvalds#252 tc_opts_revision:OK Summary: 15/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] torvalds#238 tc_opts_after:OK torvalds#239 tc_opts_append:OK torvalds#240 tc_opts_basic:OK torvalds#241 tc_opts_before:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_demixed:OK torvalds#244 tc_opts_detach:OK torvalds#245 tc_opts_detach_after:OK torvalds#246 tc_opts_detach_before:OK torvalds#247 tc_opts_dev_cleanup:OK torvalds#248 tc_opts_invalid:OK torvalds#249 tc_opts_mixed:OK torvalds#250 tc_opts_prepend:OK torvalds#251 tc_opts_replace:OK torvalds#252 tc_opts_revision:OK Summary: 15/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] torvalds#238 tc_opts_after:OK torvalds#239 tc_opts_append:OK torvalds#240 tc_opts_basic:OK torvalds#241 tc_opts_before:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_demixed:OK torvalds#244 tc_opts_detach:OK torvalds#245 tc_opts_detach_after:OK torvalds#246 tc_opts_detach_before:OK torvalds#247 tc_opts_dev_cleanup:OK torvalds#248 tc_opts_invalid:OK torvalds#249 tc_opts_mixed:OK torvalds#250 tc_opts_prepend:OK torvalds#251 tc_opts_replace:OK torvalds#252 tc_opts_revision:OK Summary: 15/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] torvalds#238 tc_opts_after:OK torvalds#239 tc_opts_append:OK torvalds#240 tc_opts_basic:OK torvalds#241 tc_opts_before:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_demixed:OK torvalds#244 tc_opts_detach:OK torvalds#245 tc_opts_detach_after:OK torvalds#246 tc_opts_detach_before:OK torvalds#247 tc_opts_dev_cleanup:OK torvalds#248 tc_opts_invalid:OK torvalds#249 tc_opts_mixed:OK torvalds#250 tc_opts_prepend:OK torvalds#251 tc_opts_replace:OK torvalds#252 tc_opts_revision:OK Summary: 15/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add a big batch of test coverage to assert all aspects of the tcx opts attach, detach and query API: # ./vmtest.sh -- ./test_progs -t tc_opts [...] torvalds#238 tc_opts_after:OK torvalds#239 tc_opts_append:OK torvalds#240 tc_opts_basic:OK torvalds#241 tc_opts_before:OK torvalds#242 tc_opts_chain_classic:OK torvalds#243 tc_opts_demixed:OK torvalds#244 tc_opts_detach:OK torvalds#245 tc_opts_detach_after:OK torvalds#246 tc_opts_detach_before:OK torvalds#247 tc_opts_dev_cleanup:OK torvalds#248 tc_opts_invalid:OK torvalds#249 tc_opts_mixed:OK torvalds#250 tc_opts_prepend:OK torvalds#251 tc_opts_replace:OK torvalds#252 tc_opts_revision:OK Summary: 15/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Link: https://lore.kernel.org/r/20230719140858.13224-8-daniel@iogearbox.net Signed-off-by: Alexei Starovoitov <ast@kernel.org>
[...] torvalds#234 tc_links_after:OK torvalds#235 tc_links_append:OK torvalds#236 tc_links_basic:OK torvalds#237 tc_links_before:OK torvalds#238 tc_links_chain_classic:OK torvalds#239 tc_links_chain_mixed:OK torvalds#240 tc_links_dev_cleanup:OK torvalds#241 tc_links_ingress:OK torvalds#242 tc_links_invalid:OK torvalds#243 tc_links_prepend:OK torvalds#244 tc_links_replace:OK torvalds#245 tc_links_revision:OK torvalds#246 tc_opts_after:OK torvalds#247 tc_opts_append:OK torvalds#248 tc_opts_basic:OK torvalds#249 tc_opts_before:OK torvalds#250 tc_opts_chain_classic:OK torvalds#251 tc_opts_chain_mixed:OK torvalds#252 tc_opts_delete_empty:OK torvalds#253 tc_opts_demixed:OK torvalds#254 tc_opts_detach:OK torvalds#255 tc_opts_detach_after:OK torvalds#256 tc_opts_detach_before:OK torvalds#257 tc_opts_dev_cleanup:OK torvalds#258 tc_opts_invalid:OK torvalds#259 tc_opts_mixed:OK torvalds#260 tc_opts_prepend:OK torvalds#261 tc_opts_replace:OK torvalds#262 tc_opts_revision:OK [...] Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add several new tcx test cases to improve test coverage. This also includes a few new tests with ingress instead of clsact qdisc, to cover the fix from commit dc644b5 ("tcx: Fix splat in ingress_destroy upon tcx_entry_free"). # ./test_progs -t tc [...] torvalds#234 tc_links_after:OK torvalds#235 tc_links_append:OK torvalds#236 tc_links_basic:OK torvalds#237 tc_links_before:OK torvalds#238 tc_links_chain_classic:OK torvalds#239 tc_links_chain_mixed:OK torvalds#240 tc_links_dev_cleanup:OK torvalds#241 tc_links_dev_mixed:OK torvalds#242 tc_links_ingress:OK torvalds#243 tc_links_invalid:OK torvalds#244 tc_links_prepend:OK torvalds#245 tc_links_replace:OK torvalds#246 tc_links_revision:OK torvalds#247 tc_opts_after:OK torvalds#248 tc_opts_append:OK torvalds#249 tc_opts_basic:OK torvalds#250 tc_opts_before:OK torvalds#251 tc_opts_chain_classic:OK torvalds#252 tc_opts_chain_mixed:OK torvalds#253 tc_opts_delete_empty:OK torvalds#254 tc_opts_demixed:OK torvalds#255 tc_opts_detach:OK torvalds#256 tc_opts_detach_after:OK torvalds#257 tc_opts_detach_before:OK torvalds#258 tc_opts_dev_cleanup:OK torvalds#259 tc_opts_invalid:OK torvalds#260 tc_opts_mixed:OK torvalds#261 tc_opts_prepend:OK torvalds#262 tc_opts_replace:OK torvalds#263 tc_opts_revision:OK [...] Summary: 44/38 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Add several new tcx test cases to improve test coverage. This also includes a few new tests with ingress instead of clsact qdisc, to cover the fix from commit dc644b5 ("tcx: Fix splat in ingress_destroy upon tcx_entry_free"). # ./test_progs -t tc [...] torvalds#234 tc_links_after:OK torvalds#235 tc_links_append:OK torvalds#236 tc_links_basic:OK torvalds#237 tc_links_before:OK torvalds#238 tc_links_chain_classic:OK torvalds#239 tc_links_chain_mixed:OK torvalds#240 tc_links_dev_cleanup:OK torvalds#241 tc_links_dev_mixed:OK torvalds#242 tc_links_ingress:OK torvalds#243 tc_links_invalid:OK torvalds#244 tc_links_prepend:OK torvalds#245 tc_links_replace:OK torvalds#246 tc_links_revision:OK torvalds#247 tc_opts_after:OK torvalds#248 tc_opts_append:OK torvalds#249 tc_opts_basic:OK torvalds#250 tc_opts_before:OK torvalds#251 tc_opts_chain_classic:OK torvalds#252 tc_opts_chain_mixed:OK torvalds#253 tc_opts_delete_empty:OK torvalds#254 tc_opts_demixed:OK torvalds#255 tc_opts_detach:OK torvalds#256 tc_opts_detach_after:OK torvalds#257 tc_opts_detach_before:OK torvalds#258 tc_opts_dev_cleanup:OK torvalds#259 tc_opts_invalid:OK torvalds#260 tc_opts_mixed:OK torvalds#261 tc_opts_prepend:OK torvalds#262 tc_opts_replace:OK torvalds#263 tc_opts_revision:OK [...] Summary: 44/38 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Link: https://lore.kernel.org/r/8699efc284b75ccdc51ddf7062fa2370330dc6c0.1692029283.git.daniel@iogearbox.net Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
The count in radix_tree_node does NOT need to be unsigned int but unsigned short is enough. For the disability of calculating logarithm in compile time, original authors defined RADIX_TREE_HEIGHT_SHIFT as RADIX_TREE_MAX_PATH + 1, but it should be log2(RADIX_TREE_MAX_PATH) + 1 indeed. I noticed that and, after calculating I am aware of unsigned long is not suitable for count but unsigned short. Between, I knew there is an alignment of radix_tree_node, so I cannot tell if the size of radix_tree_node will actually decrease.