logoalt Hacker News

neerajsitoday at 7:26 AM1 replyview on HN

I initially agreed with your idea, but realized the problem.

At the bus/inter agent communication level, the CPU has sent a read request and is expecting a response. These protocols are usually synchronous with no clear cancellation semantics. There are probably core resources tracking then expected response and if you just freed one of those up and ended the instruction with an exception, you could later have what appears to be an unsolicited response.

This dynamic probably repeats between the core and the pci root complex and then again between the root complex and the device implementing the mmio. Severing the request from the response is probably too complicated for such an unusual case.


Replies

inigyoutoday at 12:33 PM

The MMIO itself is probably so slow because it's not implemented at some level and the level before it is timing out.