All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Wang <jasowang@redhat.com>
To: Leonid Bloch <leonid.bloch@ravellosystems.com>
Cc: Dmitry Fleytman <dmitry@daynix.com>,
	Leonid Bloch <leonid@daynix.com>,
	qemu-devel@nongnu.org,
	Shmulik Ladkani <shmulik.ladkani@ravellosystems.com>
Subject: Re: [Qemu-devel] [PATCH v5 0/8] e1000: Various fixes and registers' implementation
Date: Wed, 11 Nov 2015 18:55:31 +0800	[thread overview]
Message-ID: <56431EA3.3040500@redhat.com> (raw)
In-Reply-To: <CAOuJ27-645G2TBYKdXe+ZtA-gswz6=deCf51gM9_nPkA9qWyWQ@mail.gmail.com>



On 11/11/2015 04:06 PM, Leonid Bloch wrote:
> On Wed, Nov 11, 2015 at 5:22 AM, Jason Wang <jasowang@redhat.com> wrote:
>> >
>> >
>> > On 11/10/2015 09:19 PM, Leonid Bloch wrote:
>>> >> On Tue, Nov 10, 2015 at 3:01 PM, Jason Wang <jasowang@redhat.com> wrote:
>>>> >>>
>>>> >>> On 11/10/2015 07:39 PM, Leonid Bloch wrote:
>>>>> >>>> On Tue, Nov 10, 2015 at 8:21 AM, Jason Wang <jasowang@redhat.com> wrote:
>>>>>> >>>>> On 11/09/2015 10:59 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 patch #2 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.
>>>>>>> >>>>>>
>>>>>>> >>>>>> The majority of these changes result from Jason Wang's review - thank
>>>>>>> >>>>>> you, Jason!
>>>>>> >>>>> Thanks a lot for the patches. Almost done with two minor concerns:
>>>>>> >>>>>
>>>>>> >>>>> 1) to unbreak bisection we'd better enable the extra_mac_registers (and
>>>>>> >>>>> compatibility stuffs) in patch 8 or patch 9
>>>>> >>>> Do you mean by that changing patch 2, so that the compatibility would
>>>>> >>>> be "on" by default, and setting it to "off" by default only in patch
>>>>> >>>> 8, or an additional patch 9?
>>>> >>> I mean do not introduce the property "extra_mac_registers" until patch 8
>>>> >>> and 9. In this case all function will be enabled completely at that time
>>>> >>> instead of partially patch by patch in this series.
>>> >> But won't there be compatibility issues between the patches if done
>>> >> like that?
>> >
>> > Looks not, all new mac registers and mac array migration will be
>> > functional or used only in last patch. We don't have any compatibility
>> > issue since E1000_FLAG_MAC can only be set for the last patch since the
>> > meaning of it should be "migrate the whole mac array and enable the
>> > various mac registers". And if we just use the order like this series,
>> > we may have compatibility issue during bisection. E.g migrate between w/
>> > patch 8 and w/o patch 8.
> But the trivial MAC registers are introduced in patch 4 already (in
> order to minimize code changes in the subsequent patches). Besides, if
> migration of the full MAC registers' array will be enabled, even
> before all the new registers are introduced, what will be the the
> problem with migration? One should be able to migrate from w/ patch 8,
> to anywhere after patch 2 with no problem, and to before that - with
> compatibility flag set.

Yes, migration can complete. But the value of the counters will suddenly
drop to zero after migration from patch 8 to patch 7. This is suboptimal
and can lead unexpected results.

      reply	other threads:[~2015-11-11 10:59 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-09 14:59 [Qemu-devel] [PATCH v5 0/8] e1000: Various fixes and registers' implementation Leonid Bloch
2015-11-09 14:59 ` [Qemu-devel] [PATCH v5 1/8] e1000: Cosmetic and alignment fixes Leonid Bloch
2015-11-09 14:59 ` [Qemu-devel] [PATCH v5 2/8] e1000: Add support for migrating the entire MAC registers' array Leonid Bloch
2015-11-09 14:59 ` [Qemu-devel] [PATCH v5 3/8] e1000: Introduced an array to control the access to the MAC registers Leonid Bloch
2015-11-10  5:37   ` Jason Wang
2015-11-10 11:19     ` Leonid Bloch
2015-11-09 14:59 ` [Qemu-devel] [PATCH v5 4/8] e1000: Trivial implementation of various " Leonid Bloch
2015-11-09 14:59 ` [Qemu-devel] [PATCH v5 5/8] e1000: Fixing the received/transmitted packets' counters Leonid Bloch
2015-11-09 14:59 ` [Qemu-devel] [PATCH v5 6/8] e1000: Fixing the received/transmitted octets' counters Leonid Bloch
2015-11-09 14:59 ` [Qemu-devel] [PATCH v5 7/8] e1000: Fixing the packet address filtering procedure Leonid Bloch
2015-11-09 14:59 ` [Qemu-devel] [PATCH v5 8/8] e1000: Implementing various counters Leonid Bloch
2015-11-10  6:21 ` [Qemu-devel] [PATCH v5 0/8] e1000: Various fixes and registers' implementation Jason Wang
2015-11-10 11:39   ` Leonid Bloch
2015-11-10 13:01     ` Jason Wang
2015-11-10 13:19       ` Leonid Bloch
2015-11-10 14:29         ` Leonid Bloch
2015-11-11  3:22         ` Jason Wang
2015-11-11  8:06           ` Leonid Bloch
2015-11-11 10:55             ` Jason Wang [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56431EA3.3040500@redhat.com \
    --to=jasowang@redhat.com \
    --cc=dmitry@daynix.com \
    --cc=leonid.bloch@ravellosystems.com \
    --cc=leonid@daynix.com \
    --cc=qemu-devel@nongnu.org \
    --cc=shmulik.ladkani@ravellosystems.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.