On Sun, May 31, 2015 at 12:28 PM, Arend van Spriel <aspriel@xxxxxxxxx> wrote: > On 31-05-15 01:28, Chaitanya T K wrote: >> cfg80211 reuses the skb before asking for a fresh on from genl framework, >> this works efficiently for smaller messages but NLM_F_DUMP is normally >> used to transport larger data normally > PAGE_SIZE, so if the message >> occupies more than GOODSIZE its better to ask for a new, saves couple >> of hanshakes with the driver. >> >> This improves the time to get the DUMP response across to user space. >> Signed-off-by: Chaitanya T K <chaitanya.mgit@xxxxxxxxx> >> --- >> V2: no new line, so commit log was cut off. Updated now. >> --- >> net/wireless/nl80211.c | 4 ++++ >> 1 file changed, 4 insertions(+) >> >> diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c >> index c264eff..152bd0c 100644 >> --- a/net/wireless/nl80211.c >> +++ b/net/wireless/nl80211.c >> @@ -7636,6 +7636,10 @@ static int nl80211_testmode_dump(struct sk_buff *skb, >> } >> >> genlmsg_end(skb, hdr); >> + >> + /* Don't re-use skb, when we know nla_put fails*/ > > After reading the commit message this comment is not clear to me. Maybe > it is just me ;-) > >> + if (skb->len > NLMSG_GOODSIZE / 2) > > This definitely does not match the description in the commit message: > 'message occupies more than GOODSIZE' != (skb->len > NLMSG_GOODSIZE / 2) We need to find a threshold where smaller messages still get aggregated in the same skb where as larger messages save an extra handshake and request for another skb. So this threshold would be NLMSG_GOODSIZE/2. Assuming messages are equal size except for the last one and if one message is > NLMSG_GOODSIE/2, we cannot fit another message in the same skb. -- Thanks, Regards, Chaitanya T K. -- 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