AI News HubLIVE
站内改写1 分钟阅读

待翻译:Linus: "A debug session from hell, enormously helped by an AI"

AI 服务暂时不可用,以下为来源摘要,待恢复后补全翻译:Notifications You must be signed in to change notification settings Fork 64k Star 244k File tree Expand file treeCollapse file tree Open diff view settings Filter options drivers/gpu/drm/xe xe_vram.c Expand file treeCol…

来源Hacker News AI作者: dnw

AI 服务暂时不可用,以下为来源正文,待恢复后补全翻译。

Notifications You must be signed in to change notification settings Fork 64k Star 244k File tree Expand file treeCollapse file tree Open diff view settings Filter options drivers/gpu/drm/xe xe_vram.c Expand file treeCollapse file tree Open diff view settings Original file line numberDiff line numberDiff line change @@ -89,12 +89,25 @@ static int get_flat_ccs_offset(struct xe_gt *gt, u64 tile_size, u64 *poffset) 8989 offset = offset_hi mmio, GSMBASE) - 96- ccs_size), 97- "Hole between CCS and GSM.\n"); 93+ /* 94+ * Everything below this offset is handed to the VRAM 95+ * allocator, so it has to be the *first* address the 96+ * compression hardware owns, rounded down. Rounding it up 97+ * publishes CCS storage as free memory. 98+ */ 99+ offset = round_down(offset, SZ_4K); 100+ 101+ /* 102+ * CCS storage must not run into GSM. The old check compared 103+ * the offset against GSMBASE - ccs_size for equality, which 104+ * could not fail: that value is 128K aligned, so it agreed 105+ * with the rounded-up offset even when the base was not 128K 106+ * aligned - exactly the case this fixes. 107+ */ 108+ xe_assert_msg(xe, offset + ccs_size mmio, GSMBASE), 110+ "CCS overlaps GSM.\n"); 98111 } else { 99112 reg = xe_gt_mcr_unicast_read_any(gt, XEHP_FLAT_CCS_BASE_ADDR); 100113 offset = (u64)REG_FIELD_GET(XEHP_FLAT_CCS_PTR, reg) * SZ_64K; 0 (0)