[{"id":2365158,"web_url":"http://patchwork.ozlabs.org/comment/2365158/","msgid":"<20200218231816.own6y5ijjx25kti6@ast-mbp>","list_archive_url":null,"date":"2020-02-18T23:18:17","subject":"Re: [PATCH 15/18] bpf: Sort bpf kallsyms symbols","submitter":{"id":42586,"url":"http://patchwork.ozlabs.org/api/people/42586/","name":"Alexei Starovoitov","email":"alexei.starovoitov@gmail.com"},"content":"On Sun, Feb 16, 2020 at 08:30:02PM +0100, Jiri Olsa wrote:\n> Currently we don't sort bpf_kallsyms and display symbols\n> in proc/kallsyms as they come in via __bpf_ksym_add.\n> \n> Using the latch tree to get the next bpf_ksym object\n> and insert the new symbol ahead of it.\n> \n> Signed-off-by: Jiri Olsa <jolsa@kernel.org>\n> ---\n>  kernel/bpf/core.c | 21 ++++++++++++++++++++-\n>  1 file changed, 20 insertions(+), 1 deletion(-)\n> \n> diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c\n> index 2f857bbfe05c..fa814179730c 100644\n> --- a/kernel/bpf/core.c\n> +++ b/kernel/bpf/core.c\n> @@ -651,9 +651,28 @@ static struct latch_tree_root bpf_progs_tree __cacheline_aligned;\n>  \n>  static void __bpf_ksym_add(struct bpf_ksym *ksym)\n>  {\n> +\tstruct list_head *head = &bpf_kallsyms;\n> +\tstruct rb_node *next;\n> +\n>  \tWARN_ON_ONCE(!list_empty(&ksym->lnode));\n> -\tlist_add_tail_rcu(&ksym->lnode, &bpf_kallsyms);\n>  \tlatch_tree_insert(&ksym->tnode, &bpf_ksym_tree, &bpf_ksym_tree_ops);\n> +\n> +\t/*\n> +\t * Add ksym into bpf_kallsyms in ordered position,\n> +\t * which is prepared for us by latch tree addition.\n> +\t *\n> +\t * Find out the next symbol and insert ksym right\n> +\t * ahead of it. If ksym is the last one, just tail\n> +\t * add to the bpf_kallsyms.\n> +\t */\n> +\tnext = rb_next(&ksym->tnode.node[0]);\n> +\tif (next) {\n> +\t\tstruct bpf_ksym *ptr;\n> +\n> +\t\tptr = container_of(next, struct bpf_ksym, tnode.node[0]);\n> +\t\thead = &ptr->lnode;\n> +\t}\n> +\tlist_add_tail_rcu(&ksym->lnode, head);\n\nwhat is the motivation for sorting? do you want perf and other user space\nto depend on it? Or purely aesthetics?","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming-netdev@ozlabs.org","Delivered-To":"patchwork-incoming-netdev@ozlabs.org","Authentication-Results":["ozlabs.org; spf=none (no SPF record)\n\tsmtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67;\n\thelo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org;\n\tdmarc=pass (p=none dis=none) header.from=gmail.com","ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.a=rsa-sha256 header.s=20161025 header.b=NZIOEomR; \n\tdkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 48McGk4vCyz9sPK\n\tfor <patchwork-incoming-netdev@ozlabs.org>;\n\tWed, 19 Feb 2020 10:18:22 +1100 (AEDT)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1727939AbgBRXSV (ORCPT\n\t<rfc822;patchwork-incoming-netdev@ozlabs.org>);\n\tTue, 18 Feb 2020 18:18:21 -0500","from mail-pg1-f195.google.com ([209.85.215.195]:33242 \"EHLO\n\tmail-pg1-f195.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1727635AbgBRXSV (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Tue, 18 Feb 2020 18:18:21 -0500","by mail-pg1-f195.google.com with SMTP id 6so11722847pgk.0;\n\tTue, 18 Feb 2020 15:18:21 -0800 (PST)","from ast-mbp ([2620:10d:c090:500::5:dd54])\n\tby smtp.gmail.com with ESMTPSA id\n\tx65sm68563pfb.171.2020.02.18.15.18.18\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tTue, 18 Feb 2020 15:18:19 -0800 (PST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=gmail.com; s=20161025;\n\th=date:from:to:cc:subject:message-id:references:mime-version\n\t:content-disposition:in-reply-to:user-agent;\n\tbh=Wr4DuRVgR1jd4oTUUpPq0Q2YSUdbLao1hXDjFRWINh0=;\n\tb=NZIOEomRHq5wTNr6cqFSxCO12drK3rGMjv66dh6YznuBgxTbw1yqHwaHw9GUufDJo+\n\tOgZCEardbTeP4Z4J1oDXyOXrYNFlbvL1PNXL+Nu7bbHryI4kzzBhc7uh+1u+icxU3CKD\n\tfkMhhf/Tb0Khgo453xtPmF7AMdQWpvELJL1wTHkqjJkwEOLOd4Lhr+EdGdk9ECLaW7fL\n\tbbgN7hyIScKQ4vTYByVR5yOlKGE6flyml8kc6aR//ZzBZw/pXzUR09h5uNqNc82t5jjG\n\tUDDPIhxgrK/IVx3gRM8RXIRp2/59VsOaZh+FpW5WT1ht5RkFuTF5VO1Wo6nremUpteNG\n\tRcuw==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:references\n\t:mime-version:content-disposition:in-reply-to:user-agent;\n\tbh=Wr4DuRVgR1jd4oTUUpPq0Q2YSUdbLao1hXDjFRWINh0=;\n\tb=DxSkhTVvdYCLF+2vWCacRj8hjkWSGZdMRIpGaJhqjIjmHYi/rYkOjPjrsaXTNPNMkZ\n\tePSfIBZ5xiyHCob/r4KeV/mJwINN7jo8q8+vhjyGuv+/Fgk650qsEhf+Doq4t3SJjcux\n\tq3OfjZEmcl3RQOCmcgmE+kW9WUBR9iKohsCfqoGh2nlQHWjpncFsKzeTEgmswQgSl3bs\n\tdRTs8FQDrtOE0b84UY47w2k4LXIP4pSykOBWuzyGuoABcAxhNeOx1ihOFVbp37MaC4Yj\n\t5BdjdPBDz2t9GgtxO0VXRfEizuXSrJMHw4P1Jh5TqMhPLF/QQSt6xU6KrlxVoaIEpMRq\n\td4RA==","X-Gm-Message-State":"APjAAAWfhzn+DifnDltp7QWEmGHP//3kmLXrqD6hhtbC9to2h0aCjMkD\n\tNhvDY9QWFEBbvQFvdaWUQlI=","X-Google-Smtp-Source":"APXvYqzRzk6xcaC+XO/KYJEeu21032vpEy76fvhAcH60V4Vx/eqYEIkQe2n87Vg7YAFFAFPYBieULA==","X-Received":"by 2002:a65:6718:: with SMTP id\n\tu24mr25535951pgf.289.1582067900759; \n\tTue, 18 Feb 2020 15:18:20 -0800 (PST)","Date":"Tue, 18 Feb 2020 15:18:17 -0800","From":"Alexei Starovoitov <alexei.starovoitov@gmail.com>","To":"Jiri Olsa <jolsa@kernel.org>","Cc":"Alexei Starovoitov <ast@kernel.org>, Daniel Borkmann\n\t<daniel@iogearbox.net>, netdev@vger.kernel.org, bpf@vger.kernel.org,\n\tAndrii Nakryiko <andriin@fb.com>, Yonghong Song <yhs@fb.com>,\n\tSong Liu <songliubraving@fb.com>, Martin KaFai Lau <kafai@fb.com>,\n\tJakub Kicinski <kuba@kernel.org>, David Miller <davem@redhat.com>,\n\t=?utf-8?b?QmrDtnJuIFTDtnBlbA==?= <bjorn.topel@intel.com>,\n\tJohn Fastabend <john.fastabend@gmail.com>, Jesper Dangaard Brouer\n\t<hawk@kernel.org>,         Arnaldo Carvalho de Melo <acme@redhat.com>","Subject":"Re: [PATCH 15/18] bpf: Sort bpf kallsyms symbols","Message-ID":"<20200218231816.own6y5ijjx25kti6@ast-mbp>","References":"<20200216193005.144157-1-jolsa@kernel.org>\n\t<20200216193005.144157-16-jolsa@kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20200216193005.144157-16-jolsa@kernel.org>","User-Agent":"NeoMutt/20180223","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}},{"id":2365398,"web_url":"http://patchwork.ozlabs.org/comment/2365398/","msgid":"<20200219083034.GB439238@krava>","list_archive_url":null,"date":"2020-02-19T08:30:34","subject":"Re: [PATCH 15/18] bpf: Sort bpf kallsyms symbols","submitter":{"id":2492,"url":"http://patchwork.ozlabs.org/api/people/2492/","name":"Jiri Olsa","email":"jolsa@redhat.com"},"content":"On Tue, Feb 18, 2020 at 03:18:17PM -0800, Alexei Starovoitov wrote:\n> On Sun, Feb 16, 2020 at 08:30:02PM +0100, Jiri Olsa wrote:\n> > Currently we don't sort bpf_kallsyms and display symbols\n> > in proc/kallsyms as they come in via __bpf_ksym_add.\n> > \n> > Using the latch tree to get the next bpf_ksym object\n> > and insert the new symbol ahead of it.\n> > \n> > Signed-off-by: Jiri Olsa <jolsa@kernel.org>\n> > ---\n> >  kernel/bpf/core.c | 21 ++++++++++++++++++++-\n> >  1 file changed, 20 insertions(+), 1 deletion(-)\n> > \n> > diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c\n> > index 2f857bbfe05c..fa814179730c 100644\n> > --- a/kernel/bpf/core.c\n> > +++ b/kernel/bpf/core.c\n> > @@ -651,9 +651,28 @@ static struct latch_tree_root bpf_progs_tree __cacheline_aligned;\n> >  \n> >  static void __bpf_ksym_add(struct bpf_ksym *ksym)\n> >  {\n> > +\tstruct list_head *head = &bpf_kallsyms;\n> > +\tstruct rb_node *next;\n> > +\n> >  \tWARN_ON_ONCE(!list_empty(&ksym->lnode));\n> > -\tlist_add_tail_rcu(&ksym->lnode, &bpf_kallsyms);\n> >  \tlatch_tree_insert(&ksym->tnode, &bpf_ksym_tree, &bpf_ksym_tree_ops);\n> > +\n> > +\t/*\n> > +\t * Add ksym into bpf_kallsyms in ordered position,\n> > +\t * which is prepared for us by latch tree addition.\n> > +\t *\n> > +\t * Find out the next symbol and insert ksym right\n> > +\t * ahead of it. If ksym is the last one, just tail\n> > +\t * add to the bpf_kallsyms.\n> > +\t */\n> > +\tnext = rb_next(&ksym->tnode.node[0]);\n> > +\tif (next) {\n> > +\t\tstruct bpf_ksym *ptr;\n> > +\n> > +\t\tptr = container_of(next, struct bpf_ksym, tnode.node[0]);\n> > +\t\thead = &ptr->lnode;\n> > +\t}\n> > +\tlist_add_tail_rcu(&ksym->lnode, head);\n> \n> what is the motivation for sorting? do you want perf and other user space\n> to depend on it? Or purely aesthetics?\n\ninitially I thought perf depends on it, but it does its own sorting\n\nbut it turned out to be really easy and fast to sort bpf symbols\nat the end, so I included it, because core symbols in kallsyms\nare also sorted, I should have mentioned this in changelog\n\njirka","headers":{"Return-Path":"<bpf-owner@vger.kernel.org>","X-Original-To":"incoming-bpf@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming-bpf@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org; spf=none (no SPF record)\n\tsmtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67;\n\thelo=vger.kernel.org; envelope-from=bpf-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org;\n\tdmarc=pass (p=none dis=none) header.from=redhat.com","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.a=rsa-sha256 header.s=mimecast20190719\n\theader.b=gcsnD+1G; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 48MrX84jR0z9sRN\n\tfor <incoming-bpf@patchwork.ozlabs.org>;\n\tWed, 19 Feb 2020 19:30:48 +1100 (AEDT)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1726598AbgBSIas (ORCPT\n\t<rfc822;incoming-bpf@patchwork.ozlabs.org>);\n\tWed, 19 Feb 2020 03:30:48 -0500","from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:50358 \"EHLO\n\tus-smtp-1.mimecast.com\" rhost-flags-OK-OK-OK-FAIL) by\n\tvger.kernel.org\n\twith ESMTP id S1726512AbgBSIas (ORCPT <rfc822; bpf@vger.kernel.org>); \n\tWed, 19 Feb 2020 03:30:48 -0500","from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com\n\t[209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id\n\tus-mta-71-CRjTsfbfNXuyUXOlpi-nCg-1; Wed, 19 Feb 2020 03:30:42 -0500","from smtp.corp.redhat.com\n\t(int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mimecast-mx01.redhat.com (Postfix) with ESMTPS id 869DC1005510;\n\tWed, 19 Feb 2020 08:30:40 +0000 (UTC)","from krava (unknown [10.43.17.9])\n\tby smtp.corp.redhat.com (Postfix) with ESMTPS id 4FBAC62660;\n\tWed, 19 Feb 2020 08:30:37 +0000 (UTC)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1582101046;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=foOFcmIVQGxB8iP7ecwwHhtaDTShseLOhJBfsRwfGaI=;\n\tb=gcsnD+1G0Qu/E/8b+l3zn1aIVJzTWnfg7HmFGHCFLmDUbMLFcMDREZIyknK8P+r9vtazG1\n\toV9FqNgGpgV/sOzTtuan3ZjW2b+5zPW6IOGVBiQ+rz7Y+a69rsVE6V/s45HV/IbgS71Cie\n\trOlXapMMHw25LXGqnEEpdaYojfOI/Qw=","X-MC-Unique":"CRjTsfbfNXuyUXOlpi-nCg-1","Date":"Wed, 19 Feb 2020 09:30:34 +0100","From":"Jiri Olsa <jolsa@redhat.com>","To":"Alexei Starovoitov <alexei.starovoitov@gmail.com>","Cc":"Jiri Olsa <jolsa@kernel.org>, Alexei Starovoitov <ast@kernel.org>,\n\tDaniel Borkmann <daniel@iogearbox.net>, netdev@vger.kernel.org,\n\tbpf@vger.kernel.org, Andrii Nakryiko <andriin@fb.com>, Yonghong\n\tSong <yhs@fb.com>, Song Liu <songliubraving@fb.com>, Martin KaFai Lau\n\t<kafai@fb.com>,         Jakub Kicinski <kuba@kernel.org>,\n\tDavid Miller <davem@redhat.com>, =?iso-8859-1?q?Bj=F6rn_T=F6pel?=\n\t<bjorn.topel@intel.com>, John Fastabend <john.fastabend@gmail.com>,\n\tJesper Dangaard Brouer <hawk@kernel.org>, \n\tArnaldo Carvalho de Melo <acme@redhat.com>","Subject":"Re: [PATCH 15/18] bpf: Sort bpf kallsyms symbols","Message-ID":"<20200219083034.GB439238@krava>","References":"<20200216193005.144157-1-jolsa@kernel.org>\n\t<20200216193005.144157-16-jolsa@kernel.org>\n\t<20200218231816.own6y5ijjx25kti6@ast-mbp>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20200218231816.own6y5ijjx25kti6@ast-mbp>","X-Scanned-By":"MIMEDefang 2.79 on 10.5.11.15","Sender":"bpf-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<bpf.vger.kernel.org>","X-Mailing-List":"bpf@vger.kernel.org"}}]