Skip to content

icl: gmmlib mocs table don't match kernel table for ICL #45

@dvrogozh

Description

@dvrogozh

We have compared MOCS table which programs gmmlib and i915 driver. They don't match. Some key details:
i915 driver taken from drm-tip: https://cgit.freedesktop.org/drm/drm-tip/tree/drivers/gpu/drm/i915/intel_mocs.c?id=b3c316b0b869252481acc8d88138aae7619de582#n136. It introduced ICL specific MOCS table starting from this commit: https://cgit.freedesktop.org/drm/drm-tip/commit/drivers/gpu/drm/i915/intel_mocs.c?id=b3c316b0b869252481acc8d88138aae7619de582

i915 programs table as (that's printout of our custom debug printk):

[    3.326058] [drm] MOCS table->table[0] control_value 0x5, l3cc_value 0x10
[    3.326060] [drm] MOCS table->table[1] control_value 0x4, l3cc_value 0x30
[    3.326061] [drm] MOCS table->table[2] control_value 0x37, l3cc_value 0x30
[    3.326063] [drm] MOCS table->table[3] control_value 0x5, l3cc_value 0x10
[    3.326065] [drm] MOCS table->table[4] control_value 0x5, l3cc_value 0x30
[    3.326066] [drm] MOCS table->table[5] control_value 0x37, l3cc_value 0x10
[    3.326068] [drm] MOCS table->table[6] control_value 0x17, l3cc_value 0x10
[    3.326069] [drm] MOCS table->table[7] control_value 0x17, l3cc_value 0x30
[    3.326071] [drm] MOCS table->table[8] control_value 0x27, l3cc_value 0x10
[    3.326073] [drm] MOCS table->table[9] control_value 0x27, l3cc_value 0x30
[    3.326074] [drm] MOCS table->table[10] control_value 0x77, l3cc_value 0x10
[    3.326076] [drm] MOCS table->table[11] control_value 0x77, l3cc_value 0x30
[    3.326077] [drm] MOCS table->table[12] control_value 0x57, l3cc_value 0x10
[    3.326079] [drm] MOCS table->table[13] control_value 0x57, l3cc_value 0x30
[    3.326081] [drm] MOCS table->table[14] control_value 0x67, l3cc_value 0x10
[    3.326082] [drm] MOCS table->table[15] control_value 0x67, l3cc_value 0x30
[    3.326084] [drm] MOCS table->table[16] control_value 0x4005, l3cc_value 0x10
[    3.326085] [drm] MOCS table->table[17] control_value 0x4005, l3cc_value 0x30
[    3.326087] [drm] MOCS table->table[18] control_value 0x60037, l3cc_value 0x30
[    3.326089] [drm] MOCS table->table[19] control_value 0x737, l3cc_value 0x30
[    3.326090] [drm] MOCS table->table[20] control_value 0x337, l3cc_value 0x30
[    3.326092] [drm] MOCS table->table[21] control_value 0x137, l3cc_value 0x30
[    3.326094] [drm] MOCS table->table[22] control_value 0x3b7, l3cc_value 0x30
[    3.326095] [drm] MOCS table->table[23] control_value 0x7b7, l3cc_value 0x30
[    3.326097] [drm] MOCS table->table[24] control_value 0x0, l3cc_value 0x0
[    3.326098] [drm] MOCS table->table[25] control_value 0x0, l3cc_value 0x0
[    3.326100] [drm] MOCS table->table[26] control_value 0x0, l3cc_value 0x0
[    3.326102] [drm] MOCS table->table[27] control_value 0x0, l3cc_value 0x0
[    3.326103] [drm] MOCS table->table[28] control_value 0x0, l3cc_value 0x0
[    3.326105] [drm] MOCS table->table[29] control_value 0x0, l3cc_value 0x0
[    3.326106] [drm] MOCS table->table[30] control_value 0x0, l3cc_value 0x0
[    3.326108] [drm] MOCS table->table[31] control_value 0x0, l3cc_value 0x0
[    3.326110] [drm] MOCS table->table[32] control_value 0x0, l3cc_value 0x0
[    3.326111] [drm] MOCS table->table[33] control_value 0x0, l3cc_value 0x0
[    3.326113] [drm] MOCS table->table[34] control_value 0x0, l3cc_value 0x0
[    3.326114] [drm] MOCS table->table[35] control_value 0x0, l3cc_value 0x0
[    3.326116] [drm] MOCS table->table[36] control_value 0x0, l3cc_value 0x0
[    3.326118] [drm] MOCS table->table[37] control_value 0x0, l3cc_value 0x0
[    3.326119] [drm] MOCS table->table[38] control_value 0x0, l3cc_value 0x0
[    3.326121] [drm] MOCS table->table[39] control_value 0x0, l3cc_value 0x0
[    3.326122] [drm] MOCS table->table[40] control_value 0x0, l3cc_value 0x0
[    3.326124] [drm] MOCS table->table[41] control_value 0x0, l3cc_value 0x0
[    3.326126] [drm] MOCS table->table[42] control_value 0x0, l3cc_value 0x0
[    3.326127] [drm] MOCS table->table[43] control_value 0x0, l3cc_value 0x0
[    3.326129] [drm] MOCS table->table[44] control_value 0x0, l3cc_value 0x0
[    3.326130] [drm] MOCS table->table[45] control_value 0x0, l3cc_value 0x0
[    3.326132] [drm] MOCS table->table[46] control_value 0x0, l3cc_value 0x0
[    3.326133] [drm] MOCS table->table[47] control_value 0x0, l3cc_value 0x0
[    3.326135] [drm] MOCS table->table[48] control_value 0x0, l3cc_value 0x0
[    3.326137] [drm] MOCS table->table[49] control_value 0x0, l3cc_value 0x0
[    3.326138] [drm] MOCS table->table[50] control_value 0x0, l3cc_value 0x0
[    3.326140] [drm] MOCS table->table[51] control_value 0x0, l3cc_value 0x0
[    3.326141] [drm] MOCS table->table[52] control_value 0x0, l3cc_value 0x0
[    3.326143] [drm] MOCS table->table[53] control_value 0x0, l3cc_value 0x0
[    3.326144] [drm] MOCS table->table[54] control_value 0x0, l3cc_value 0x0
[    3.326146] [drm] MOCS table->table[55] control_value 0x0, l3cc_value 0x0
[    3.326147] [drm] MOCS table->table[56] control_value 0x0, l3cc_value 0x0
[    3.326149] [drm] MOCS table->table[57] control_value 0x0, l3cc_value 0x0
[    3.326150] [drm] MOCS table->table[58] control_value 0x0, l3cc_value 0x0
[    3.326152] [drm] MOCS table->table[59] control_value 0x0, l3cc_value 0x0
[    3.326154] [drm] MOCS table->table[60] control_value 0x0, l3cc_value 0x0
[    3.326155] [drm] MOCS table->table[61] control_value 0x0, l3cc_value 0x0
[    3.326157] [drm] MOCS table->table[62] control_value 0x37, l3cc_value 0x10
[    3.326158] [drm] MOCS table->table[63] control_value 0x37, l3cc_value 0x10
[    3.326160] [drm] MOCS n_entries 64

And gmmlib at ac68e2c as:

[idx 0] L3 0x10, LeCC 0x9 
[idx 1] L3 0x30, LeCC 0x3b 
[idx 2] L3 0x10, LeCC 0x39 
[idx 3] L3 0x30, LeCC 0x33 
[idx 4] L3 0x10, LeCC 0x3b 
[idx 5] L3 0x30, LeCC 0x39 
[idx 6] L3 0x30, LeCC 0x37 
[idx 7] L3 0x10, LeCC 0x33 
[idx 8] L3 0x10, LeCC 0x37 
[idx 9] L3 0x30, LeCC 0x17 
[idx 10] L3 0x30, LeCC 0x6003b 
[idx 11] L3 0x0, LeCC 0x0 
[idx 12] L3 0x0, LeCC 0x0 
[idx 13] L3 0x0, LeCC 0x0 
[idx 14] L3 0x0, LeCC 0x0 
[idx 15] L3 0x0, LeCC 0x0 
[idx 16] L3 0x0, LeCC 0x0 
[idx 17] L3 0x0, LeCC 0x0 
[idx 18] L3 0x0, LeCC 0x0 
[idx 19] L3 0x0, LeCC 0x0 
[idx 20] L3 0x0, LeCC 0x0 
[idx 21] L3 0x0, LeCC 0x0 
[idx 22] L3 0x0, LeCC 0x0 
[idx 23] L3 0x0, LeCC 0x0 
[idx 24] L3 0x0, LeCC 0x0 
[idx 25] L3 0x0, LeCC 0x0 
[idx 26] L3 0x0, LeCC 0x0 
[idx 27] L3 0x0, LeCC 0x0 
[idx 28] L3 0x0, LeCC 0x0 
[idx 29] L3 0x0, LeCC 0x0 
[idx 30] L3 0x0, LeCC 0x0 
[idx 31] L3 0x0, LeCC 0x0 
[idx 32] L3 0x0, LeCC 0x0 
[idx 33] L3 0x0, LeCC 0x0 
[idx 34] L3 0x0, LeCC 0x0 
[idx 35] L3 0x0, LeCC 0x0 
[idx 36] L3 0x0, LeCC 0x0 
[idx 37] L3 0x0, LeCC 0x0 
[idx 38] L3 0x0, LeCC 0x0 
[idx 39] L3 0x0, LeCC 0x0 
[idx 40] L3 0x0, LeCC 0x0 
[idx 41] L3 0x0, LeCC 0x0 
[idx 42] L3 0x0, LeCC 0x0 
[idx 43] L3 0x0, LeCC 0x0 
[idx 44] L3 0x0, LeCC 0x0 
[idx 45] L3 0x0, LeCC 0x0 
[idx 46] L3 0x0, LeCC 0x0 
[idx 47] L3 0x0, LeCC 0x0 
[idx 48] L3 0x30, LeCC 0x3b 
[idx 49] L3 0x0, LeCC 0x0 
[idx 50] L3 0x0, LeCC 0x0 
[idx 51] L3 0x0, LeCC 0x0 
[idx 52] L3 0x0, LeCC 0x0 
[idx 53] L3 0x0, LeCC 0x0 
[idx 54] L3 0x0, LeCC 0x0 
[idx 55] L3 0x0, LeCC 0x0 
[idx 56] L3 0x0, LeCC 0x0 
[idx 57] L3 0x0, LeCC 0x0 
[idx 58] L3 0x0, LeCC 0x0 
[idx 59] L3 0x0, LeCC 0x0 
[idx 60] L3 0x0, LeCC 0x0 
[idx 61] L3 0x0, LeCC 0x0 
[idx 62] L3 0x0, LeCC 0x0 
[idx 63] L3 0x0, LeCC 0x0 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions