oxidecomputer / oxidecomputer/dendrite

tofino-related PCI error

Open
#173 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
20
Forks
3
Avg merge
3d 11h
Merged PRs (30d)
4

Description

I found dpd hung on sled 16 on dublin. It seems to have been derailed by a PCI error during startup.

At the system level we see:

BRM23230018 # fmdump -v
TIME                 UUID                                 SUNW-MSG-ID EVENT
Dec 28 00:01:37.7986 1a7d366c-fe31-48df-b247-21cc33c4ec1c SUNOS-8000-J0 Diagnosed
   50%  defect.sunos.eft.unexpected_telemetry

        Problem in: dev:////pci@ab,0/pci1de,fff9@3,2
           Affects: -
               FRU: -
          Location: -

   50%  fault.sunos.eft.unexpected_telemetry

        Problem in: dev:////pci@ab,0/pci1de,fff9@3,2
           Affects: -
               FRU: -
          Location: -
...

At the same time in the dendrite log, we see:

00:01:37.560Z DEBG dpd: Set 4ns pulse config to 0xc30c30c
    module = Lld
    unit = bf-sde
00:01:37.560Z DEBG dpd: Set global ts inc config to 0xc30c30c
    module = Lld
    unit = bf-sde
00:01:37.560Z DEBG dpd: Set global PSC inc config to 0xaab
    module = Lld
    unit = bf-sde
00:01:39.925Z INFO dpd: bf_device_add dev id 0, is_sw_model 0
    module = Dvm
    unit = bf-sde

The 2 second gap between the last 2 messages is unusual and corresponds with the timing of the PCI error. Interestingly, the first time dendrite reoprts any PCI-related issues is nearly a minute later:

00:02:37.118Z INFO dpd: Entering pipe_mgr_config_complete, dev 0
    module = Pipe
    unit = bf-sde
00:02:37.181Z DEBG dpd: LLD: FAULT: DMA error: dev_id=0, d0=00039a83cc00014f, d1=0000010000000016
    module = Lld
    unit = bf-sde
00:02:37.181Z DEBG dpd: FAULT: 3 : 0000000000000000 : 00039a83cc00014f : 0000010000000016
    module = Lld
    unit = bf-sde

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the dpd startup messages around bf_device_add and the preceding Lld configuration, then compare their timing with the fmdump output and later DMA fault in the dendrite log. Reproduce or trace the PCI error on the affected sled; the issue is done when its cause and relationship to the startup hang are identified and a verified fix or clear diagnosis is recorded.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
embedded-iot, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.