Messages in this thread | | | Date | Mon, 25 Mar 2002 12:46:13 -0800 | From | Kevin Pedretti <> | Subject | Re: do_exit() and lock_kernel() semantics |
| |
Manfred Spraul wrote:
>>Thus, for each receive we have to convert the virt address of the >>user-land receive buffer to a physical address (in the kernel region) >>before doing the memcpy (copy_to_user doesn't work from interrupt >>context). >> > >Why do you want to do that at interrupt time? >I'd call map_user_kiobuf() when the user-land buffer is set up, and then >write directly (i.e. with kmap_atomic()) into the pages stored in >iobuf->maplist[]. It avoids the page table scan at interrupt time. > >Which platform do you use? map_user_kiobuf() doesn't enforce cache >coherency internally, outside of i386 you might need additional >flush_cache_whatever (see Documentation/cachetlb.txt) > >-- > Manfred >
I'm guessing the reason is that this module was initially developed on 2.0 and ported to 2.2. and 2.4. I think the kiobuf stuff is only in 2.4+, right? I should probably work on converting things, although our production Cplant cluster is still using 2.2. It might help reduce our latency, although I'm guessing the page table walk is pretty quick.
This module needs to work on Alpha, i386, and ia64 so I'd have to look into the cache issues.
Thanks, Kevin
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |