Embedded Intel® Core™ Processors
Communicate Intel® Core™ Hardware, Software, Firmware, Graphics Concerns

PCIe Read Performance

MKals
Beginner
1,263 Views

Hi All,

I've been monitoring the PCIe Read packets on my Linux box. Much to my surprise, when requesting a block read in the application software, this request is broken up into many length one memory read requests. Is there a way to improve this?

After searching the internet, I stumbled across this document: http://edc.intel.com/Link.aspx?id=3949 http://edc.intel.com/Link.aspx?id=3949

On page 53, in the pdf, it states:

As opposed to the write-case, there is no such thing like "read combining". However, there is a  

possibility to generate requests for more than 8 bytes: prefetching. For memory regions marked as

 

cachable the CPU may read data in advance, i.e. before it is actually needed. When data is fetched

 

into the cache, whole cache lines are read. This operation is called cache line fill. A cache line is 64

 

bytes on the platform used in this tutorial.

 

Note that caching by default is disabled for all I/O regions which are mapped into memory. The

 

following trace shows what happens if caching is enabled.

My 2nd question is: How do you enable IO caching in Linux?

Cheers,

ClearAsMud

0 Kudos
0 Replies
Reply