tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
RE: FW: ixg(4) performances
From Emmanuel Dreyfus
> You are right;
> # pcictl /dev/pci5 read -d 0 -f 1 0xa8
> 00092810
> # pcictl /dev/pci5 write -d 0 -f 1 0xa8 0x00094810
> # pcictl /dev/pci5 read -d 0 -f 1 0xa8
> 00004810
That's reassuring. The dump confirms that we're looking at the right
registers, thank you.
As I read the spec, 0x4810 in the Device Control Register means:
Max_Read_Request_Size: 100b -> 4096 bytes
Enable_No_Snoop: 1
Max_Payload_Size: 000b --> 128 bytes
Enable_Relaxed_Ordering: 1
All other options turned off.
I think you should try:
Max_Read_Request_Size: 100b -> 4096 bytes
Enable_No_Snoop: 1
Max_Payload_Size: 100b --> 4096 bytes
Enable_Relaxed_Ordering: 1
This would give 0x4890 as the value, not 0x4810.
It's odd that the BIOS set the max_payload_size to 000b. It's possible that
this indicates that the root complex has some limitations. Or it could be a
buggy or excessively conservative BIOS. ("It's safer to program Add-In
boards conservatively -- fewer support calls due to dead systems." Or
something like that.)
So you may have to experiment. This would explain that you saw 2.5 GB/sec
before, and 2.7 GB/sec after -- you increased the max *read* size, but not
the max *write* size. Increasing from 2048 to 4096 would improve read
throughput but not enormously. Depends, of course, on your benchmark.
--Terry
Home |
Main Index |
Thread Index |
Old Index