[dpdk-dev] [PATCH v5] eal: do not panic on shared memory init

Thomas Monjalon thomas at monjalon.net
Wed Jun 26 17:08:12 CEST 2019


11/06/2019 10:07, David Marchand:
> On Mon, Jun 10, 2019 at 9:09 AM Arnon Warshavsky <arnon at qwilt.com> wrote:
> 
> > This patch changes some void functions to return a value,
> > so that the init sequence may tear down orderly
> > instead of calling panic.
> >
> > Signed-off-by: Arnon Warshavsky <arnon at qwilt.com>
> > ---
> >
> > The calls for launching core messaging threads were left in tact
> > in all 3 eal implementations.
> > This should be addressed in a different patchset.
> > There are still cases where the PMDs or message threads
> > may call panic with no context for the user.
> > For these I will submit a patch suggesting a callback registration,
> > allowing the user to register a context to be called
> > in case of a panic that takes place outside the init sequence.
> 
> Reviewed-by: David Marchand <david.marchand at redhat.com>
> 
> Thanks Arnon!

Applied, thanks

For the record, below is the updated status of
rte_panic/rte_exit calls in libs:

librte_eal:

    int rte_eal_init
        rte_panic
        void eal_thread_init_master
            rte_panic
        -> internal change
    
    int rte_eal_remote_launch
            rte_panic
                -> add a return code
    
    eal_thread_loop
        rte_panic
            -> abort thread?
    eal_intr_thread_main
        rte_panic
            -> abort thread?
    
    int get_hugepage_dir
        rte_panic
            -> no public API
    
    uint64_t rte_get_timer_cycles
    uint64_t rte_get_hpet_hz
    uint64_t rte_get_hpet_cycles
        rte_panic
            -> return 0 / no API change
    
librte_mempool:
    void rte_mempool_*
        RTE_LIBRTE_MEMPOOL_DEBUG
            rte_panic
                -> debug assert

librte_mbuf:
    void rte_mbuf_sanity_check
        rte_panic
            -> debug assert

librte_lpm:
    RTE_LIBRTE_LPM_DEBUG
        VERIFY_DEPTH
            rte_panic

librte_acl:
    RTE_ACL_VERIFY
        rte_panic
            -> debug check? / no API change?

librte_sched:
    void debug_check_queue_slab
        rte_panic
            -> debug assert

void rte_metrics_init
        rte_exit
            -> API breakage

librte_kni:
    struct rte_kni *rte_kni_alloc
        void kni_fifo_init
            rte_panic
                -> no public API change

librte_eventdev:
    struct rte_eventdev *rte_event_pmd_vdev_init
        rte_panic
            -> no API change
    int rte_event_pmd_pci_probe
        rte_panic
            -> no API change





More information about the dev mailing list