Skip to content

nfs: few fixes and enhancements#45

Merged
chucklever merged 8 commits intomainfrom
mcgrof-nfs
Oct 4, 2025
Merged

nfs: few fixes and enhancements#45
chucklever merged 8 commits intomainfrom
mcgrof-nfs

Conversation

@chucklever
Copy link
Contributor

In prepration for talking about NFS tests at the MSST conference today I figured I'd give a run to all NFS tests. I ran out of time but at least this plumbed quite a bit of the stuff to get some results out.

mcgrof added 8 commits October 3, 2025 15:34
Add five defconfigs for NFS testing:

NFS filesystem testing configurations:
- nfs-fstests: Filesystem testing suite (fstests) on NFS mounts
  * Enables pNFS section for testing with pNFS-capable exports
  * Tests NFSv4.2, v4.1 with pNFS export capability
- nfs-gitr: Git regression testing on NFS mounts
  * Tests git operations on NFS with pNFS export capability
  * Enables NFSv4.2 and pNFS sections for comprehensive coverage
- nfs-ltp: Linux Test Project suite on NFS mounts
  * General test suite that runs on NFS (not pNFS-specific)

NFS protocol testing configurations:
- nfstests: NFStest protocol conformance suite
  * Tests NFS protocol interoperability
  * General NFS testing (not pNFS-specific)
- pynfs-pnfs-block: PyNFS pNFS block layout protocol testing
  * Specifically tests pNFS block layout protocol conformance
  * This is the only configuration that actually tests pNFS-specific features

All configurations:
- Build kernels from Linus' tree for latest development
- Use kdevops-provided NFS server for consistent test environment
- Enable systemd journal remote for enhanced debugging
- Support 9P filesystem for efficient host-guest kernel development

Note: Most tests run on NFS mounts that may have pNFS capability enabled
on the server side, but only pynfs-pnfs-block specifically tests pNFS
protocol features.

Generated-by: Claude AI
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
The NFS server (nfsd group) should not run systemd-journal-upload
service as it acts as the journal remote server, not a client.
The journal upload service is for clients that send logs to the
remote server.

Add condition to exclude 'nfsd' group members from journal upload
client configuration tasks in both devconfig and fstests roles.

This fixes the failure where systemd-journal-upload.service was
not found on NFS server nodes, as they should only run the
journal remote receiver service, not the upload client.

Generated-by: Claude AI
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
The Debian vars file was missing iscsi_initiator_packages
definition, causing failures when setting up iSCSI initiators
for pNFS block layout testing.

Add open-iscsi package to match the pattern used in SUSE.

Generated-by: Claude AI
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
The filesystem module was unable to find mkfs.xfs when using
'become_flags: "su - -c"' which changes the environment.
Change to use standard 'become_method: sudo' to preserve
the PATH and allow the module to find the mkfs.xfs executable.

Generated-by: Claude AI
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
The fstests role was incorrectly setting export_pnfs=true for pNFS
test sections. The kernel pNFS export option requires proper block
layout backend configuration (like iSCSI targets) which isn't present.

Regular NFSv4.1/4.2 testing doesn't need this option. The incorrect
configuration caused NFS server lockd failures and made NFS mounts
hang indefinitely.

Generated-by: Claude AI
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Add make nfstests-results-visualize target to generate HTML visualization
of NFS test results. This processes test logs from workflows/nfstest/results/last-run
and creates a self-contained HTML report with charts and statistics.

The visualization includes:
- Overall test summary with pass/fail statistics
- Interactive pie charts for test results
- Detailed results grouped by NFS protocol version
- Collapsible sections for easy navigation
- Test configuration details

Usage: make nfstests-results-visualize
Output: workflows/nfstest/results/html/

This makes it easy to analyze test results and share them by simply
copying the html directory via scp.

Generated-by: Claude AI
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Use the soak duration when enabled for NFS fstests.
Although current analysis (take scripts/workflows/lib/fstests.py
fstests_test_uses_soak_duration() and use it on a new script to
check.time) shows no tests run on NFS actually leverage soak duration.
But this can change with time.

Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Add 'make pynfs-visualize' target to generate comprehensive HTML reports
with PNG charts for pynfs test results. This makes it easy to understand
test outcomes at a glance and share results.

Features:
- HTML report with test summaries, statistics, and detailed results
- PNG charts showing test distribution (pie and bar charts)
- Comparison charts when multiple NFS versions are tested
- Automatic kernel version detection from results directory
- Self-contained output directory for easy transfer via scp

The visualization script generates:
- index.html: Main report with interactive tabs
- pynfs-v4_0-results.png: NFS v4.0 test charts
- pynfs-v4_1-results.png: NFS v4.1 test charts
- pynfs-vblock-results.png: pNFS block layout charts
- pynfs-comparison.png: Side-by-side version comparison

Usage:
  make pynfs-visualize                    # Auto-detect kernel
  make pynfs-visualize LAST_KERNEL=<version>  # Specific kernel

Output is generated in:
  workflows/pynfs/results/<kernel>/html/

Generated-by: Claude AI
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
@chucklever chucklever merged commit ff4c821 into main Oct 4, 2025
22 checks passed
@chucklever chucklever deleted the mcgrof-nfs branch October 4, 2025 02:47
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.

2 participants