As I look at the kernel source, I got some curiosity regarding the context of fdtable deallocation.
From fs/file.c, I could see fdtable allocated with vmalloc (large fdtable) is deallocated in workqueue context.
But one thing I cannot understand is why vmalloc should be handled in such context.
I thought it could be freed using vfree in the rcu call, but I believe there should be a reason for doing this.
I've looked at Bovet's book for finding out why, but could not get any probable explanation about it.
It would be great if anyone can give me an answer for this or point me to any nice reference for this kind of topic.
Thanks,
Sangman