On Sun, Apr 12, 2020 at 5:05 AM Tonghao Zhang <[email protected]> wrote:
> On Sun, Apr 12, 2020 at 7:57 AM Ravi Kerur <[email protected]> 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: > > <http://www.gnu.org/software/gdb/bugs/>. > > Find the GDB manual and other documentation resources online at: > > <http://www.gnu.org/software/gdb/documentation/>. > > 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? 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 <main>, > > argc=14, argv=0x7fff61ae5088, init=0x560fc6e12570 <__libc_csu_init>, > > fini=<optimized out>, rtld_fini=<optimized out>, > > 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 > > [email protected] > > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > > > > -- > Best regards, Tonghao > _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
