From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5FCFEC282C4 for ; Tue, 12 Feb 2019 23:43:29 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 2A80B222C9 for ; Tue, 12 Feb 2019 23:43:29 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Rz5zuVNg" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729821AbfBLXn1 (ORCPT ); Tue, 12 Feb 2019 18:43:27 -0500 Received: from mail-pf1-f196.google.com ([209.85.210.196]:39258 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728406AbfBLXn1 (ORCPT ); Tue, 12 Feb 2019 18:43:27 -0500 Received: by mail-pf1-f196.google.com with SMTP id f132so223424pfa.6 for ; Tue, 12 Feb 2019 15:43:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:from:to:cc:references:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=YmW1lwJPXIVZCx+o86kmdYTafIt9MAb4XACHFyN3DF0=; b=Rz5zuVNgpqVsgtz060fduDK+gewALa7PMVfd2mGBL70uXOva/3lhuDRUq9fRrlGGJK ZaN4cpiPube9mWQ44zd6JGOJOxLL2RrkP4n+ht3iNi8eIMeQUFfOOQFDFJwmx4E1ZVzv 3/kYUXtp7Qiz0mSkCYk6jsICyRCPx7TdVtojct881chThzbXrgMWEPYrkdBNEO7zOkrj byJwCvFOljXtgl1wEPR0J9kwyzxOduVJgBpgo8iDVKdGxPT1mdZAfCpuqnpTuQ/58WEU aoafoxPbOJYqHfFpRe9TMBqgvnpzhLxE/WmxG9mzdscOA+vFdB0neQt4ImqT+o9cUcXo /5tg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:references:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=YmW1lwJPXIVZCx+o86kmdYTafIt9MAb4XACHFyN3DF0=; b=dDM3+sPrSBH65ac8MPc/v03uFWFi/k355gihzl0nmh48EgQCWn0ZZ6FhZwy28cQBPl rdQK+CR858cN4SsuMk3l119byJi6Hw9GU2zVvIYIBzXkvHz+Xbv/kXjVuEnmskS+mR7U uqjdr1HzNS96LBwAlj3clOtngCh9p3acYiFYEODTkAxtmYnj+Zb4T/pPsd8CNsJI9HVN bY9/rY9Zad46SkSCiSLnYUpp7ST7QocDkdin9AQRgLFsyB5yecqtd0DzWsOS4YQayGNq niRa8H6LBKo7ix2gRrpHPLBJ7zdaMpDLoBPjpC4HjPcNTgwllsk6RDhg3hGCpIoM7hSy e2+A== X-Gm-Message-State: AHQUAuZpXLMk1I2f/LkN8Ppvcau+GjExWziDkzR0FzI/7EO/IwM3wynd 4+XSUHpvFTLCEpQOJApUf4M= X-Google-Smtp-Source: AHgI3IbuSe4c6xJhDm+Z6iAJ+zlEcRYogwSpDGb046NHA5tVG9BkdTskKVMglxJWkrt4D9wTwfmuog== X-Received: by 2002:a63:1544:: with SMTP id 4mr6110131pgv.290.1550015006645; Tue, 12 Feb 2019 15:43:26 -0800 (PST) Received: from ?IPv6:2620:15c:2c1:200:55c7:81e6:c7d8:94b? ([2620:15c:2c1:200:55c7:81e6:c7d8:94b]) by smtp.gmail.com with ESMTPSA id t3sm6173936pga.31.2019.02.12.15.43.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 12 Feb 2019 15:43:25 -0800 (PST) Subject: Re: [PATCHv5 iproute2 net-next 2/2] lib/libnetlink: re malloc buff if size is not enough From: Eric Dumazet To: Hangbin Liu , netdev@vger.kernel.org Cc: Stephen Hemminger , Michal Kubecek , Phil Sutter References: <1508982107-28474-1-git-send-email-liuhangbin@gmail.com> <1508982107-28474-2-git-send-email-liuhangbin@gmail.com> <244174ae-3ab4-68c0-6783-f8c91840a7e1@gmail.com> Message-ID: <4e327b7c-fc1f-ea3a-ba2a-54d81493ba62@gmail.com> Date: Tue, 12 Feb 2019 15:43:24 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <244174ae-3ab4-68c0-6783-f8c91840a7e1@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On 02/12/2019 03:32 PM, Eric Dumazet wrote: > > > This patch brings a serious performance penalty. > > ss command now uses two system calls per ~4KB worth of data > > recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{NULL, 0}], msg_controllen=0, msg_flags=MSG_TRUNC}, MSG_PEEK|MSG_TRUNC) = 3328 <0.000120> > recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"h\0\0\0\24\0\2\0@\342\1\0\322\0\6\0\n\1\1\0\250\253\276@&\7\370\260\200\231\16\6"..., 3328}], msg_controllen=0, msg_flags=0}, 0) = 3328 <0.000108> > recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{NULL, 0}], msg_controllen=0, msg_flags=MSG_TRUNC}, MSG_PEEK|MSG_TRUNC) = 3328 <0.000086> > recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"h\0\0\0\24\0\2\0@\342\1\0\322\0\6\0\n\10\2\0002A\266S&\7\370\260\200\231\16\6"..., 3328}], msg_controllen=0, msg_flags=0}, 0) = 3328 <0.000121> > > > So we are back to a very pessimistic situation. > I guess this patch will solve the issue : diff --git a/lib/libnetlink.c b/lib/libnetlink.c index ced33728777a17e0905e76acb904ac4709707488..309b5b3787e3d8f8c47f035d270ae2b4df01703e 100644 --- a/lib/libnetlink.c +++ b/lib/libnetlink.c @@ -442,6 +442,8 @@ static int rtnl_recvmsg(int fd, struct msghdr *msg, char **answer) if (len < 0) return len; + if (len < 32768) + len = 32768; buf = malloc(len); if (!buf) { fprintf(stderr, "malloc error: not enough buffer\n");