> On 12 Nov 2015, at 10:16 AM, Jason Wang <jasow...@redhat.com> wrote:
> 
> 
> 
> On 11/11/2015 09:52 PM, Leonid Bloch wrote:
>> This series fixes issues with packet/octet counting in e1000's Statistic
>> registers, fixes a bug in the packet address filtering procedure, and
>> implements many MAC registers that were absent before, some Statistic
>> counters among them.
>> 
>> Besides this, the series introduces a parameter which, if set to "on"
>> (default), will cause the entire MAC registers' array to migrate during
>> live migration (please see patches #2 and #9 for details). The rational
>> behind this is the ability to implement additional MAC registers in the
>> future, without worrying about migration compatibility between future
>> versions. For compatibility with previous versions, the above mentioned
>> parameter can be set to "off".
>> 
>> Also, a new array is introduced to control the access to the various MAC
>> registers. This takes care of situations when a MAC register requires a
>> certain parameter to be accessed, or is partially implemented, and
>> requires a debug warning to be printed on access attempts.
>> 
>> Additionally, several cosmetic changes are made.
>> 
>> Differences v1-2:
>> --------------------
>> * Wording of several commit messages corrected.
>> * For trivially implemented Diagnostic registers, a debug message is
>>  added on read/write attempts, alerting of incomplete implementation.
>> * Following testing on a physical device, only the lower 16 bits can now
>>  be read from AIT, and only the lower 4 - from FFMT*.
>> * The grow_8reg_if_not_full function is rewritten.
>> * inc_tx_bcast_or_mcast_count and increase_size_stats are now called
>>  from within e1000_send_packet, to avoid code duplication.
>> 
>> Differences v2-3:
>> --------------------
>> * Minor rewordings of some commit messages (0002, 0003).
>> * Live migration capability is added to the newly implemented registers.
>> 
>> Differences v3-4:
>> --------------------
>> * Introduction of the "full_mac_registers" parameter (see above).
>> * Reversion of the live migration handling introduced in v3.
>> * Small alignment changes in patch #1 to correspond with the following
>>  patches.
>> 
>> Differences v4-v5:
>> --------------------
>> * Introduction of an array to control the access to the MAC registers.
>> * Removal of the specific functions that warned of partial
>>  implementation on read/write from patch 4.
>> * Adequate changes to patches 4 and 8: mainly adding the registers
>>  introduced there to the new array.
>> 
>> Differences v5-v6:
>> --------------------
>> * The access control array now does not contain an "always accessible"
>>  bit. The assumption that a register is always accessible is based now
>>  solely on the facts that it has a read or write handler, and it does
>>  not require a flag to be set. That also makes place for 6 possible
>>  flag bits in the access control array, instead of 5 in v5.
>> * The support for backward compatibility, nor the new registers
>>  introduced in this series, can not be turned on now until the last
>>  patch in this series is applied. This is done to preserve
>>  compatibility if bisection in-between the patches of this series will
>>  be needed.
>> 
>> The majority of these changes result from Jason Wang's review - thank
>> you, Jason!
> 
> Applied in https://github.com/jasowang/qemu/commits/net 
> <https://github.com/jasowang/qemu/commits/net> with a minor
> modification:
> 
> - Move the compat property from patch 3 to patch 9

Thanks for your help, Jason!

> 
> Thanks
> 
>> 
>> Leonid Bloch (9):
>>  e1000: Cosmetic and alignment fixes
>>  e1000: Add support for migrating the entire MAC registers' array
>>  e1000: Introduced an array to control the access to the MAC registers
>>  e1000: Trivial implementation of various MAC registers
>>  e1000: Fixing the received/transmitted packets' counters
>>  e1000: Fixing the received/transmitted octets' counters
>>  e1000: Fixing the packet address filtering procedure
>>  e1000: Implementing various counters
>>  e1000: Introducing backward compatibility command line parameter
>> 
>> hw/net/e1000.c      | 476 
>> ++++++++++++++++++++++++++++++++++++++++------------
>> hw/net/e1000_regs.h |   8 +-
>> include/hw/compat.h |   4 +
>> 3 files changed, 379 insertions(+), 109 deletions(-)

Reply via email to