Hello,
In the latest version of Ganesha (5.5.3), it looks like free_state operation in FSALs
don't actually free the memory. With a simple "open; read; close" loop, I
see high memory usage with VFS. Shouldn't vfs_free_state free the state pointer Or is
it supposed to be free'd later?
Something like this works. But not sure if that is the right thing to do. The same problem
is there in all FSALs.
void vfs_free_state(struct fsal_export *exp_hdl, struct state_t *state)
{
struct vfs_state_fd *state_fd = container_of(state, struct vfs_state_fd,
state);
struct vfs_fd *my_fd = &state_fd->vfs_fd;
destroy_fsal_fd(&my_fd->fsal_fd);
gsh_free(state_fd);
}
$ ps -C ganesha.nfsd -o etime,rsz
ELAPSED RSZ
07:11 455348
$ ps -C ganesha.nfsd -o etime,rsz
ELAPSED RSZ
09:19 549524
..
$ ps -C ganesha.nfsd -o etime,rsz
ELAPSED RSZ
32:26 1381800