I've been tracking down a performance issue and have isolated it to this piece
of MNP initialization code:
//
// Make sure the protocol headers immediately following the media header
// 4-byte aligned, and also preserve additional space for VLAN tag
//
MnpDeviceData->PaddingSize = ((4 - SnpMode->MediaHeaderSize) & 0x3) +
NET_VLAN_TAG_LEN;
On my system this is coming up with '6' (MediaHeaderSize = 0xE) which is
causing performance issues since some of the memory copies to the resulting
non-dword aligned addresses are slower. As an experiment I tried bumping this
number to '8' and things worked well.
This value is used later when NET_BUFs are being allocated:
if (MnpDeviceData->PaddingSize > 0) {
//
// Pad padding bytes before the media header
//
NetbufAllocSpace (Nbuf, MnpDeviceData->PaddingSize, NET_BUF_TAIL);
NetbufTrim (Nbuf, MnpDeviceData->PaddingSize, NET_BUF_HEAD);
}
Can someone explain the purpose of PaddingSize and how that affects the later
processing of packets? Is this number a minimum value and is ok to be larger?
Thanks,
Eugene
------------------------------------------------------------------------------
Introducing Performance Central, a new site from SourceForge and
AppDynamics. Performance Central is your source for news, insights,
analysis and resources for efficient Application Performance Management.
Visit us today!
http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel