[Lustre-discuss] copy_user_generic_c ?
Andreas Dilger
adilger at sun.com
Mon Jul 7 22:31:22 PDT 2008
On Jul 07, 2008 20:36 -0400, Roger Spellman wrote:
> Thanks for this information.
> But, I'm seeing this problem on an OST, not on a client. Why would
> an OST be doing copy_to/from_user()? On a write, the IB card should
> be directly placing the data. So, shouldn't the data already be in
> kernel space?
Yes, by all means it shouldn't need a copy on the OST - that is what
RDMA is for. You definitely are not running Samba exports on the OST
node? I can't imagine what else would be doing this on an OST.
Your oprofile output should be able to show the callchain for the
busiest callpaths. Alternately, if this is active 25% of the time it
may be enough to do "echo p > /proc/sysrq-trigger" 16 times and see
what the resulting stacks are. In theory 4 of them should have
copy_{to,from}_user() at the top of the stack.
> >This is a well-known problem - this kernel function is copying data
> >from userspace to the kernel buffers on a write, and vice versa on
> >a read.
Cheers, Andreas
--
Andreas Dilger
Sr. Staff Engineer, Lustre Group
Sun Microsystems of Canada, Inc.
More information about the lustre-discuss
mailing list