From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 24BE0A034F; Tue, 8 Jun 2021 09:46:03 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 89707410E7; Tue, 8 Jun 2021 09:46:02 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mails.dpdk.org (Postfix) with ESMTP id CD5014013F for ; Tue, 8 Jun 2021 09:46:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1623138360; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=iU0g73CxV7qhoETUt+QwnP7hVP6hjzSc5iBd5Mds1Ls=; b=KLx8HFmyjr86P5tOUBQovsgflg/Je1kqulMy8LjtY+tmOTAJ14IpzaHy9LfIKmNJmbFzJX JDppu26W+sa8MlSsYAXBJctgNjyoyFXLZ04DX57Xi3TXVJcpn58rZbMC2UB2q+j/JC6W8x DK2K4Tb9XRaxTdvKJVpheVQB2Fpy/mE= Received: from mail-ua1-f71.google.com (mail-ua1-f71.google.com [209.85.222.71]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-590--z9ZnQfKMpqhAEeSzfXRug-1; Tue, 08 Jun 2021 03:45:56 -0400 X-MC-Unique: -z9ZnQfKMpqhAEeSzfXRug-1 Received: by mail-ua1-f71.google.com with SMTP id v20-20020ab076940000b029020b0b4ada34so6855773uaq.4 for ; Tue, 08 Jun 2021 00:45:56 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=iU0g73CxV7qhoETUt+QwnP7hVP6hjzSc5iBd5Mds1Ls=; b=DiuxADponaH7c3XdyPrvuhu1ZsgjQqClM4lV21lCJpwoe/TLZbXkM9hBnvq7t7E9rp qbstAl6/e9XOcNhoL0Xz1ZqAgJwiY9ujvu+as7qkf+pZE3nsrRA/dDvuMrxGLNkv000n Je4SkUaSLiOzNGbvnwVcLKlfaumhOGL1qbDnCMdmnr+ZeJg6LbEOrCjLeQcWrVTpIS4a hyAO+deRnMp1t4bhxQvcf7wNHG61K3y5692qQXz1xQOZFt0Ybg2g2hexut0t6SCbe5jc o6S5SPLoJSNyRiRRNJ69QMx0nBFzxLWbxu0JpWAfl0d0/vMm1+jCCWmrBWiTm4m9Scw2 klgA== X-Gm-Message-State: AOAM5333rbe+d1mjQIVY3zZQaj03JTkrm4aVgoUN2wjsQhBVbukIo+V9 NRDEr4hvrrAseGZwDGnR+6tcITMhIOMvffQjoX/HcOJ8jDmTq6Bs6iYdp0j0oVlDTjFBLa1vMQ2 p3IPau88MxeOQAbpGRRg= X-Received: by 2002:a67:f952:: with SMTP id u18mr3651727vsq.5.1623138356512; Tue, 08 Jun 2021 00:45:56 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwWWyARw5EQDW5CeCCpLJWmGI8ckb9lqnCvsnygdKgRzVkZUP7OrBfSjkn5h3HSKOxjguTKH44BTfcjHe4Be1U= X-Received: by 2002:a67:f952:: with SMTP id u18mr3651719vsq.5.1623138356316; Tue, 08 Jun 2021 00:45:56 -0700 (PDT) MIME-Version: 1.0 References: <1622849908-5710-1-git-send-email-navasile@linux.microsoft.com> <1622850274-6946-1-git-send-email-navasile@linux.microsoft.com> <1622850274-6946-11-git-send-email-navasile@linux.microsoft.com> <20210608055033.GA20476@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> In-Reply-To: <20210608055033.GA20476@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> From: David Marchand Date: Tue, 8 Jun 2021 09:45:44 +0200 Message-ID: To: Narcisa Ana Maria Vasile Cc: dev , Thomas Monjalon , Dmitry Kozlyuk , Khoa To , navasile@microsoft.com, "Dmitry Malloy (MESHCHANINOV)" , roretzla@microsoft.com, Tal Shnaiderman , Omar Cardona , Bruce Richardson , Pallavi Kadam Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=dmarchan@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="UTF-8" Subject: Re: [dpdk-dev] [PATCH v9 10/10] Enable the new EAL thread API X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Tue, Jun 8, 2021 at 7:50 AM Narcisa Ana Maria Vasile wrote: > > On Fri, Jun 04, 2021 at 04:44:34PM -0700, Narcisa Ana Maria Vasile wrote: > > From: Narcisa Vasile > > > > Rename pthread_* occurrences with the new rte_thread_* API. > > Enable the new API in the build system. > > > > Signed-off-by: Narcisa Vasile > > --- > > I'll send v10. > Can someone please help with an example on how to check for ABI breaks? Thank you! > > I've run: > DPDK_ABI_REF_VERSION=v21.05 DPDK_ABI_REF_DIR=~/ref ./devtools/test-meson-builds.sh > which doesn't give any warnings about the ABI break. This should work the way you tried if you have working toolchains and libabigail installed. Something is off in your env. Side note: ovsrobot is out those days (we have some trouble in one of RH labs and it happens ovsrobot is hosted there), but you could try with a github repo of yours + GHA, and the ABI failure should be caught too. I just tried on my rhel7 (gcc 4.8.5 + libabigail 1.8.2) with your series applied. $ DPDK_ABI_REF_VERSION=v21.05 DPDK_ABI_REF_DIR=~/git/pub/dpdk.org/reference ./devtools/test-meson-builds.sh ... Error: ABI issue reported for 'abidiff --suppr /home/dmarchan/git/pub/dpdk.org/devtools/../devtools/libabigail.abignore --no-added-syms --headers-dir1 /home/dmarchan/git/pub/dpdk.org/reference/v21.05/build-gcc-shared/usr/local/include --headers-dir2 /home/dmarchan/git/pub/dpdk.org/build-gcc-shared/install/usr/local/include /home/dmarchan/git/pub/dpdk.org/reference/v21.05/build-gcc-shared/dump/librte_eal.dump /home/dmarchan/git/pub/dpdk.org/build-gcc-shared/install/dump/librte_eal.dump' ABIDIFF_ABI_CHANGE, this change requires a review (abidiff flagged this as a potential issue). $ abidiff --suppr /home/dmarchan/git/pub/dpdk.org/devtools/../devtools/libabigail.abignore --no-added-syms --headers-dir1 /home/dmarchan/git/pub/dpdk.org/reference/v21.05/build-gcc-shared/usr/local/include --headers-dir2 /home/dmarchan/git/pub/dpdk.org/build-gcc-shared/install/usr/local/include /home/dmarchan/git/pub/dpdk.org/reference/v21.05/build-gcc-shared/dump/librte_eal.dump /home/dmarchan/git/pub/dpdk.org/build-gcc-shared/install/dump/librte_eal.dump Functions changes summary: 0 Removed, 2 Changed (1 filtered out), 0 Added (20 filtered out) functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 2 functions with some indirect sub-type change: [C] 'function int rte_ctrl_thread_create(pthread_t*, const char*, const pthread_attr_t*, void* (void*)*, void*)' at rte_lcore.h:443:1 has some indirect sub-type changes: parameter 1 of type 'pthread_t*' changed: in pointed to type 'typedef pthread_t' at rte_thread.h:42:1: typedef name changed from pthread_t to rte_thread_t at rte_thread.h:42:1 underlying type 'unsigned long int' changed: entity changed from 'unsigned long int' to 'struct rte_thread_tag' at rte_thread.h:40:1 type size hasn't changed parameter 3 of type 'const pthread_attr_t*' changed: in pointed to type 'const pthread_attr_t': 'const pthread_attr_t' changed to 'const rte_thread_attr_t' [C] 'function int rte_thread_setname(pthread_t, const char*)' at rte_lcore.h:377:1 has some indirect sub-type changes: parameter 1 of type 'typedef pthread_t' changed: typedef name changed from pthread_t to rte_thread_t at rte_thread.h:42:1 underlying type 'unsigned long int' changed: entity changed from 'unsigned long int' to 'struct rte_thread_tag' at rte_thread.h:40:1 type size hasn't changed Can you check that in your env build-gcc-shared/ and the build directory for references are configured with debug symbols? You should see: $ meson configure build-gcc-shared | awk '$1=="buildtype" {print $2}' debugoptimized $ meson configure reference/v21.05/build | awk '$1=="buildtype" {print $2}' debugoptimized > > I've cloned the dpdk repo in "~/ref" and checkout v21.05 tag. > "~/dpdk" is on a local branch that contains my changes: > > "./devtools/check-abi.sh ~/ref ~/dpdk" - didn't work. > > I've then used gen-abi.sh (with a small change to skip the *.symbols, > since abidw can't handle them) to generate the *.dump files. Reruning check-abi.sh gen-abi.sh is an internal script that works for an installed dpdk, not a build directory. $ ./devtools/gen-abi.sh Usage: ./devtools/gen-abi.sh installdir > worked this time, but didn't show the ABI break. This is the entire output: > > ------ > WARNING: could not identify an include directory for /home/administrator/ref, expect false positives... > WARNING: could not identify an include directory for /home/administrator/dpdk, expect false positives... check-abi.sh tries to find an include/ directory to filter changes on private structures. But there are multiple include/ dirs in a build directory, so the script gives up on trying to filter and logs a warning. This is not clearly written but, like gen-abi.sh, check-abi.sh works on an installed directory. > Functions changes summary: 0 Removed, 0 Changed, 0 Added function > Variables changes summary: 0 Removed, 0 Changed, 0 Added variable > Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referenced by debug info > ------ > > I've also tried to compare each file: > abidiff --suppr ./devtools/libabigail.abignore --no-added-syms ~/ref/dump/librte_eal.dump ~/dpdk/dump/librte_eal.dump > Without debug info, libabigail won't catch/report much but symbol removals, or basic changes in function signatures. -- David Marchand