Do you really need to do a full copy? What if you had a shared page and notified the user process when the data in the page was available at a certain offset.
Take a look at this paper (FlexSC: Flexible System Call Scheduling with Exception-Less System Calls):
reply