Skip to content

Conversation

@github-actions
Copy link

@github-actions github-actions bot commented Nov 4, 2025

Summary

This PR has been automatically created after successful completion of all CI stages.

Commit Message(s)

Add automated kernel CI workflow with kselftest and PR creation

Implements a 5-stage GitHub Actions pipeline for automated kernel testing and PR creation.
Uses kernel-container-build automated-testing-v1 branch for build/test tooling.
Add a condition for github action to run

Currently, this github action has been tested only
on 9.2 CIQ LTS kernel so just add that branch as a
condition to run the test.
Add PR body generation script

Script to generate detailed PR descriptions with kselftest results.
Add [skip ci] and [ci skip] support to workflow

- Workflow now checks commit message for [skip ci] or [ci skip]
- If either flag is present, the entire workflow is skipped
- Allows developers to push changes without triggering CI when not needed
Create a PR only if curly braces are present in the Branch name

Signed-off-by: Shreeya Patel <[email protected]>
Use target branch name into the PR subject line

Signed-off-by: Shreeya Patel <[email protected]>
Fix force pushes logic

Signed-off-by: Shreeya Patel <[email protected]>
Add .container_build_image and remove -c flag from workflow

- Created .container_build_image with lts-9.2-kernel-builder
- Updated workflow to remove -c option from build_kernel.sh call
- Build script will now automatically use the image specified in .container_build_image
Remove complex merge base logic

Signed-off-by: Shreeya Patel <[email protected]>
Fix PR creation commit message extraction

Signed-off-by: Shreeya Patel <[email protected]>
Minor fixes 1

Signed-off-by: Shreeya Patel <[email protected]>
Minor fixes 2

Signed-off-by: Shreeya Patel <[email protected]>
Fix branch name

Signed-off-by: Shreeya Patel <[email protected]>
NFS: Fix filehandle bounds checking in nfs_fh_to_dentry()

jira VULN-136577
cve CVE-2025-39730
commit-author Trond Myklebust <[email protected]>
commit ef93a685e01a281b5e2a25ce4e3428cf9371a205
Fix markdown formatting

Signed-off-by: Shreeya Patel <[email protected]>
Fix counting of total commits

Signed-off-by: Shreeya Patel <[email protected]>
Review fixes 1

Signed-off-by: Shreeya Patel <[email protected]>
Review fixes 2

Signed-off-by: Shreeya Patel <[email protected]>
Fix from Roxana

Signed-off-by: Shreeya Patel <[email protected]>

Test Results

✅ Build Stage

✅ Boot Verification

✅ Kernel Selftests

⚠️ Test Comparison

  • Status: Skipped
  • Reason: No baseline test results available from ciqlts9_2
  • Note: Manual review recommended to ensure no regressions

🤖 This PR was automatically generated by GitHub Actions
Run ID: 19631241655

@shreeya-patel98
Copy link
Collaborator

Need to use the target branch name in the commit message instead of the current branch name.

@shreeya-patel98 shreeya-patel98 force-pushed the {shreeya}_ciqlts9_2 branch 2 times, most recently from f0e27bd to cf2ca5a Compare November 6, 2025 11:21
@github-actions github-actions bot changed the title [{shreeya}_ciqlts9_2] NFS: Fix filehandle bounds checking in nfs_fh_to_dentry() [ciqlts9_2] NFS: Fix filehandle bounds checking in nfs_fh_to_dentry() Nov 6, 2025
@shreeya-patel98
Copy link
Collaborator

Finally worked 💃 🎉

@PlaidCat
Copy link
Collaborator

Is this to actually be reviewed?

@shreeya-patel98
Copy link
Collaborator

Is this to actually be reviewed?

@PlaidCat no please ignore it, I was doing my testing with this one.

@shreeya-patel98 shreeya-patel98 force-pushed the {shreeya}_ciqlts9_2 branch 2 times, most recently from 62c2a04 to 7d840a5 Compare November 17, 2025 19:39
@github-actions
Copy link
Author

JIRA PR Check Results

1 commit(s) with issues found:

Commit

Summary: NFS: Fix filehandle bounds checking in nfs_fh_to_dentry()

❌ Errors:

  • VULN-136577: Status is 'To Do', expected 'In Progress'

⚠️ Warnings:

  • VULN-136577: No time logged - please log time manually

Summary: Checked 13 commit(s) total.

@github-actions
Copy link
Author

JIRA PR Check Results

1 commit(s) with issues found:

Commit

Summary: NFS: Fix filehandle bounds checking in nfs_fh_to_dentry()

❌ Errors:

  • VULN-136577: Status is 'To Do', expected 'In Progress'

⚠️ Warnings:

  • VULN-136577: No time logged - please log time manually

Summary: Checked 14 commit(s) total.

