Project

General

Profile

Bug #2930

'objcache' causes panic during 'nfs_readdir'

Added by tofergus 8 months ago. Updated 8 months ago.

Status:
New
Priority:
High
Assignee:
-
Category:
VFS subsystem
Target version:
-
Start date:
07/26/2016
Due date:
% Done:

0%


Description

'vkernel' with '/home' file system mounted from host produces the following panic when trying to read a directory with 10s of 1000s of files. Increasing memory to the 'vkernel' avoids the issue.

panic: NFS node: malloc limit exceeded
cpuid = 0
Trace beginning at frame 0x80291f70a0
panic() at 0x4bc587
panic() at 0x4bc587
kmalloc() at 0x4b87aa
objcache_malloc_alloc() at 0x4af344
objcache_get() at 0x4afba5
nfs_nget_nonblock() at 0x5f7ab4
Debugger("panic")

CPU0 stopping CPUs: 0x0000000000000000
stopped
Stopped at 0x6ab941: movb $0,0x1165564(%rip)

History

#1 Updated by tofergus 8 months ago

It seems that 'nfs' creats an 'objcache_create_simple' for the 'NFS Node' structures, however, 'objcache_simple' does not seem to allow 'kmalloc' to return NULL and thus, we 'panic'.

Unclear to me how this should be resolved. It would seem that 'objcache_simple' should set 'M_NULLOK' to allow and propagate the NULL return but I would need a much better understanding of all subsystems before guessing where and how that should happen.

Also available in: Atom PDF