Page MenuHomeFreeBSD

Mapping the EFI frame buffer with the WriteCombined memory type can cause packet loss
Needs ReviewPublic

Authored by amikkelsen_verisign.com on Nov 7 2018, 9:50 AM.

Details

Reviewers
jhb
imp
Summary

Mapping the frame buffer with WC (Write Combined) memory type, can in practice cause
some memory transactions to be rate-limited at a fraction of the memory frame buffer
write rate. WC allows one core to queue up many globally visible write transactions.
Some unrelated transactions may end up having to wait for all the queued up PCI writes
to be flushed.

The solution is to map the frame buffer as uncachable which prevents the queueing of
more than one PCI write.

Submitted by: Marc De La Gueronniere <mdelagueronniere@verisign.com>
MFC after: 1 week
Sponsored by: Verisign, Inc.

Diff Detail

Lint
Lint OK
Unit
No Unit Test Coverage
Build Status
Buildable 20678
Build 20093: arc lint + arc unit

Event Timeline

jch added reviewers: jhb, imp.Sep 5 2019, 1:05 PM
jhb added a comment.Sep 13 2019, 4:27 AM

I think what we want to do is have a loader tunable to control this. We probably want to default to WC still, but a loader tunable makes it easy to toggle this for cases that need UC instead.