gem5-users@gem5.org

The gem5 Users mailing list

View all threads

Assertion `ip || ip6' failed when running Ethernet workload with ARM dist setup SMMU enabled

CR
Chathura Rajapaksha
Fri, Nov 10, 2023 4:46 AM

Hi All,

I am trying to communicate between two systems through ethernet in ARM
dist 2 nodes setup (bigLITTLE).
I want to do this with the SMMU (ARM IOMMU) enabled.
I have connected the ethernet device to the SMMU as discussed here -
https://github.com/orgs/gem5/discussions/239

When I try to transfer data between two systems through ethernet,
following assertion failure randomly happens (it happens sometimes,
not always).
I have added the debug trace leading upto the assertion failure.

7521909181000: system.realview.smmu: [t] requestor resp addr=0x8120e07e size=0x2
7521909181000: system.realview.smmu: [t] responder resp addr=0xffe5807e size=0x2
7521909183000: system.realview.smmu: [t] requestor resp
addr=0x8120e080 size=0x40
7521909183000: system.realview.smmu: [t] responder resp
addr=0xffe58080 size=0x40
7521909184000: system.ethernet.TxDesc: DMA of packet complete
7521909184000: system.ethernet.TxDesc: TxDescriptor data d1:
0xffe5807e d2: 0x200ab100042
7521909184000: system.ethernet.TxDesc: TxDescriptor data d1:
0xffe5807e d2: 0x201ab100042
7521909184000: system.ethernet.TxDesc: Proccesing Non-Ip packet
7521909184000: system.ethernet.TxDesc: Calculating checksums for packet
gem5.opt: src/dev/net/i8254xGBe.cc:1820: void
gem5::IGbE::TxDescCache::pktComplete(): Assertion `ip || ip6' failed.

As shown in the error, assertion is triggered from:
https://github.com/gem5/gem5/blob/e9da8d67bdbb23fbd0578a379f08f42bce50121d/src/dev/net/i8254xGBe.cc#L1820C11-L1820C11

Assert fails in both atomic CPU mode as well as timing mode. I did not
observe this issue when the SMMU is disabled.

I am still new to debugging gem5 at the source code level and I wanted
to check if anyone else has encountered a similar issue.
From what I understood, assert is triggered because pkt pointer does
not belong to a Ipv4 or Ipv6 type.
However, I am not sure what can cause this error.
I really appreciate any help in resolving this issue or any pointers
to debug this issue further.

Thanks in advance!
Regards,
Chathura

Hi All, I am trying to communicate between two systems through ethernet in ARM dist 2 nodes setup (bigLITTLE). I want to do this with the SMMU (ARM IOMMU) enabled. I have connected the ethernet device to the SMMU as discussed here - https://github.com/orgs/gem5/discussions/239 When I try to transfer data between two systems through ethernet, following assertion failure randomly happens (it happens sometimes, not always). I have added the debug trace leading upto the assertion failure. 7521909181000: system.realview.smmu: [t] requestor resp addr=0x8120e07e size=0x2 7521909181000: system.realview.smmu: [t] responder resp addr=0xffe5807e size=0x2 7521909183000: system.realview.smmu: [t] requestor resp addr=0x8120e080 size=0x40 7521909183000: system.realview.smmu: [t] responder resp addr=0xffe58080 size=0x40 7521909184000: system.ethernet.TxDesc: DMA of packet complete 7521909184000: system.ethernet.TxDesc: TxDescriptor data d1: 0xffe5807e d2: 0x200ab100042 7521909184000: system.ethernet.TxDesc: TxDescriptor data d1: 0xffe5807e d2: 0x201ab100042 7521909184000: system.ethernet.TxDesc: Proccesing Non-Ip packet 7521909184000: system.ethernet.TxDesc: Calculating checksums for packet gem5.opt: src/dev/net/i8254xGBe.cc:1820: void gem5::IGbE::TxDescCache::pktComplete(): Assertion `ip || ip6' failed. As shown in the error, assertion is triggered from: https://github.com/gem5/gem5/blob/e9da8d67bdbb23fbd0578a379f08f42bce50121d/src/dev/net/i8254xGBe.cc#L1820C11-L1820C11 Assert fails in both atomic CPU mode as well as timing mode. I did not observe this issue when the SMMU is disabled. I am still new to debugging gem5 at the source code level and I wanted to check if anyone else has encountered a similar issue. From what I understood, assert is triggered because pkt pointer does not belong to a Ipv4 or Ipv6 type. However, I am not sure what can cause this error. I really appreciate any help in resolving this issue or any pointers to debug this issue further. Thanks in advance! Regards, Chathura