On Sun, 2015-05-31 at 15:31 +0530, Krishna Chaitanya wrote: > In our case the data size is 411KB, and each message carries around 3072 > bytes, so total messages would be 138. The first message we get, we > retrieve the data, and for subsequent messages we just fill the skb, > we are not interacting with the hardware. > > Without this patch, heres the sequence: > genl->cfg80211->retrieve the dump from HW, skb_put: 3072 > cfg80211->skb_put, fail > genl->cfg80211->skb_put: 3072. > > With this patch: > > genl->cfg80211->retrive the dump from HW, skb_put: 3072 > genl->cfg80211->skb_put: 3072. You've failed to explain why this is so much of a problem that you're trying to "fix" it. I suspect the "fail" part inside your driver is needlessly expensive, I don't think the function call can be expensive enough to worry anyone. Note # of "messages" as you say is actually irrelevant - you should look 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. Anyway - I stand by your patch being a terrible idea. End of story. johannes -- 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