DPDK usage discussions
 help / color / mirror / Atom feed
* Request to map PCI device in a secondary that uses the --block for that device
@ 2024-05-22  6:46 Antonio Di Bacco
  2024-05-22  7:21 ` Dmitry Kozlyuk
  0 siblings, 1 reply; 5+ messages in thread
From: Antonio Di Bacco @ 2024-05-22  6:46 UTC (permalink / raw)
  To: users

Is it correct that a primary requests a secondary to map a device that
the secondary explicitly blocks with the --block arg ?

IN my case this requests of mapping creates a crash in the secondary.

Using DPDK 21.11

Best regards,
Antonio.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Request to map PCI device in a secondary that uses the --block for that device
  2024-05-22  6:46 Request to map PCI device in a secondary that uses the --block for that device Antonio Di Bacco
@ 2024-05-22  7:21 ` Dmitry Kozlyuk
  2024-05-22  8:06   ` Antonio Di Bacco
  0 siblings, 1 reply; 5+ messages in thread
From: Dmitry Kozlyuk @ 2024-05-22  7:21 UTC (permalink / raw)
  To: Antonio Di Bacco; +Cc: users

2024-05-22 08:46 (UTC+0200), Antonio Di Bacco:
> Is it correct that a primary requests a secondary to map a device that
> the secondary explicitly blocks with the --block arg ?
> 
> IN my case this requests of mapping creates a crash in the secondary.
> 
> Using DPDK 21.11
> 
> Best regards,
> Antonio.

Hi Antonio,

"Secondary processes which requires access to physical devices in Primary
process, must be passed with the same allow and block options."

https://doc.dpdk.org/guides/prog_guide/multi_proc_support.html

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Request to map PCI device in a secondary that uses the --block for that device
  2024-05-22  7:21 ` Dmitry Kozlyuk
@ 2024-05-22  8:06   ` Antonio Di Bacco
  2024-05-22 17:03     ` Antonio Di Bacco
  0 siblings, 1 reply; 5+ messages in thread
From: Antonio Di Bacco @ 2024-05-22  8:06 UTC (permalink / raw)
  To: Dmitry Kozlyuk; +Cc: users

Thank you.
In my case,  I have the same block/allow but the primary does an
explicit probe of a DMA engine on the processor, the secondary is
notified and it crashes.  It should not crash I suppose.
The same software is running on several machines (100) but the problem
is sporadic just on two of them.

Very strange.

Thx,
Antonio.

On Wed, May 22, 2024 at 9:21 AM Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> wrote:
>
> 2024-05-22 08:46 (UTC+0200), Antonio Di Bacco:
> > Is it correct that a primary requests a secondary to map a device that
> > the secondary explicitly blocks with the --block arg ?
> >
> > IN my case this requests of mapping creates a crash in the secondary.
> >
> > Using DPDK 21.11
> >
> > Best regards,
> > Antonio.
>
> Hi Antonio,
>
> "Secondary processes which requires access to physical devices in Primary
> process, must be passed with the same allow and block options."
>
> https://doc.dpdk.org/guides/prog_guide/multi_proc_support.html

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Request to map PCI device in a secondary that uses the --block for that device
  2024-05-22  8:06   ` Antonio Di Bacco
@ 2024-05-22 17:03     ` Antonio Di Bacco
  2024-05-22 17:09       ` Antonio Di Bacco
  0 siblings, 1 reply; 5+ messages in thread
From: Antonio Di Bacco @ 2024-05-22 17:03 UTC (permalink / raw)
  To: Dmitry Kozlyuk; +Cc: users

I found the exact line where I get the crash (the line saying TAILQ_FOREACH)

    /* if we're in a secondary process, just find our tailq entry */
    TAILQ_FOREACH(vfio_res, vfio_res_list, next) {
        if (rte_pci_addr_cmp(&vfio_res->pci_addr,
                         &dev->addr))
            continue;
        break;
    }
    /* if we haven't found our tailq entry, something's wrong */
    if (vfio_res == NULL) {
        RTE_LOG(ERR, EAL, "%s cannot find TAILQ entry for PCI device!\n",
                pci_addr);
        return -1;
    }

On Wed, May 22, 2024 at 10:06 AM Antonio Di Bacco
<a.dibacco.ks@gmail.com> wrote:
>
> Thank you.
> In my case,  I have the same block/allow but the primary does an
> explicit probe of a DMA engine on the processor, the secondary is
> notified and it crashes.  It should not crash I suppose.
> The same software is running on several machines (100) but the problem
> is sporadic just on two of them.
>
> Very strange.
>
> Thx,
> Antonio.
>
> On Wed, May 22, 2024 at 9:21 AM Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> wrote:
> >
> > 2024-05-22 08:46 (UTC+0200), Antonio Di Bacco:
> > > Is it correct that a primary requests a secondary to map a device that
> > > the secondary explicitly blocks with the --block arg ?
> > >
> > > IN my case this requests of mapping creates a crash in the secondary.
> > >
> > > Using DPDK 21.11
> > >
> > > Best regards,
> > > Antonio.
> >
> > Hi Antonio,
> >
> > "Secondary processes which requires access to physical devices in Primary
> > process, must be passed with the same allow and block options."
> >
> > https://doc.dpdk.org/guides/prog_guide/multi_proc_support.html

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Request to map PCI device in a secondary that uses the --block for that device
  2024-05-22 17:03     ` Antonio Di Bacco
