[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