On Wed, 23 Oct 2024 13:07:15 -0700, Jonathan Cavitt wrote:
Hi Umesh,
@@ -748,6 +754,14 @@ static unsigned int guc_mmio_regset_write(struct xe_guc_ads *ads, } }
- guc_mmio_regset_write_one(ads, regset_map, EU_PERF_CNTL0, count++);
- guc_mmio_regset_write_one(ads, regset_map, EU_PERF_CNTL1, count++);
- guc_mmio_regset_write_one(ads, regset_map, EU_PERF_CNTL2, count++);
- guc_mmio_regset_write_one(ads, regset_map, EU_PERF_CNTL3, count++);
- guc_mmio_regset_write_one(ads, regset_map, EU_PERF_CNTL4, count++);
- guc_mmio_regset_write_one(ads, regset_map, EU_PERF_CNTL5, count++);
- guc_mmio_regset_write_one(ads, regset_map, EU_PERF_CNTL6, count++);
I am trying to understand how this works. So these registers are saved/restored by GuC because they are not part of HW context image and that is why GuC needs to do the save/restore? Bspec 46458/56839 do seem to be saying that these registers are context saved/restored? If that is indeed true (though not sure), do they need to be here?
Thanks. -- Ashutosh