From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id C6B23A00BE; Mon, 27 Apr 2020 13:07:16 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 9E37E1D14C; Mon, 27 Apr 2020 13:07:16 +0200 (CEST) Received: from mail-ej1-f65.google.com (mail-ej1-f65.google.com [209.85.218.65]) by dpdk.org (Postfix) with ESMTP id DE31C1C214 for ; Mon, 27 Apr 2020 13:07:15 +0200 (CEST) Received: by mail-ej1-f65.google.com with SMTP id nv1so13782171ejb.0 for ; Mon, 27 Apr 2020 04:07:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=CdorA9frTX0Co5V1VFHW6sGzFhgHTngSejKFPMq8g7E=; b=DAuQOrrG1AbeJ3RFzjM6cD9uYag2Xz6ZPBXPRI+koY7IdyHH8dhjgdw+YU/Rgrmh8O e13Z5ny/AFOVfkOL0A6Sob+EUrXgqVAzq6yB/jKIrZ4alwVaWad539FFpy/9BhzZYa5S 04+EcvvdmGJ8NY1oZOvAxYCsjjzHZC+xGIyFmKnE76K8CwqAXT9jU883YFde3/y0a2dW NQYqJRAZAs60FNHpbg34IFG87c68kVZyccg4k/3Ov/DRsCMUY9D76tjzxxAfgA/WY1vu RoPMudSIKUdPoVHb3LyATOS2kuKGfi64E/tKYuENH3MA1eAe+1Cet+PgueEpCUo2wEUH Jwng== 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=CdorA9frTX0Co5V1VFHW6sGzFhgHTngSejKFPMq8g7E=; b=L/eCgejcWHzd4Cz2Z18JCVZVU/iBZDmjaGyEDpyAZSFErRAjg71XDQEdSe/VmYopTw E8esa6x05FGSd6Va4opCd3+gMK7Yd+kleJYcG6V4usSBRN1Z4Q5g+BBOgIF3hfzKUAcF jACvLHhtF47NfG8pZZTNZK7e7yjBbzQlE3UqAIT/orOPVV0gAqr/cTgFNdOe7/Jh8w9e /AUocUPC7aTAhBZuFb9CS094TEgPmjMfIfCYO4sJ9nWADI0BlQQ1IL5UYUZMsm4gyv75 0T+qnSbtcKRCf2CeLzTJOqOKCBBHTt3gM7tv1pw1HzmRpwZIZba/12n3jrjOPqteeLVM 6mPQ== X-Gm-Message-State: AGi0PuagBAp/57MW8Z3cuhok7r0woX/hRMAI0PjqfF2Ocn7cH7m9tLLj c4w7/rvnaECAKH1Mn41OOgbZvZlL4lTwjS2ESloaCAobjKM= X-Google-Smtp-Source: APiQypKA50zvVY2xVOAdJup7+XRaaqKdrQQNjhtIrOAUHo0CmRJNCm64t/tPUrY2dGiWapnCi1gZE7eEdlT8Uc4X/jA= X-Received: by 2002:a17:906:4dc8:: with SMTP id f8mr19286402ejw.23.1587985635502; Mon, 27 Apr 2020 04:07:15 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Tonghao Zhang Date: Mon, 27 Apr 2020 19:06:38 +0800 Message-ID: To: Ravi Kerur Cc: Ilya Maximets , dpdk-dev Content-Type: text/plain; charset="UTF-8" Subject: Re: [dpdk-dev] [ovs-dev] OvS DPDK crash when HPET timer enabled X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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 Wed, Apr 15, 2020 at 5:27 AM Ravi Kerur wrote: > > Hi Tonghao, Thanks, your patch works fine with HPET initialization. I will look into DPDK discussion which got started with your patch. [update] patch applied: http://git.dpdk.org/next/dpdk-next-net/commit/?id=9b41c276fd35fe3c0ed3fb0d9cf98a83a58b31b2 > Thanks, > Ravi > > > On Mon, Apr 13, 2020 at 5:33 PM Tonghao Zhang wrote: >> >> On Tue, Apr 14, 2020 at 7:20 AM Ilya Maximets wrote: >> > >> > On 4/13/20 5:27 PM, Ravi Kerur wrote: >> > > On Sun, Apr 12, 2020 at 5:05 AM Tonghao Zhang >> > > wrote: >> > > >> > >> On Sun, Apr 12, 2020 at 7:57 AM Ravi Kerur wrote: >> > >>> >> > >>> Hello OvS DPDK team, >> > >>> >> > >>> I am using OvS 2.13.90 and DPDK 19.11 and wanted to use HPET timer >> > >> instead >> > >>> of invariant TSC. >> > >>> >> > >>> Enabled CONFIG_RTE_LIBEAL_USE_HPET=y in DPDK >> > >>> >> > >>> Kernel has >> > >>> CONFIG_HPET_TIMER=y >> > >>> CONFIG_HPET_EMULATE_RTC=y >> > >>> CONFIG_HPET=y >> > >>> CONFIG_HPET_MMAP=y >> > >>> CONFIG_HPET_MMAP_DEFAULT=y >> > >>> >> > >>> cat /sys/devices/system/clocksource/clocksource0/current_clocksource >> > >>> tsc >> > >>> # cat /sys/devices/system/clocksource/clocksource0/available_clocksource >> > >>> tsc hpet acpi_pm >> > >>> >> > >>> OvS crashes at >> > >>> >> > >>> gdb ovsdb-server /core >> > >>> GNU gdb (Ubuntu 8.1-0ubuntu3) 8.1.0.20180409-git >> > >>> Copyright (C) 2018 Free Software Foundation, Inc. >> > >>> License GPLv3+: GNU GPL version 3 or later < >> > >> http://gnu.org/licenses/gpl.html >> > >>>> >> > >>> This is free software: you are free to change and redistribute it. >> > >>> There is NO WARRANTY, to the extent permitted by law. Type "show >> > >> copying" >> > >>> and "show warranty" for details. >> > >>> This GDB was configured as "x86_64-linux-gnu". >> > >>> Type "show configuration" for configuration details. >> > >>> For bug reporting instructions, please see: >> > >>> . >> > >>> Find the GDB manual and other documentation resources online at: >> > >>> . >> > >>> For help, type "help". >> > >>> Type "apropos word" to search for commands related to "word"... >> > >>> Reading symbols from ovsdb-server...done. >> > >>> [New LWP 9729] >> > >>> [Thread debugging using libthread_db enabled] >> > >>> Using host libthread_db library >> > >> "/lib/x86_64-linux-gnu/libthread_db.so.1". >> > >>> Core was generated by `ovsdb-server /usr/local/etc/openvswitch/conf.db >> > >>> -vconsole:emer -vsyslog:err -vf'. >> > >>> Program terminated with signal SIGSEGV, Segmentation fault. >> > >>> #0 0x0000560fc6db8ac1 in rte_get_hpet_cycles () >> > >> Hi, >> > >> This is a bug on dpdk, NOT ovs. >> > >> I guess that your kernel does't support getentropy which supported in >> > >> 3.17 and your cpu don't support rdseed. >> > >> and that cause a dpdk bug. To workaround, you change: Not tested, hope >> > >> it's useful for you >> > >> >> > >> >> > > You are correct CPU doesn't support RDSEED instruction but RDRAND is >> > > supported. >> > > >> > > It's a RT kernel based on 4.19 + RT patches. >> > > >> > > Setting CONFIG_RTE_LIBEAL_USE_HPET=n which is the default,'Invariant TSC' >> > > will be used. However, I want to use HPET so should I check with DPDK dev? >> > >> > Yes. This is a pure DPDK bug. There is no way to fix it from the OVS side. >> > Adding dpdk-dev in CC, moving ovs-dev to BCC to avoid cross posting. >> Hi Ilya >> I sent a patch to dpdk, but not applied. If applied, I feedback to this thread. >> > Actually, looking at the code in DPDK, it's really old. I'm wondering if it >> > ever worked? Looks like no-one ever tested this configuration. >> > >> > Best regards, Ilya Maximets. >> > >> > > >> > > Thanks, >> > > Ravi >> > > >> > > >> > > >> > >> diff --git a/lib/librte_eal/linux/eal_timer.c >> > >> b/lib/librte_eal/linux/eal_timer.c >> > >> index a904a8297cd2..4067e46da534 100644 >> > >> --- a/lib/librte_eal/linux/eal_timer.c >> > >> +++ b/lib/librte_eal/linux/eal_timer.c >> > >> @@ -26,7 +26,7 @@ >> > >> #include "eal_private.h" >> > >> #include "eal_internal_cfg.h" >> > >> >> > >> -enum timer_source eal_timer_source = EAL_TIMER_HPET; >> > >> +enum timer_source eal_timer_source = EAL_TIMER_TSC; >> > >> >> > >> #ifdef RTE_LIBEAL_USE_HPET >> > >> >> > >> >> > >>> (gdb) bt >> > >>> #0 0x0000560fc6db8ac1 in rte_get_hpet_cycles () >> > >>> #1 0x0000560fc6c482b0 in rte_rand_init () >> > >>> #2 0x0000560fc6e125bd in __libc_csu_init () >> > >>> #3 0x00007f5e1f930b28 in __libc_start_main (main=0x560fc6c45940
, >> > >>> argc=14, argv=0x7fff61ae5088, init=0x560fc6e12570 <__libc_csu_init>, >> > >>> fini=, rtld_fini=, >> > >>> stack_end=0x7fff61ae5078) at ../csu/libc-start.c:266 >> > >>> #4 0x0000560fc6c485da in _start () >> > >>> (gdb) quit >> > >>> >> > >>> RTE_INIT(rte_rand_init) >> > >>> { >> > >>> ... >> > >>> } >> > >>> >> > >>> rte_rand_init is defined as initializer, following diffs won't help, >> > >>> >> > >>> diff --git a/lib/dpdk.c b/lib/dpdk.c >> > >>> index 31450d470..f3d3989c8 100644 >> > >>> --- a/lib/dpdk.c >> > >>> +++ b/lib/dpdk.c >> > >>> @@ -405,6 +405,12 @@ dpdk_init__(const struct smap *ovs_other_config) >> > >>> if (result < 0) { >> > >>> VLOG_EMER("Unable to initialize DPDK: %s", >> > >>> ovs_strerror(rte_errno)); >> > >>> return false; >> > >>> + } else { >> > >>> +#ifdef RTE_LIBEAL_USE_HPET >> > >>> + if (rte_eal_hpet_init(1) < 0) { >> > >>> + VLOG_ERR("HPET is not enabled, using TSC as default >> > >> timer\n"); >> > >>> + } >> > >>> +#endif >> > >>> } >> > >>> >> > >>> if (VLOG_IS_DBG_ENABLED()) { >> > >>> >> > >>> Kindly let me know your inputs on how to overcome this issue. >> > >>> >> > >>> Thanks, >> > >>> Ravi >> > >>> _______________________________________________ >> > >>> dev mailing list >> > >>> dev@openvswitch.org >> > >>> https://mail.openvswitch.org/mailman/listinfo/ovs-dev >> > >> >> > >> >> > >> >> > >> -- >> > >> Best regards, Tonghao >> > >> >> > > _______________________________________________ >> > > dev mailing list >> > > dev@openvswitch.org >> > > https://mail.openvswitch.org/mailman/listinfo/ovs-dev >> > > >> > >> >> >> -- >> Best regards, Tonghao -- Best regards, Tonghao