> On May 11, 2015, at 2:03 PM, Keller, Jacob E <jacob.e.kel...@intel.com> wrote:
> 
> Hi,
> 
> On Mon, 2015-05-11 at 10:49 +0800, kendo wrote:
>> In the e1000e_cyclecounter_read function, if incvalue is 0, causes a divide 
>> error.Need to add a check?
>> 
>> 
>>                incvalue = er32(TIMINCA) & E1000_TIMINCA_INCVALUE_MASK;
>>                //2015-05-11.fix by kendo
>>                if(incvalue){
>>                        for (i = 0; i < E1000_MAX_82574_SYSTIM_REREADS; i++) {
>>                                /* latch SYSTIMH on read of SYSTIML */
>>                                systim_next = (cycle_t)er32(SYSTIML);
>>                                systim_next |= (cycle_t)er32(SYSTIMH) << 32;
>> 
>> 
>>                                time_delta = systim_next - systim;
>>                                temp = time_delta;
>> 
>> 
>>                                rem = do_div(temp, incvalue);
>> 
>> 
>>                                systim = systim_next;
>> 
>> 
>>                                if ((time_delta < E1000_82574_SYSTIM_EPSILON) 
>> &&
>>                                (rem == 0))
>>                                        break;
>>                        }
>>                }
>> 
> 
> I am curious how you ever got a zero inc-value.. that shouldn't ever be
> set by us to zero. Obviously per below we do have it set to 0 somehow..

This has come up before. It is due to a faulty implementation of the device in 
VMWare. Because making this change in the driver will not fix existing drivers 
in guest images, and it is pretty unreasonable to update all guests, VMWare 
needs to fix their implementation of this device. The real hardware will never 
have this failure.

>> [    7.317997] e1000e: Intel(R) PRO/1000 Network Driver - 3.1.0.2-NAPI
>> [    7.317998] e1000e: Copyright(c) 1999 - 2014 Intel Corporation.
>> [    7.318019] e1000e 0000:0b:00.0: Disabling ASPM L0s L1
>> [    7.318078] e1000e 0000:0b:00.0: PCI INT A -> GSI 19 (level, low) -> IRQ 
>> 19
>> [    7.318139] e1000e 0000:0b:00.0: setting latency timer to 64
>> [    7.318514] e1000e 0000:0b:00.0: Interrupt Throttling Rate (ints/sec) set 
>> to dynamic conservative mode
>> [    7.318925] e1000e 0000:0b:00.0: irq 72 for MSI/MSI-X
>> [    7.318960] e1000e 0000:0b:00.0: irq 73 for MSI/MSI-X
>> [    7.318992] e1000e 0000:0b:00.0: irq 74 for MSI/MSI-X
>> [    7.443778] divide error: 0000 [#1] SMP
>> [    7.446797] CPU 1
>> [    7.447938] Modules linked in: e1000e(O+) r8169(O) r8168(O) r8101(O)
>> [    7.451903]
>> [    7.452731] Pid: 115, comm: modprobe Tainted: G           O 3.2.28 #1159 
>> VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform

^^^^^^^^^^^^^ Here is the clue that this is an emulated device.

--
Mark Rustad, Networking Division, Intel Corporation

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel&#174; Ethernet, visit 
http://communities.intel.com/community/wired

Reply via email to