This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

TLB Conflict abort

Hi All,

I want to check TLB Conflict abort.

How can I create an address which matches multiple entries in the TLB as ARMv8 spec mentioned.

ARMv8 spec:

"An address can hit multiple entries in the TLB if the TLB has been invalidated inappropriately, for example if TLB
invalidation required by the architecture has not been performed."

Thanks,

Parents
  • Thanks!

    I could create an address matches 2 entries as your suggestion but the TLB Conflict abort was not generated with ARM model.

    1. First memory access: Address cached in the TLB (4KB)

    clk TLB FILL cpu0.UTLB 4K 0x8180000000_NS EL2_n, nG asid=0:0x8180000000_NS

    2. Second memory access: Address cached in the TLB (2MB)

    clk TLB FILL cpu0.UTLB 2M 0x8180000000_NS EL2_n, nG asid=0:0x8180000000_NS

    3. Final memory access: Expect TLB conflict abort but not happened.

    It seems TLB not only cached the address but also the size etc, combining all conditions it's hard to create TLB conflict.

Reply
  • Thanks!

    I could create an address matches 2 entries as your suggestion but the TLB Conflict abort was not generated with ARM model.

    1. First memory access: Address cached in the TLB (4KB)

    clk TLB FILL cpu0.UTLB 4K 0x8180000000_NS EL2_n, nG asid=0:0x8180000000_NS

    2. Second memory access: Address cached in the TLB (2MB)

    clk TLB FILL cpu0.UTLB 2M 0x8180000000_NS EL2_n, nG asid=0:0x8180000000_NS

    3. Final memory access: Expect TLB conflict abort but not happened.

    It seems TLB not only cached the address but also the size etc, combining all conditions it's hard to create TLB conflict.

Children