Skip to contentSkip to conversation

do_exit() and lock_kernel() semantics

DISCUSSION Manfred Spraul 2 participants 2 messages Mar 25, 2002 – Mar 26, 2002

lore
Share & tools
lore
#0 lore raw
Quoted 4 lines

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

#1 lore raw
Quoted 11 lines · Manfred Spraul
Quoted 5 lines

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.

Quoted 7 lines

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