Comment 5 for bug 1917203

Revision history for this message
David Coe (hooligan-red) wrote :

Hi Alex!

A splendidly prompt piece of cherry-picking. Many thanks.

I've checked your test release on my Ryzen 2400G on current Ubuntu 20.10 and it still gives the diagostic:
  AMD-Vi: Unable to read/write to IOMMU perf counter

It's to be expected! The little crew engaged with testing Suravee Suthikulpanit's patch [1] are finding that the 2400G (that's me) needs 120 msec for power-gating and the 2200G (that's Paul Menzel] needs >200 msecs. Suravee's RFC v3 provides 5 x 20 msecs delay which just isn't enough for these lesser Ryzen's :-).

If you change Suravee's patch line

   for (retry = 5; retry; retry--) {
to
   for (retry = 25; retry; retry--) {

all will be well (imho). The maximum delay is indeed outrageous but only that really necessary to enable IOMMU is actually used. Eventually a proper solution will be found (in firmware or silicon) but (unlike at present) the many users of entry-level Ryzen CPU's will not have their IOMMU crippled during linux boot-up.

Incidentally, if you do rebuild your (very kind) test-release with the above change (please, please), could you also include the deb package for linux-tools for the same kernel. Things like the command "perf stat -a -e amd_iommu/mem_trans_total/ test" (used to test IOMMU performance in user-space) are tied to the running kernel-version and will then work.

Best regards and again many thanks

David

[1] https://bugzilla.kernel.org/show_bug.cgi?id=201753