On Sun, May 31, 2015 at 4:51 PM, Johannes Berg <johannes@xxxxxxxxxxxxxxxx> wrote: > On Sun, 2015-05-31 at 16:47 +0530, Krishna Chaitanya wrote: > >> > Note # of "messages" as you say is actually irrelevant - you should look >> >> Well with 138 messages the function and each message 3072 bytes >> calls b/w cfg80211 and driver >> without the patch: would be 276 calls >> with this patch: would be 138 calls >> Thats a lot of function calls, don't you think? > > No, I don't think so. That really should be within the noise, it's all > in the icache already after the first round. Agree, but there's a scope for improvement (at least functionally), so i took a shot. > >> > at how often the kernel/user boundary is crossed, that's really far more >> > interesting, and your patch makes that MUCH worse when the put size is >> > small (say 100 bytes) because then you're practically doing that twice >> > as often. >> >> My patch doesn't deteriorate the situation, and not change the kernel to >> user boundary. With/Without the patch 3072 bytes are transported in a >> single message from kernel to user. > > *in your case* > > In the case that somebody is creating smaller messages it makes things > MUCH worse by allowing only half the data to be carried across the > kernel/userspace boundary each time any data crosses it, so it will > result in many more syscalls in that case. If you're worried about the > overhead of a simple function (pointer) call in the kernel, then surely > you should be far more worried about this. Thats why we have the threshold so that smaller messages (<2048) do not suffer. -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html