Skip to content

Module_Reload_Validation: add generic profiled reload framework and expanded base/overlay coverage #501

Open
smuppand wants to merge 5 commits into
qualcomm-linux:mainfrom
smuppand:kernel-tests
Open

Module_Reload_Validation: add generic profiled reload framework and expanded base/overlay coverage #501
smuppand wants to merge 5 commits into
qualcomm-linux:mainfrom
smuppand:kernel-tests

Conversation

@smuppand

Copy link
Copy Markdown
Contributor

Enhance Module_Reload_Validation into a generic profile-driven kernel module reload validation framework.

This change keeps [run.sh](http://run.sh/) as a thin orchestration layer and moves reusable reload logic into [lib_module_reload.sh](http://lib_module_reload.sh/). Module-specific behavior is now handled through profiles and profile lists, allowing different teams to run only the profiles relevant to their subsystem.

Why

The previous test was limited and module-specific. Different subsystems need to
validate reload behavior independently without duplicating framework logic or
creating one-off scripts.

This framework lets teams run targeted coverage such as:

./[run.sh](http://run.sh/) --module fastrpc
./[run.sh](http://run.sh/) --module snd_soc_qcom_sdw
./[run.sh](http://run.sh/) --profile-list profiles/base.list
./[run.sh](http://run.sh/) --profile-list profiles/overlay.list

smuppand added 5 commits June 27, 2026 23:07
Add generic module reload helpers in lib_module_reload.sh for profile-driven
module unload/reload validation.

The helpers cover module availability checks, holder discovery, timeout-wrapped
load/unload commands, multi-module validation, service/process quiesce,
best-effort restore, open-FD evidence, and per-iteration debug collection.

Keep module-specific behavior out of run.sh and allow profiles to stay mostly
declarative.

Signed-off-by: Srikanth Muppandam <smuppand@qti.qualcomm.com>
Update run.sh to keep module reload execution generic and profile driven.

Add support for explicit profile selection, profile-list execution, timeout
arguments, sysrq hang-dump control, result summary generation, and repo-standard
execution flow.

This keeps run.sh as a thin orchestration layer while lib_module_reload.sh and
profiles own the reload behavior.

Signed-off-by: Srikanth Muppandam <smuppand@qti.qualcomm.com>
Add and refine base-image module reload profiles for FastRPC, Ethernet, Wi-Fi,
crypto, secure comms, MVM, Venus, Iris, TC956x Ethernet, and Qualcomm
SoundWire/ASoC.

Add profile list files to support grouped execution of base and overlay module
reload coverage.

Keep enabled.list conservative for default CI while allowing teams to explicitly
run broader base or overlay validation through --profile-list.

Signed-off-by: Srikanth Muppandam <smuppand@qti.qualcomm.com>
Update the LAVA test definition to call the suite using repo-standard run steps
and parameterized profile selection.

Support single-profile execution through PROFILE and grouped execution through
PROFILE_LIST without requiring one YAML file per module.

Signed-off-by: Srikanth Muppandam <smuppand@qti.qualcomm.com>
Update the README with current framework behavior, CLI usage, LAVA/YAML usage,
profile-list execution, team-specific launch examples, profile customization,
quiesce/restore behavior, and troubleshooting guidance.

Document modern msm.ko DRM handling separately from legacy msm_kgsl and clarify
how base and overlay profiles should be selected per platform.

Signed-off-by: Srikanth Muppandam <smuppand@qti.qualcomm.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant