Greetings,

I need to copy data from kernel to user space and vice versa; naturally, 
this should happen as fast as possible, and page faults may occur.

Looking at the man pages of ddi_copyin()/ddi_copyout(), it says:
"
      Driver defined locks should not be held across calls to this
      function.
"

uiomove(9F) can be used for the same purpose (some more setup overhead), 
but the man page does not mention locks at all.

Thus, I wonder which problems can occur if holding a driver-defined lock 
while calling ddi_copyin/out()? It surely relates to handling page 
faults, so why would uiomove() not be affected?

On Linux, holding a spinlock while handling a page fault is deadly as it 
implies sleeping which is not allowed then. But then again, kmutex_t is 
a bit smarter...

  Joachim

-- 
Joachim Worringen, Software Architect, Dolphin Interconnect Solutions
phone ++49/(0)228/324 08 17 - http://www.dolphinics.com
_______________________________________________
opensolaris-code mailing list
opensolaris-code@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/opensolaris-code

Reply via email to