>>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/