qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v6 0/9] e1000: Various fixes and registers' impl


From: Dmitry Fleytman
Subject: Re: [Qemu-devel] [PATCH v6 0/9] e1000: Various fixes and registers' implementation
Date: Thu, 12 Nov 2015 10:35:14 +0200


On 12 Nov 2015, at 10:16 AM, Jason Wang <address@hidden> 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 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

[Prev in Thread] Current Thread [Next in Thread]