@github-actions github-actions bot changed the title [ciqlts9_2] NFS: Fix filehandle bounds checking in nfs_fh_to_dentry() [ciqlts9_2] Multiple patches tested (15 commits) Nov 17, 2025
@github-actions
Copy link
Author

JIRA PR Check Results

1 commit(s) with issues found:

Commit

Summary: NFS: Fix filehandle bounds checking in nfs_fh_to_dentry()

❌ Errors:

  • VULN-136577: Status is 'To Do', expected 'In Progress'

⚠️ Warnings:

  • VULN-136577: No time logged - please log time manually

Summary: Checked 16 commit(s) total.

@github-actions github-actions bot changed the title [ciqlts9_2] Multiple patches tested (15 commits) [ciqlts9_2] Multiple patches tested (16 commits) Nov 17, 2025
@shreeya-patel98 shreeya-patel98 changed the title [ciqlts9_2] Multiple patches tested (16 commits) [TESTING] [ciqlts9_2] Multiple patches tested (16 commits) Nov 20, 2025
@github-actions
Copy link
Author

JIRA PR Check Results

1 commit(s) with issues found:

Commit

Summary: NFS: Fix filehandle bounds checking in nfs_fh_to_dentry()

❌ Errors:

  • VULN-136577: Status is 'To Do', expected 'In Progress'

⚠️ Warnings:

  • VULN-136577: No time logged - please log time manually

Summary: Checked 19 commit(s) total.

@shreeya-patel98 shreeya-patel98 changed the title [TESTING] [ciqlts9_2] Multiple patches tested (16 commits) [ciqlts9_2] Multiple patches tested (19 commits) Nov 21, 2025
@github-actions
Copy link
Author

JIRA PR Check Results

1 commit(s) with issues found:

Commit

Summary: NFS: Fix filehandle bounds checking in nfs_fh_to_dentry()

❌ Errors:

  • VULN-136577: Status is 'To Do', expected 'In Progress'

⚠️ Warnings:

  • VULN-136577: No time logged - please log time manually

Summary: Checked 19 commit(s) total.

@github-actions
Copy link
Author

JIRA PR Check Results

1 commit(s) with issues found:

Commit

Summary: NFS: Fix filehandle bounds checking in nfs_fh_to_dentry()

⚠️ Warnings:

  • VULN-136577: No time logged - please log time manually

Summary: Checked 19 commit(s) total.

@shreeya-patel98 shreeya-patel98 changed the title [ciqlts9_2] Multiple patches tested (19 commits) [TESTING] ciqlts9_2] Multiple patches tested (19 commits) Nov 26, 2025
@shreeya-patel98 shreeya-patel98 changed the title [TESTING] ciqlts9_2] Multiple patches tested (19 commits) [TESTING] [ciqlts9_2] Multiple patches tested (19 commits) Nov 26, 2025
roxanan1996 and others added 6 commits December 5, 2025 15:43
jira VULN-155243
cve-pre CVE-2022-50356
commit-author Zhengchao Shao <[email protected]>
commit c19d893

qdisc_reset() is clearing qdisc->q.qlen and qdisc->qstats.backlog
_after_ calling qdisc->ops->reset. There is no need to clear them
again in the specific reset function.

	Signed-off-by: Zhengchao Shao <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
	Signed-off-by: Paolo Abeni <[email protected]>
(cherry picked from commit c19d893)
	Signed-off-by: Roxana Nicolescu <[email protected]>
jira VULN-155243
cve CVE-2022-50356
commit-author Zhengchao Shao <[email protected]>
commit 2a3fc78

When the default qdisc is sfb, if the qdisc of dev_queue fails to be
inited during mqprio_init(), sfb_reset() is invoked to clear resources.
In this case, the q->qdisc is NULL, and it will cause gpf issue.

The process is as follows:
qdisc_create_dflt()
	sfb_init()
		tcf_block_get()          --->failed, q->qdisc is NULL
	...
	qdisc_put()
		...
		sfb_reset()
			qdisc_reset(q->qdisc)    --->q->qdisc is NULL
				ops = qdisc->ops

