mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-18 03:23:53 -04:00
Increase MAX_USERDATA_ITEMS from 16 to 256 entries now that the userdata buffer is allocated dynamically. The previous limit of 16 was necessary because the buffer was statically allocated for all targets. With dynamic allocation, we can support more entries without wasting memory on targets that don't use userdata. This allows users to attach more metadata to their netconsole messages, which is useful for complex debugging and logging scenarios. Also update the testcase accordingly. Signed-off-by: Gustavo Luiz Duarte <gustavold@gmail.com> Reviewed-by: Breno Leitao <leitao@debian.org> Link: https://patch.msgid.link/20251119-netconsole_dynamic_extradata-v3-4-497ac3191707@meta.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
68 lines
1.8 KiB
Bash
Executable File
68 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
# This test verifies that users can successfully create up to
|
|
# MAX_USERDATA_ITEMS userdata entries without encountering any failures.
|
|
#
|
|
# Additionally, it tests for expected failure when attempting to exceed this
|
|
# maximum limit.
|
|
#
|
|
# Author: Breno Leitao <leitao@debian.org>
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPTDIR=$(dirname "$(readlink -e "${BASH_SOURCE[0]}")")
|
|
|
|
source "${SCRIPTDIR}"/lib/sh/lib_netcons.sh
|
|
# This is coming from netconsole code. Check for it in drivers/net/netconsole.c
|
|
MAX_USERDATA_ITEMS=256
|
|
|
|
# Function to create userdata entries
|
|
function create_userdata_max_entries() {
|
|
# All these keys should be created without any error
|
|
for i in $(seq $MAX_USERDATA_ITEMS)
|
|
do
|
|
# USERDATA_KEY is used by set_user_data
|
|
USERDATA_KEY="key"${i}
|
|
set_user_data
|
|
done
|
|
}
|
|
|
|
# Function to verify the entry limit
|
|
function verify_entry_limit() {
|
|
# Allowing the test to fail without exiting, since the next command
|
|
# will fail
|
|
set +e
|
|
mkdir "${NETCONS_PATH}/userdata/key_that_will_fail" 2> /dev/null
|
|
ret="$?"
|
|
set -e
|
|
if [ "$ret" -eq 0 ];
|
|
then
|
|
echo "Adding more than ${MAX_USERDATA_ITEMS} entries in userdata should fail, but it didn't" >&2
|
|
ls "${NETCONS_PATH}/userdata/" >&2
|
|
exit "${ksft_fail}"
|
|
fi
|
|
}
|
|
|
|
# ========== #
|
|
# Start here #
|
|
# ========== #
|
|
|
|
modprobe netdevsim 2> /dev/null || true
|
|
modprobe netconsole 2> /dev/null || true
|
|
|
|
# Check for basic system dependency and exit if not found
|
|
check_for_dependencies
|
|
|
|
# Remove the namespace, interfaces and netconsole target on exit
|
|
trap cleanup EXIT
|
|
# Create one namespace and two interfaces
|
|
set_network
|
|
# Create a dynamic target for netconsole
|
|
create_dynamic_target
|
|
# populate the maximum number of supported keys in userdata
|
|
create_userdata_max_entries
|
|
# Verify an additional entry is not allowed
|
|
verify_entry_limit
|
|
exit "${ksft_pass}"
|