@ 2024-05-22 17:09       ` Antonio Di Bacco
  0 siblings, 0 replies; 5+ messages in thread
From: Antonio Di Bacco @ 2024-05-22 17:09 UTC (permalink / raw)
  To: Dmitry Kozlyuk; +Cc: users

For completeness (vfio_res_list is NULL):

(gdb) bt
#0  0x00007f75f074e849 in pci_vfio_map_resource_secondary
(dev=0x7f377c00) at ../drivers/bus/pci/linux/pci_vfio.c:901
#1  0x00007f75f074ea7f in pci_vfio_map_resource (dev=0x7f377c00) at
../drivers/bus/pci/linux/pci_vfio.c:958
#2  0x00007f75f0749eb5 in rte_pci_map_device (dev=0x7f377c00) at
../drivers/bus/pci/linux/pci.c:70
#3  0x00007f75f0747e81 in rte_pci_probe_one_driver (dr=0x7f75f0397100
<ioat_pmd_drv>, dev=0x7f377c00) at ../drivers/bus/pci/pci_common.c:251
#4  0x00007f75f074820a in pci_probe_all_drivers (dev=0x7f377c00) at
../drivers/bus/pci/pci_common.c:353
#5  0x00007f75f07489b8 in pci_plug (dev=0x7f377c10) at
../drivers/bus/pci/pci_common.c:595
#6  0x00007f75f17a0a88 in local_dev_probe (devargs=0x7f75e4000bac
"0000:40:04.3", new_dev=0x7f75ea943868) at
../lib/eal/common/eal_common_dev.c:174
#7  0x00007f75f17c8832 in __handle_primary_request
(param=0x7f75e4000b60) at ../lib/eal/common/hotplug_mp.c:242
#8  0x00007f75f17ce78d in eal_alarm_callback (arg=0x0) at
../lib/eal/linux/eal_alarm.c:110
#9  0x00007f75f17d38c2 in eal_intr_process_interrupts
(events=0x7f75ea943b10, nfds=1) at
../lib/eal/linux/eal_interrupts.c:1025
#10 0x00007f75f17d3ba8 in eal_intr_handle_interrupts (pfd=16,
totalfds=2) at ../lib/eal/linux/eal_interrupts.c:1099
#11 0x00007f75f17d3d8f in eal_intr_thread_main (arg=0x0) at
../lib/eal/linux/eal_interrupts.c:1171
#12 0x00007f75f17b59c6 in ctrl_thread_init (arg=0x7f3640d0) at
../lib/eal/common/eal_common_thread.c:206
#13 0x00007f75f1b5d802 in start_thread () from /lib64/libc.so.6
#14 0x00007f75f1afd450 in clone3 () from /lib64/libc.so.6
(gdb) p vfio_res
$1 = (struct mapped_pci_resource *) 0x0
(gdb) p vfio_res_list
$2 = (struct mapped_pci_res_list *) 0x0
(gdb) p pci_addr
$3 = "0000:40:04.3", '\000' <repeats 4083 times>
(gdb)

On Wed, May 22, 2024 at 7:03 PM Antonio Di Bacco <a.dibacco.ks@gmail.com> wrote:
>
> I found the exact line where I get the crash (the line saying TAILQ_FOREACH)
>
>     /* if we're in a secondary process, just find our tailq entry */
>     TAILQ_FOREACH(vfio_res, vfio_res_list, next) {
>         if (rte_pci_addr_cmp(&vfio_res->pci_addr,
>                          &dev->addr))
>             continue;
>         break;
>     }
>     /* if we haven't found our tailq entry, something's wrong */
>     if (vfio_res == NULL) {
>         RTE_LOG(ERR, EAL, "%s cannot find TAILQ entry for PCI device!\n",
>                 pci_addr);
>         return -1;
>     }
>
> On Wed, May 22, 2024 at 10:06 AM Antonio Di Bacco
> <a.dibacco.ks@gmail.com> wrote:
> >
> > Thank you.
> > In my case,  I have the same block/allow but the primary does an
> > explicit probe of a DMA engine on the processor, the secondary is
> > notified and it crashes.  It should not crash I suppose.
> > The same software is running on several machines (100) but the problem
> > is sporadic just on two of them.
> >
> > Very strange.
> >
> > Thx,
> > Antonio.
> >
> > On Wed, May 22, 2024 at 9:21 AM Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> wrote:
> > >
> > > 2024-05-22 08:46 (UTC+0200), Antonio Di Bacco:
> > > > Is it correct that a primary requests a secondary to map a device that
> > > > the secondary explicitly blocks with the --block arg ?
> > > >
> > > > IN my case this requests of mapping creates a crash in the secondary.
> > > >
> > > > Using DPDK 21.11
> > > >
> > > > Best regards,
> > > > Antonio.
> > >
> > > Hi Antonio,
> > >
> > > "Secondary processes which requires access to physical devices in Primary
> > > process, must be passed with the same allow and block options."
> > >
> > > https://doc.dpdk.org/guides/prog_guide/multi_proc_support.html

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2024-05-22 17:09 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-05-22  6:46 Request to map PCI device in a secondary that uses the --block for that device Antonio Di Bacco
2024-05-22  7:21 ` Dmitry Kozlyuk
2024-05-22  8:06   ` Antonio Di Bacco
2024-05-22 17:03     ` Antonio Di Bacco
2024-05-22 17:09       ` Antonio Di Bacco

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).