The following is the Call Trace information:
general protection fault, probably for non-canonical address
0xdffffc0000000003: 0000 [#1] PREEMPT SMP KASAN
KASAN: null-ptr-deref in range [0x0000000000000018-0x000000000000001f]
RIP: 0010:qdisc_reset+0x2b/0x6f0
Call Trace:
<TASK>
sfb_reset+0x37/0xd0
qdisc_reset+0xed/0x6f0
qdisc_destroy+0x82/0x4c0
qdisc_put+0x9e/0xb0
qdisc_create_dflt+0x2c3/0x4a0
mqprio_init+0xa71/0x1760
qdisc_create+0x3eb/0x1000
tc_modify_qdisc+0x408/0x1720
rtnetlink_rcv_msg+0x38e/0xac0
netlink_rcv_skb+0x12d/0x3a0
netlink_unicast+0x4a2/0x740
netlink_sendmsg+0x826/0xcc0
sock_sendmsg+0xc5/0x100
____sys_sendmsg+0x583/0x690
___sys_sendmsg+0xe8/0x160
__sys_sendmsg+0xbf/0x160
do_syscall_64+0x35/0x80
entry_SYSCALL_64_after_hwframe+0x46/0xb0
RIP: 0033:0x7f2164122d04
</TASK>

Fixes: e13e02a ("net_sched: SFB flow scheduler")
	Signed-off-by: Zhengchao Shao <[email protected]>
	Signed-off-by: David S. Miller <[email protected]>
(cherry picked from commit 2a3fc78)
	Signed-off-by: Roxana Nicolescu <[email protected]>
Implements a 5-stage GitHub Actions pipeline for automated kernel testing and PR creation.
Uses kernel-container-build automated-testing-v1 branch for build/test tooling.

Stage 1: Build (15-30 min)
- Checkout kernel source + kernel-container-build repo (automated-testing-v1)
- Build kernel in CIQ builder container with kABI checking
- Convert built container to QCOW2 VM image
- Upload: kernel-build.log, QCOW2 image

Stage 2: Boot Verification (2-5 min)
- Download QCOW2 image
- Boot kernel in QEMU (KVM or TCG) and validate login prompt appears
- Upload: boot logs

Stage 3: Kernel Selftests (40-60 min)
- Download QCOW2 image
- Execute comprehensive kselftests in QEMU with dual serial consoles
- Upload: kselftest TAP logs, dmesg output

Stage 4: Compare Results (1-2 min)
Purpose: Detect test regressions by comparing against base branch

Steps:
1. Checkout with full history (fetch-depth: 0)
2. Download current kselftest logs
3. Fetching base branch:
   - For pushes: Fetches the base branch where the patches needs to be
     merged using the user branch name.
     Example :- If user branch pushed is {shreeya}_ciqlts9_2 then
     ciqlts9_2 is the base branch.
   - For force-pushes: Doesn't do the base branch fetching again, instead uses the
     same base branch as detected during the first PR creation and also
     compares the result against that base branch.
   - Outputs: base_branch (reused by PR stage)
4. Download baseline logs from base branch (searches last 5 successful runs)
5. Compare results:
   - Counts passing/failing tests (before/after)
   - Fails if >±3 tests changed
   - Outputs: comparison_status, comparison_message

Stage 5: Create Pull Request (1-2 min)
Purpose: Auto-create/update PR after all tests pass

Prerequisites: Only runs if build + boot + kselftest passed, no regressions detected

Steps:
1. Check all stages passed and comparison_status != failed
2. Checkout (shallow: fetch-depth: 100) for commit messages
3. Download all artifacts (build/boot/test logs)
4. Extract statistics (pass/fail counts, build times)
5. Get commit info:
   - Single commit: Use commit message
   - Multiple commits: Create summary
6. Create/Update PR:
   - Reuses base_branch from compare-results (no duplication!)
   - Generate PR body with test results via create-pr-body.sh
   - Creates new PR or updates existing one in case of force pushes

Note :-
1. To skip this github action workflow, add [ci skip] or [skip ci]
into the head commit when pushing the patches.
2. For the CI to generate automatic PRs against a valid branch,
one needs to have the user branch name in the format of
{any_name}_basebranch.
3. Braces and base branch name in the user branch is necessary or else
PR creation stage will fai}_basebranch.
3. Braces and base branch name in the user branch is necessary or else
PR creation stage will fail.

Signed-off-by: Shreeya Patel <[email protected]>
Script to generate detailed PR descriptions with kselftest results.

Signed-off-by: Shreeya Patel <[email protected]>
Otherwise, creating the pull request fails because the scripts are not present
in that specific branch.

Signed-off-by: Roxana Nicolescu <[email protected]>
PRs that were created by this workflow were using my name
due to the personal github token being used here.
Use the latest Github App Authentication method set up by TJ
for us.

Signed-off-by: Shreeya Patel <[email protected]>
tylergohl and others added 2 commits December 8, 2025 13:25
The workflow was failing because the GitHub App token generated by
actions/create-github-app-token@v1 was only scoped to the current
repository (kernel-src-tree) by default. When it tried to checkout
kernel-container-build (which has INTERNAL visibility), the token
didn't have access, resulting in "Repository not found" errors.

Added explicit repositories parameter to all token generation steps
to grant access to all required repositories:
- kernel-tools
- kernel-src-tree
- kernel-src-tree-tools
- kernel-container-build

This fix applies to all 5 token generation steps in the workflow:
- build job
- boot job
- test-kselftest job
- compare-results job
- create-pr job

Fixes: https://github.com/ctrliq/kernel-src-tree/actions/runs/19970287958

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Signed-off-by: Shreeya Patel <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

5 participants