Howdy,
We've been digging into an interesting possible issue in the FreeBSD NFS client. Here is the scenario. I have a FreeBSD VM on my Mac, the Mac is the NFS server, the VM is the client. I then attempt to build an out of tree kernel module that I'm working on. The build looks like it's hanging for 1.5 seconds, and when we look at the packets (pcap file attached) we see a ton of GETATTRs over the first 1.5 seconds. I've put the pcap up here: oct_8_2024.pcapng
I also note that an issue was raised on the forums that seems similar, way back between FreeBSD 10 and 11:
https://forums.freebsd.org/threads/nfs-cache-misses-after-upgrading-to-11-1-from-10-3.65491/
I'm seeing this on 15 currentish (last few months).
Best,
George
Hello!
Maybe some statistics will be usefull.
I see only to 2 RPC calls to read directory
nfs and rpc.procedure == 16 and rpc.msgtyp == 0 (WireShark filter)
#16 2024-10-09 06:58:28.778343 --- READDIR Call (Reply In 18), FH: 0x83d2ee09
#109892 2024-10-09 06:58:42.613925 --- READDIR Call (Reply In 109894), FH: 0x17e3acee
and 2 replies
nfs and rpc.procedure == 16 and rpc.msgtyp == 1
#18 2024-10-09 06:58:28.778670 --- READDIR Reply (Call In 16)
. .. vtab_dirent.c vtab_proc.c vtab_tcp.c osdb_mod.h vtab_inode.c Makefile osdb.c vtab_file.c vtab_udp.h
vtab_common.h vtab_superblock.c osdb_value.h vtab_thread.h vtab_vnode.c vtab_dirent.h
vtab_tcp.h vtab_proc.h vtab_udp.c vtab_file.h osdb_mod.c vtab_inode.h osdb.h vtab_vnode.h vtab_superblock.h
vtab_common.c vtab_thread.c osdb_value.c osdb_ufs.h
#109894 2024-10-09 06:58:42.614015 --- READDIR Reply (Call In 109892)
. .. beautify.c osdb_snapshot.c Makefile osdb_sample.c beautify.h osdb_query.c
others procedures
GETATTR (Get file attributes) calls and replies
nfs and rpc.procedure == 1
17292 packets
SETATTR (Set file attributes) calls and replies
nfs and rpc.procedure == 2
80 packets
LOOKUP (Lookup filename) calls and replies
nfs and rpc.procedure == 3
1122 packets
ACCESS (Check Access Permission) calls and replies
nfs and rpc.procedure == 4
566 packets
READLINK (Read from symbolic link) calls and replies
nfs and rpc.procedure == 5
2 packets
READ (Read From file) calls and replies
nfs and rpc.procedure == 6
2052 packets
WRITE (Write to file) calls and replies
nfs and rpc.procedure == 7
1038 packets
CREATE (Create a file) calls and replies
nfs and rpc.procedure == 8
56 packets
SYMLINK (Create a symbolic link) calls and replies
nfs and rpc.procedure == 10
2 packets
REMOVE (Remove a File) calls and replies
nfs and rpc.procedure == 12
12 packets
RENAME (Rename a File or Directory) calls and replies
nfs and rpc.procedure == 14
48 packets
FSSTAT (Get dynamic file system information) calls and replies
nfs and rpc.procedure == 18
2 packets
COMMIT (Commit cached data on a server to stable storage) calls and replies
nfs and rpc.procedure == 21
84 packets
----------------
07.11.2024, 03:43, "George Neville-Neil" <g...@neville-neil.com>:
Кому: FreeBSD Net (freebsd-net@freebsd.org);
Тема: An interesting anomaly in NFS client...;
--
best regards,
dark.initr0
- Re: An interesting anomaly in NFS client... Mark Saad
- Re: An interesting anomaly in NFS client... George Neville-Neil
- Re: An interesting anomaly in NFS client.... Rick Macklem
- Re: An interesting anomaly in NFS cli... George Neville-Neil
- Re: An interesting anomaly in NF... Rick Macklem
- Re: An interesting anomaly i... George Neville-Neil
- Re: An interesting anomaly in NFS client... George Neville-Neil
- Re: An interesting anomaly in NFS client... Mark Johnston
- Re: An interesting anomaly in NFS client... Rick Macklem
- Re: An interesting anomaly in NFS client... Bakul Shah
- Re: An interesting anomaly in NFS client... dark . initr0